From c8c48ef5a497ffd7f7e778434c1f074b7b777a03 Mon Sep 17 00:00:00 2001 From: Ali Romman <226877337+aliromman@users.noreply.github.com> Date: Thu, 22 Oct 2026 23:02:53 -0500 Subject: [PATCH] Prove centre Gram degree and least invariant scalar cache bounds --- .../centre-polynomial-cache-limits/NOTICE.md | 42 + .../PACKAGE-MANIFEST.json | 164 ++ .../centre-polynomial-cache-limits/PROOF.md | 126 ++ .../centre-polynomial-cache-limits/README.md | 71 + .../SOURCES.json | 116 ++ .../check_phase_cache.py | 121 ++ .../lanes/bounds-review/review_centre_free.py | 226 +++ .../lanes/circuit-interface/INTERFACE.json | 1441 +++++++++++++++++ .../BELL-GRAM-DEGREE-PROOF.md | 79 + .../history-encoding/BELL-GRAM-DEGREE.json | 842 ++++++++++ .../BELL-GRAM-INVERSE-COROLLARY.md | 22 + .../certify_bell_gram_degree.py | 123 ++ .../BELL-GRAM-DEGREE-REVIEW.json | 33 + .../BELL-GRAM-DEGREE-REVIEW.md | 63 + .../review_bell_gram_degree.py | 197 +++ .../lanes/native-encoding/PHASE-CACHE.md | 71 + .../centre-sharing/CANONICAL-WORD.json.gz | Bin 0 -> 84805 bytes .../centre-sharing/LOCAL-PROGRAMS.json.gz | Bin 0 -> 209318 bytes .../notices/LICENSE | 201 +++ .../research/gauge44-slots-t16/NOTICE.md | 24 + .../gauge44-slots-t16/UPSTREAM-NOTICE.md | 34 + .../gauge44-slots-t16/construction/NOTICE.md | 9 + .../research/gauge44-slots-t16/t16/NOTICE.md | 39 + .../centre-polynomial-cache-limits/replay.py | 70 + .../requirements.txt | 1 + .../review/ARITHMETIC-BOUNDS.json | 12 + .../review/CHECKED-FILES.json | 170 ++ .../review/EXTRA-REJECTION-CONTROLS.json | 5 + .../review/FORWARD-QUERY-CHECK.json | 19 + .../review/FORWARD-QUERY-REPRODUCED.json | 8 + .../review/MAIN-OVERLAP.json | 8 + .../review/OPEN-PR-OVERLAP.json | 5 + .../review/REVIEW.json | 46 + .../review/REVIEW.md | 147 ++ .../review/SOURCE-BINDING-REPRODUCED.json | 14 + .../review/SOURCE-BINDING.json | 24 + .../review/check_review.py | 139 ++ .../review/replay/ARITHMETIC-BOUNDS.json | 12 + .../replay/EXTRA-REJECTION-CONTROLS.json | 5 + .../replay/FORWARD-QUERY-REPRODUCED.json | 8 + .../replay/SOURCE-BINDING-REPRODUCED.json | 14 + .../validation/PHASE-CACHE-CHECK.json | 107 ++ .../validation/REPLAY.json | 123 ++ .../validation/bell-producer-stderr.txt | 0 .../validation/bell-producer-stdout.txt | 2 + .../validation/bell-review-stderr.txt | 0 .../validation/bell-review-stdout.txt | 2 + .../validation/phase-cache-stderr.txt | 0 .../validation/phase-cache-stdout.txt | 1 + 49 files changed, 4986 insertions(+) create mode 100644 research/centre-polynomial-cache-limits/NOTICE.md create mode 100644 research/centre-polynomial-cache-limits/PACKAGE-MANIFEST.json create mode 100644 research/centre-polynomial-cache-limits/PROOF.md create mode 100644 research/centre-polynomial-cache-limits/README.md create mode 100644 research/centre-polynomial-cache-limits/SOURCES.json create mode 100644 research/centre-polynomial-cache-limits/check_phase_cache.py create mode 100644 research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/bounds-review/review_centre_free.py create mode 100644 research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/circuit-interface/INTERFACE.json create mode 100644 research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE-PROOF.md create mode 100644 research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE.json create mode 100644 research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-INVERSE-COROLLARY.md create mode 100644 research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/certify_bell_gram_degree.py create mode 100644 research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.json create mode 100644 research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.md create mode 100644 research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/review_bell_gram_degree.py create mode 100644 research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/native-encoding/PHASE-CACHE.md create mode 100644 research/centre-polynomial-cache-limits/frozen/work/five-pr-sprint-20261013/lanes/centre-sharing/CANONICAL-WORD.json.gz create mode 100644 research/centre-polynomial-cache-limits/frozen/work/five-pr-sprint-20261013/lanes/centre-sharing/LOCAL-PROGRAMS.json.gz create mode 100644 research/centre-polynomial-cache-limits/notices/LICENSE create mode 100644 research/centre-polynomial-cache-limits/notices/research/gauge44-slots-t16/NOTICE.md create mode 100644 research/centre-polynomial-cache-limits/notices/research/gauge44-slots-t16/UPSTREAM-NOTICE.md create mode 100644 research/centre-polynomial-cache-limits/notices/research/gauge44-slots-t16/construction/NOTICE.md create mode 100644 research/centre-polynomial-cache-limits/notices/research/gauge44-slots-t16/t16/NOTICE.md create mode 100644 research/centre-polynomial-cache-limits/replay.py create mode 100644 research/centre-polynomial-cache-limits/requirements.txt create mode 100644 research/centre-polynomial-cache-limits/review/ARITHMETIC-BOUNDS.json create mode 100644 research/centre-polynomial-cache-limits/review/CHECKED-FILES.json create mode 100644 research/centre-polynomial-cache-limits/review/EXTRA-REJECTION-CONTROLS.json create mode 100644 research/centre-polynomial-cache-limits/review/FORWARD-QUERY-CHECK.json create mode 100644 research/centre-polynomial-cache-limits/review/FORWARD-QUERY-REPRODUCED.json create mode 100644 research/centre-polynomial-cache-limits/review/MAIN-OVERLAP.json create mode 100644 research/centre-polynomial-cache-limits/review/OPEN-PR-OVERLAP.json create mode 100644 research/centre-polynomial-cache-limits/review/REVIEW.json create mode 100644 research/centre-polynomial-cache-limits/review/REVIEW.md create mode 100644 research/centre-polynomial-cache-limits/review/SOURCE-BINDING-REPRODUCED.json create mode 100644 research/centre-polynomial-cache-limits/review/SOURCE-BINDING.json create mode 100644 research/centre-polynomial-cache-limits/review/check_review.py create mode 100644 research/centre-polynomial-cache-limits/review/replay/ARITHMETIC-BOUNDS.json create mode 100644 research/centre-polynomial-cache-limits/review/replay/EXTRA-REJECTION-CONTROLS.json create mode 100644 research/centre-polynomial-cache-limits/review/replay/FORWARD-QUERY-REPRODUCED.json create mode 100644 research/centre-polynomial-cache-limits/review/replay/SOURCE-BINDING-REPRODUCED.json create mode 100644 research/centre-polynomial-cache-limits/validation/PHASE-CACHE-CHECK.json create mode 100644 research/centre-polynomial-cache-limits/validation/REPLAY.json create mode 100644 research/centre-polynomial-cache-limits/validation/bell-producer-stderr.txt create mode 100644 research/centre-polynomial-cache-limits/validation/bell-producer-stdout.txt create mode 100644 research/centre-polynomial-cache-limits/validation/bell-review-stderr.txt create mode 100644 research/centre-polynomial-cache-limits/validation/bell-review-stdout.txt create mode 100644 research/centre-polynomial-cache-limits/validation/phase-cache-stderr.txt create mode 100644 research/centre-polynomial-cache-limits/validation/phase-cache-stdout.txt diff --git a/research/centre-polynomial-cache-limits/NOTICE.md b/research/centre-polynomial-cache-limits/NOTICE.md new file mode 100644 index 0000000000..b0262bd4f2 --- /dev/null +++ b/research/centre-polynomial-cache-limits/NOTICE.md @@ -0,0 +1,42 @@ +# Credit, source pins, and limits + +The source is the historical selected construction at commit +`bce54fb3f895cbe5cd4c0eb477c3afeed100190f`. Its selected archive is +[retained here at the source commit](https://github.com/CrocSwap/integer-mult-bounds/blob/bce54fb3f895cbe5cd4c0eb477c3afeed100190f/research/community-frontier1042-audit/selected-replay.tar.gz). +The two needed archive members are copied without edits. Their original +compressed digests and the complete archive digest are in SOURCES.json. + +The original supplier notices are retained under `notices/`. They identify +the source work, compiler work, and earlier contributor lineage. In +particular, the [Gauge44 notice](https://github.com/CrocSwap/integer-mult-bounds/blob/bce54fb3f895cbe5cd4c0eb477c3afeed100190f/research/gauge44-slots-t16/NOTICE.md) +credits icekylinx and retains the upstream notices. This package does not +infer contributor identity from a PR submitter account. + +The circuit-interface lane derived the actual R. The history-encoding +lane supplied the Bell certificate. The interface-proof lane supplied +the separate sparse replay, the all-size extension, and the inverse +corollary. The native-encoding lane supplied the scalar-cache theorem. +These are OpenAI Codex research roles under Ali Romman's direction. +They are not independent human authors or reviewers. Substantial +OpenAI Codex assistance was used for research, checks, and packaging. + +[PR #1719](https://github.com/CrocSwap/integer-mult-bounds/pull/1719) +published the historical doubled Walsh lift at commit +`3ae9a6f3ac74ded022ab3b4872a7357a621af6fb`. This package uses the doubled +port representation to study one weighted Gram; it does not re-publish +that lift as a new construction. + +The actual query source is already retained by +[PR #4720](https://github.com/CrocSwap/integer-mult-bounds/pull/4720) at +[this exact source path](https://github.com/CrocSwap/integer-mult-bounds/blob/cb102a57254748651ce16aa4454bb611f6380e53/research/actual-query-information-bounds/payload/lanes/circuit-interface/INTERFACE.json). +That PR also publishes the separate scalar source-span theorem. +[PR #4750](https://github.com/CrocSwap/integer-mult-bounds/pull/4750) +publishes the [fixed-code projector criterion](https://github.com/CrocSwap/integer-mult-bounds/blob/3c6a768e5391e6bc8355fe2bc849d2978afef8f6/research/phase-coded-callers/annexes/fixed-code-interface/PROOF.md). +The new package does not claim those results again. + +The 22 October cleanup audit found these two notes outside the fixed +469-observation closure. It checked the exact published source objects +and found no equivalent adopted statement in the 15 campaign packages. +A bounded source search is not a universal literature novelty check. + +Apache-2.0 applies. Original notices and license text are unchanged. diff --git a/research/centre-polynomial-cache-limits/PACKAGE-MANIFEST.json b/research/centre-polynomial-cache-limits/PACKAGE-MANIFEST.json new file mode 100644 index 0000000000..47a2f1ca0d --- /dev/null +++ b/research/centre-polynomial-cache-limits/PACKAGE-MANIFEST.json @@ -0,0 +1,164 @@ +{ + "files": [ + { + "path": "NOTICE.md", + "bytes": 2804, + "sha256": "4dde831dc40b31d0edc23adbcd0aaeec3aa573eef6f4f27fcdb53d24eab173e8" + }, + { + "path": "PROOF.md", + "bytes": 5655, + "sha256": "ebcd0912e990c71f3b29b87674c1b5e3efa8f5ea37ed20f4fd06d80ce27f6382" + }, + { + "path": "README.md", + "bytes": 3420, + "sha256": "7569c606042bacf8c36b75fbbd1dfef9a8861d194659c4a93dfa68fddc7c044f" + }, + { + "path": "SOURCES.json", + "bytes": 5809, + "sha256": "b3ad9ed33fda0ffb64d50ed6d026168651b9351a16a21ca0b9821c179b474d3d" + }, + { + "path": "check_phase_cache.py", + "bytes": 5314, + "sha256": "16ed9b27047d065c7a7648ebc8dc46438ec93c7cfbc530f9cc996e878d1ffe5d" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/bounds-review/review_centre_free.py", + "bytes": 8966, + "sha256": "33b6b73303275e481f12cc2f946d1273ca9ac03d9294600016f03e84e6921088" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/circuit-interface/INTERFACE.json", + "bytes": 23232, + "sha256": "5c6c51fbffc07a683e922f17532fd90262ae9e23cc3560a696002073dd234ef3" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE-PROOF.md", + "bytes": 4001, + "sha256": "bc3a72690735230e8d9995df1a343f69fe8afed7dce056a82505efc83a884698" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE.json", + "bytes": 10174, + "sha256": "4b198523d498b85b96445681fdcd8020402b1abb31c6a27e7d2a45d5df2217e2" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-INVERSE-COROLLARY.md", + "bytes": 1058, + "sha256": "d1d3011e26d5768edc10ac234aeb9cb80c721addc28f9aabc784f56383ca4fe3" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/certify_bell_gram_degree.py", + "bytes": 5140, + "sha256": "8604d1665862593efc146644fbf47a85c4a2aca88106284096d723853a064e45" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.json", + "bytes": 1996, + "sha256": "4f48be6cfd0f7ab316d1dc957ba18668b56a4feed55ef8cae5c205560e13b16a" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.md", + "bytes": 3113, + "sha256": "3a670ff14be1db7109d12d1fc6c28704543d3a19ad2e9d4ac6431a0a86a57d9f" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/review_bell_gram_degree.py", + "bytes": 9719, + "sha256": "0d9983c288292f568c1f1595b944ca81131f79119855b7ad5c64e28c3cbfd899" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/native-encoding/PHASE-CACHE.md", + "bytes": 7975, + "sha256": "bd53f0c38ac06e20b8361543086bb5f6310bdeb552fb692dc29978434cd4dc84" + }, + { + "path": "frozen/work/five-pr-sprint-20261013/lanes/centre-sharing/CANONICAL-WORD.json.gz", + "bytes": 84805, + "sha256": "16bc0ebb04b4be6c0ade74badc6a0c0cdba4215eda86e4ff9f13abf8ecebd219" + }, + { + "path": "frozen/work/five-pr-sprint-20261013/lanes/centre-sharing/LOCAL-PROGRAMS.json.gz", + "bytes": 209318, + "sha256": "241fde27d4e43f5a9cb6b128f9f76c5131a53d09f0371676163f914d0b0fef3a" + }, + { + "path": "notices/LICENSE", + "bytes": 11357, + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4" + }, + { + "path": "notices/research/gauge44-slots-t16/NOTICE.md", + "bytes": 1964, + "sha256": "7a8d17b04da1e6c9d0ec217fb5bda72faa09d9a21695128722dd1e2827870fcf" + }, + { + "path": "notices/research/gauge44-slots-t16/UPSTREAM-NOTICE.md", + "bytes": 6406, + "sha256": "a75967ebc34e3bf2ff2c25c08e6c7f1a61b0c0d171cfd1b62196ae2caaf2c610" + }, + { + "path": "notices/research/gauge44-slots-t16/construction/NOTICE.md", + "bytes": 950, + "sha256": "defe7e44af610e25a6c50c1c3b2efd0972d0690574995c0c872fc50eebf4c816" + }, + { + "path": "notices/research/gauge44-slots-t16/t16/NOTICE.md", + "bytes": 2245, + "sha256": "902370e6bfcd39dbea2ece474f15fccbcce3b8e966b2b94066bd03e5174591b5" + }, + { + "path": "replay.py", + "bytes": 3216, + "sha256": "20f3436ba77856ba233650bd04a42daad6c597bb19b439e5291cc3226057e98c" + }, + { + "path": "requirements.txt", + "bytes": 12, + "sha256": "a83a2a4ed7ab2e022b9b8a83cfa2b8cf52cc243006c597e8b96f90a8365590ac" + }, + { + "path": "validation/PHASE-CACHE-CHECK.json", + "bytes": 1376, + "sha256": "34386095a77c0aa3008e652fb2dc982a654b17b525dd0f85bf3b72c8867d3556" + }, + { + "path": "validation/REPLAY.json", + "bytes": 2075, + "sha256": "7898245ca60369fcae643ce6f5bec5065e2e2aa0d46c1658b8e5f5ca56253779" + }, + { + "path": "validation/bell-producer-stderr.txt", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "validation/bell-producer-stdout.txt", + "bytes": 200, + "sha256": "b8a03214ced2b88ff097a6a7f5ba55f40dd931299b1fe75cb6d62d2108877b29" + }, + { + "path": "validation/bell-review-stderr.txt", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "validation/bell-review-stdout.txt", + "bytes": 135, + "sha256": "04001332aac6a4120ebb33bc8a6f1946fe96094f7ef6bd2d8ea73ed52f60c1e8" + }, + { + "path": "validation/phase-cache-stderr.txt", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "validation/phase-cache-stdout.txt", + "bytes": 39, + "sha256": "3fad44ed5923785fcc2c7534cd9887c315168ffbcd5d9f1c5935a461585d7622" + } + ] +} diff --git a/research/centre-polynomial-cache-limits/PROOF.md b/research/centre-polynomial-cache-limits/PROOF.md new file mode 100644 index 0000000000..98e070a4e3 --- /dev/null +++ b/research/centre-polynomial-cache-limits/PROOF.md @@ -0,0 +1,126 @@ +# Exact scope of the retained results + +The input is the actual eight-by-112 rational query matrix R at historical +source commit `bce54fb3f895cbe5cd4c0eb477c3afeed100190f`. It satisfies +`R R^T = 56 I`. Its 112 labels q are distinct, nonzero, odd vectors in +`F_2^9`. Each column has four entries in `{1,-1}`. This package does not +replace these columns with the completed 120-root system. + +## 1. Scalar-polynomial degree + +Let `H_q = (X_q+Z_q)/sqrt(2)` and `Gamma_q = H_q tensor H_q` on the +doubled binary payload. A common scalar phase does not change the +conjugation used below. Define, for each positive integer lambda, + +```text +A_lambda = (1/4) sum_q r_q r_q^T tensor Gamma_q^tensor(lambda). +``` + +Here r_q is the corresponding column of R. The root coefficient occurs +once. It is not raised to a tensor power. + +Identify doubled payload vectors with Pauli matrices `X^b Z^a`. The +four-term expansion of conjugation by H_q gives + +```text +|a,b> -> (-1)^(q dot a) |a,b> if q dot (a+b) = 0, +|a,b> -> |a+q,b+q> if q dot (a+b) = 1. +``` + +Thus c=a+b is fixed. On the a coordinate in the block c=11, the port +operator is Z_q when `q dot c=0` and X_q otherwise. The resulting block +A has dimension 4,096 and entries in `Z[1/2]`. + +The [retained certificate](frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE.json) +fixes integer vectors v,w by SHAKE256 seeds and gives 817 moments +`s_j=w^T A^j v` modulo 65,537. The 409-by-409 Hankel matrix +`H[i,j]=s_(i+j)` has determinant 2,984 modulo 65,537. The separate +[review](frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.md) +derives R from the original word, builds the sparse integer matrix 4A, +and checks the same determinant by fraction-free elimination in the +prime field. It also checks every Bell sign and the common fixed vector. + +This determinant belongs to `Z[1/2]`, and its reduction is nonzero, +so the determinant itself is nonzero. The first +409 Krylov vectors are therefore independent. No scalar polynomial of +degree below 409 annihilates A. The nonzero minor remains nonzero over +any characteristic-zero field extension. + +The Bell identity vector is fixed by every Gamma_q. Tensor the certified +block with this vector in all remaining tensor slots. The restriction of +A_lambda to that invariant subspace is exactly A. The degree bound holds +at every positive lambda, including when the proposed polynomial depends +on lambda. + +If `aI+bA_lambda` is invertible, `b != 0`, and +`q(A_lambda)=(aI+bA_lambda)^-1`, then +`(a+bt)q(t)-1` is a nonzero annihilating polynomial. It has degree at most +`degree(q)+1`. Therefore `degree(q) >= 408`. + +The result does not give the exact minimal polynomial. It does not bound +rational expressions, matrix-valued encodings, general scalar ADD +circuits, or the native cost of a decoder. + +## 2. The least scalar cache for diagonal updates + +Let R be any complex matrix with finitely many columns. Let D_1,...,D_t +be diagonal matrices. Put two columns in the same fiber F when all D_j +have the same diagonal entries at those columns. Then the smallest row +space E that contains row(R) and satisfies `E D_j subset E` for every j +is + +```text +E = direct_sum_F row(R restricted to F), +dim(E) = sum_F rank(R restricted to F). +``` + +Each summand has support only on F. This direct sum contains row(R) and +is invariant under every D_j. Conversely, choose a linear combination D +of the D_j whose diagonal values distinguish the finitely many fibers. +Such coefficients exist over C: a finite union of proper hyperplanes +does not fill the coefficient space. Polynomial interpolation in D gives +each fiber projector. Any invariant E that contains row(R) must contain +the projection of every row onto every fiber. The supports are disjoint, +so their dimensions add. A basis in each fiber attains the bound. + +For the historical R, use sign characters `D_s[p,p]=(-1)^(q_p dot s)`. +For the ordered normal directions + +```text +42, 7, 25, 52, 82, 127, 97, 76 +``` + +the successive dimensions, including the empty family, are + +```text +8, 15, 28, 44, 44, 56, 56, 56, 56. +``` + +The final fibers are fourteen eight-column groups of rank four. For the +first zero through nine coordinate characters the dimensions are + +```text +8, 16, 31, 53, 85, 101, 112, 112, 112, 112. +``` + +Thus six specified coordinate characters already require all 112 source +directions in this cache model. The 56-row cache does not support the +full source-phase family. The exact rank histogram of the two-demand +stack `[R; R D_s]`, over all 512 sign characters, is two of rank eight, +sixteen of rank fifteen, and 494 of rank sixteen. + +The original [phase-cache note](frozen/work/centre-encoding-campaign-20261014/lanes/native-encoding/PHASE-CACHE.md) +contains this argument and these counts. The package check independently +reconstructs the counts from R and the labels. It checks the row-basis +construction directly. This is a scalar representation result. It permits +redundant cache rows, but does not permit a source-dependent payload +operator before the cache unless the input contract is changed. + +The related fixed-code graph theorem in +[PR #4750](https://github.com/CrocSwap/integer-mult-bounds/pull/4750) +tests whether one given code is invariant. The result here gives the +smallest invariant enlargement of a specified query space. The +[source-span theorem in PR #4720](https://github.com/CrocSwap/integer-mult-bounds/pull/4720) +uses a different payload-query grammar and independently gives 112 scalar +source directions. These earlier published results are not new claims +of this package. No universal novelty claim is made. diff --git a/research/centre-polynomial-cache-limits/README.md b/research/centre-polynomial-cache-limits/README.md new file mode 100644 index 0000000000..85f1b44f48 --- /dev/null +++ b/research/centre-polynomial-cache-limits/README.md @@ -0,0 +1,71 @@ +# Two limits for historical centre encodings + +This package retains two results that were outside the 22 October campaign +publication closure. It adds no native supplier and does not change the +complete kappa calculation. + +- The actual doubled centre Gram has scalar minimal-polynomial degree at + least 409 at every positive tensor size. An exact scalar-polynomial + inverse of `aI+bA`, when it exists and `b != 0`, has degree at least 408. +- The smallest scalar row space that contains a query and is closed under + specified diagonal updates has dimension equal to the sum of its fiber + ranks. The historical query needs 56 rows for the stated normal-character + family and 112 rows for six specified coordinate characters. + +These are different models. The first result does not bound general ADD +circuits or native decoder cost. The second result assumes a common scalar +input representation. It does not supply or price native source access. +Neither result closes the physical caller, helper, terminal, precision, +hosting, or recursive admission obligations of the historical campaign. + +Read [the proof and claim limits](PROOF.md), [source pins](SOURCES.json), and +[credit and predecessor comparison](NOTICE.md). The original proof, +certificate, checker, and independent Bell review are retained without edits +under `frozen/`. Other statements in those historical notes are context. +This package adopts only the two results stated above. + +## Replay + +Use Python 3.10 or later with NumPy. The source check uses exact rational +and integer arithmetic. No Git checkout, source archive download, or +network service is needed at runtime. Use a new output directory. + +```sh +env OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 python3 -I -B replay.py --out /tmp/centre-polynomial-cache-check +``` + +Expected final line: + +```text +PASS_CENTRE_POLYNOMIAL_CACHE_LIMITS +``` + +The replay checks every frozen source digest. It runs the retained Bell +producer and the separate sparse-operator reviewer. Their receipts must +equal the retained receipts byte for byte. The reviewer derives the query +matrix from the original scalar word, checks 57,344 Bell columns, reproduces +all 817 moments, and uses separate determinant arithmetic. The producer +rejects a duplicate row. The reviewer rejects a duplicate column. + +The scalar-cache check uses rational elimination. It checks both dimension +sequences and the 512-character rank histogram. It also checks an explicit +fiber row basis and rejects a basis with one necessary row removed. The +written proof supplies the general theorem. A finite check does not prove +the general theorem by itself. + +No full supplier, native decoder, selected frontier, or outer kappa replay +is part of this check. No human review or formal-kernel proof is claimed. + +## Open next questions + +- Does the historical Gram have minimal-polynomial degree exactly 409? + The first step is to find and check an annihilating polynomial for the + full operator. The present certificate proves only a lower bound from + one invariant block. No annihilator is supplied here. +- Can the 56-row scalar cache be loaded, updated, and cleared within a + useful native bill? The first step is to specify the physical source + access and helper contract. The current row-space theorem does not + supply those operations or their cost. + +These questions are outside this package. This replay does not perform +either proposed investigation. diff --git a/research/centre-polynomial-cache-limits/SOURCES.json b/research/centre-polynomial-cache-limits/SOURCES.json new file mode 100644 index 0000000000..212008b21c --- /dev/null +++ b/research/centre-polynomial-cache-limits/SOURCES.json @@ -0,0 +1,116 @@ +{ + "historical_source_commit": "bce54fb3f895cbe5cd4c0eb477c3afeed100190f", + "historical_selected_archive": { + "path": "research/community-frontier1042-audit/selected-replay.tar.gz", + "sha256": "22c3f4dce4b897a1d423d1388801933e288b6a6b1906cb15e1b16a5eb68db754" + }, + "files": [ + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE-PROOF.md", + "source_path": "work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE-PROOF.md", + "bytes": 4001, + "sha256": "bc3a72690735230e8d9995df1a343f69fe8afed7dce056a82505efc83a884698" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-INVERSE-COROLLARY.md", + "source_path": "work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-INVERSE-COROLLARY.md", + "bytes": 1058, + "sha256": "d1d3011e26d5768edc10ac234aeb9cb80c721addc28f9aabc784f56383ca4fe3" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE.json", + "source_path": "work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE.json", + "bytes": 10174, + "sha256": "4b198523d498b85b96445681fdcd8020402b1abb31c6a27e7d2a45d5df2217e2" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/certify_bell_gram_degree.py", + "source_path": "work/centre-encoding-campaign-20261014/lanes/history-encoding/certify_bell_gram_degree.py", + "bytes": 5140, + "sha256": "8604d1665862593efc146644fbf47a85c4a2aca88106284096d723853a064e45" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.md", + "source_path": "work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.md", + "bytes": 3113, + "sha256": "3a670ff14be1db7109d12d1fc6c28704543d3a19ad2e9d4ac6431a0a86a57d9f" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.json", + "source_path": "work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.json", + "bytes": 1996, + "sha256": "4f48be6cfd0f7ab316d1dc957ba18668b56a4feed55ef8cae5c205560e13b16a" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/review_bell_gram_degree.py", + "source_path": "work/centre-encoding-campaign-20261014/lanes/interface-proof/review_bell_gram_degree.py", + "bytes": 9719, + "sha256": "0d9983c288292f568c1f1595b944ca81131f79119855b7ad5c64e28c3cbfd899" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/bounds-review/review_centre_free.py", + "source_path": "work/centre-encoding-campaign-20261014/lanes/bounds-review/review_centre_free.py", + "bytes": 8966, + "sha256": "33b6b73303275e481f12cc2f946d1273ca9ac03d9294600016f03e84e6921088" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/circuit-interface/INTERFACE.json", + "source_path": "work/centre-encoding-campaign-20261014/lanes/circuit-interface/INTERFACE.json", + "bytes": 23232, + "sha256": "5c6c51fbffc07a683e922f17532fd90262ae9e23cc3560a696002073dd234ef3" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/native-encoding/PHASE-CACHE.md", + "source_path": "work/centre-encoding-campaign-20261014/lanes/native-encoding/PHASE-CACHE.md", + "bytes": 7975, + "sha256": "bd53f0c38ac06e20b8361543086bb5f6310bdeb552fb692dc29978434cd4dc84" + }, + { + "path": "frozen/work/five-pr-sprint-20261013/lanes/centre-sharing/CANONICAL-WORD.json.gz", + "source_path": "work/five-pr-sprint-20261013/lanes/centre-sharing/CANONICAL-WORD.json.gz", + "bytes": 84805, + "sha256": "16bc0ebb04b4be6c0ade74badc6a0c0cdba4215eda86e4ff9f13abf8ecebd219" + }, + { + "path": "frozen/work/five-pr-sprint-20261013/lanes/centre-sharing/LOCAL-PROGRAMS.json.gz", + "source_path": "work/five-pr-sprint-20261013/lanes/centre-sharing/LOCAL-PROGRAMS.json.gz", + "bytes": 209318, + "sha256": "241fde27d4e43f5a9cb6b128f9f76c5131a53d09f0371676163f914d0b0fef3a" + }, + { + "path": "notices/LICENSE", + "source_commit": "bce54fb3f895cbe5cd4c0eb477c3afeed100190f", + "source_path": "LICENSE", + "bytes": 11357, + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4" + }, + { + "path": "notices/research/gauge44-slots-t16/NOTICE.md", + "source_commit": "bce54fb3f895cbe5cd4c0eb477c3afeed100190f", + "source_path": "research/gauge44-slots-t16/NOTICE.md", + "bytes": 1964, + "sha256": "7a8d17b04da1e6c9d0ec217fb5bda72faa09d9a21695128722dd1e2827870fcf" + }, + { + "path": "notices/research/gauge44-slots-t16/UPSTREAM-NOTICE.md", + "source_commit": "bce54fb3f895cbe5cd4c0eb477c3afeed100190f", + "source_path": "research/gauge44-slots-t16/UPSTREAM-NOTICE.md", + "bytes": 6406, + "sha256": "a75967ebc34e3bf2ff2c25c08e6c7f1a61b0c0d171cfd1b62196ae2caaf2c610" + }, + { + "path": "notices/research/gauge44-slots-t16/t16/NOTICE.md", + "source_commit": "bce54fb3f895cbe5cd4c0eb477c3afeed100190f", + "source_path": "research/gauge44-slots-t16/t16/NOTICE.md", + "bytes": 2245, + "sha256": "902370e6bfcd39dbea2ece474f15fccbcce3b8e966b2b94066bd03e5174591b5" + }, + { + "path": "notices/research/gauge44-slots-t16/construction/NOTICE.md", + "source_commit": "bce54fb3f895cbe5cd4c0eb477c3afeed100190f", + "source_path": "research/gauge44-slots-t16/construction/NOTICE.md", + "bytes": 950, + "sha256": "defe7e44af610e25a6c50c1c3b2efd0972d0690574995c0c872fc50eebf4c816" + } + ] +} diff --git a/research/centre-polynomial-cache-limits/check_phase_cache.py b/research/centre-polynomial-cache-limits/check_phase_cache.py new file mode 100644 index 0000000000..2d874f2065 --- /dev/null +++ b/research/centre-polynomial-cache-limits/check_phase_cache.py @@ -0,0 +1,121 @@ +"""Check the stated scalar-cache dimensions with rational arithmetic.""" + +import argparse +from collections import Counter, defaultdict +from fractions import Fraction +from hashlib import sha256 +import json +from pathlib import Path + + +PIN = "5c6c51fbffc07a683e922f17532fd90262ae9e23cc3560a696002073dd234ef3" +NORMALS = [42, 7, 25, 52, 82, 127, 97, 76] + + +def require(condition, reason): + if not condition: + raise ValueError(reason) + + +def basis(rows): + """Return an echelon basis over Q.""" + pivots = {} + for source in rows: + row = list(map(Fraction, source)) + for column, pivot in sorted(pivots.items()): + factor = row[column] + if factor: + row = [a - factor * b for a, b in zip(row, pivot)] + column = next((i for i, value in enumerate(row) if value), None) + if column is not None: + factor = row[column] + pivots[column] = [value / factor for value in row] + return [row for _, row in sorted(pivots.items())] + + +def fibers(labels, directions): + groups = defaultdict(list) + for column, label in enumerate(labels): + key = tuple((label & direction).bit_count() % 2 for direction in directions) + groups[key].append(column) + return groups + + +def fiber_dimension(rows, labels, directions): + return sum(len(basis([[row[i] for i in group] for row in rows])) + for group in fibers(labels, directions).values()) + + +def main(args): + raw = args.interface.read_bytes() + require(sha256(raw).hexdigest() == PIN, "The interface digest must match") + data = json.loads(raw) + labels = data["ports"] + rows = [[int(row.get(str(i), 0)) for i in range(112)] for row in data["R"]] + require(len(rows) == 8 and len(labels) == len(set(labels)) == 112, + "The query must have eight rows and112 distinct columns") + normal_dimensions = [fiber_dimension(rows, labels, NORMALS[:k]) for k in range(9)] + coordinate_dimensions = [fiber_dimension(rows, labels, [1 << j for j in range(k)]) + for k in range(10)] + require(normal_dimensions == [8, 15, 28, 44, 44, 56, 56, 56, 56], + "The normal-character dimensions must match") + require(coordinate_dimensions == [8, 16, 31, 53, 85, 101, 112, 112, 112, 112], + "The coordinate-character dimensions must match") + histogram = Counter() + for direction in range(512): + signs = [1 - 2 * ((label & direction).bit_count() % 2) for label in labels] + phased = [[a * b for a, b in zip(row, signs)] for row in rows] + histogram[len(basis(rows + phased))] += 1 + require(histogram == {8: 2, 15: 16, 16: 494}, "The two-demand ranks must match") + + cache = [] + projected_rows = [] + fiber_sizes_and_ranks = [] + for group in fibers(labels, NORMALS).values(): + local_basis = basis([[row[i] for i in group] for row in rows]) + fiber_sizes_and_ranks.append([len(group), len(local_basis)]) + for local_row in local_basis: + row = [Fraction(0)] * 112 + for i, value in zip(group, local_row): + row[i] = value + cache.append(row) + for source in rows: + projected_rows.append([source[i] if i in group else 0 for i in range(112)]) + require(fiber_sizes_and_ranks == [[8, 4]] * 14, "The final fibers must have rank four") + require(len(basis(cache)) == 56 and len(basis(cache + rows)) == 56, + "The cache basis must be independent and contain the query rows") + for row in cache: + support = [i for i, value in enumerate(row) if value] + for direction in NORMALS: + signs = {1 - 2 * ((labels[i] & direction).bit_count() % 2) for i in support} + require(len(signs) == 1, "Each cache row must be an eigenvector for each update") + reduced = cache[1:] + require(len(basis(reduced)) == 55, "The reduced cache must have rank55") + rejected_projection = next((i for i, row in enumerate(projected_rows) + if len(basis(reduced + [row])) == 56), None) + require(rejected_projection is not None, "A required projection must fail in the reduced cache") + report = { + "status": "PASS_EXACT_MINIMAL_SCALAR_CACHE_COUNTS", + "interface_sha256": PIN, + "arithmetic": "fractions.Fraction over Q", + "normal_directions": NORMALS, + "normal_dimensions": normal_dimensions, + "coordinate_dimensions": coordinate_dimensions, + "stacked_rank_histogram": dict(sorted(histogram.items())), + "normal_fiber_sizes_and_ranks": fiber_sizes_and_ranks, + "explicit_cache_rank": 56, + "query_rows_in_cache": True, + "cache_invariant_under_all_normal_directions": True, + "removed_row_control_rejected": True, + "missing_projection_index": rejected_projection, + "scope": "Finite counts and a basis construction for the pinned query. The written proof gives the general theorem. No native cost or kappa claim.", + } + args.out.write_text(json.dumps(report, indent=2, sort_keys=True) + "\n") + print(report["status"]) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--interface", type=Path, required=True) + parser.add_argument("--out", type=Path, required=True) + main(parser.parse_args()) diff --git a/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/bounds-review/review_centre_free.py b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/bounds-review/review_centre_free.py new file mode 100644 index 0000000000..60111b7d6a --- /dev/null +++ b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/bounds-review/review_centre_free.py @@ -0,0 +1,226 @@ +"""Review the centre-free word by an exact transpose replay.""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import argparse +import gzip +import io +import json +import subprocess +import tarfile + +BASE = 'bce54fb3f895cbe5cd4c0eb477c3afeed100190f' +ARCHIVE = 'research/community-frontier1042-audit/selected-replay.tar.gz' +ARCHIVE_HASH = '22c3f4dce4b897a1d423d1388801933e288b6a6b1906cb15e1b16a5eb68db754' +WORD_HASH = '4ddb29fb9bc6f27e0c0fbfcf19a2a93a3496ad900d0f6d89059d0305c9576c0c' +PROGRAM_HASH = '9f41d53659e9be84e20c661560c5687abbf5cd0660cdecbe01ad5eb29e6b8ee3' + + +def require(ok, message): + if not ok: + raise ValueError(message) + + +def load_source(repo): + proc = subprocess.Popen(['git', 'show', BASE + ':' + ARCHIVE], cwd=repo, stdout=subprocess.PIPE) + digest = sha256() + while chunk := proc.stdout.read(65536): + digest.update(chunk) + require(proc.wait() == 0 and digest.hexdigest() == ARCHIVE_HASH, 'archive pin') + proc = subprocess.Popen(['git', 'show', BASE + ':' + ARCHIVE], cwd=repo, stdout=subprocess.PIPE) + payload = {} + with tarfile.open(fileobj=proc.stdout, mode='r|gz') as archive: + for item in archive: + if item.name in ('slots/local/CANONICAL-WORD.json.gz', 'slots/local/LOCAL-PROGRAMS.json.gz'): + payload[item.name] = gzip.decompress(archive.extractfile(item).read()) + require(proc.wait() == 0, 'source extraction') + word_raw = payload['slots/local/CANONICAL-WORD.json.gz'] + program_raw = payload['slots/local/LOCAL-PROGRAMS.json.gz'] + require(sha256(word_raw).hexdigest() == WORD_HASH, 'word pin') + require(sha256(program_raw).hexdigest() == PROGRAM_HASH, 'program pin') + return json.loads(word_raw), program_raw + + +def index(register): + require(register[0] in ('L', 'C'), 'register kind') + return register[1] + (704 if register[0] == 'C' else 0) + + +def scalar(event): + gate = event[1] + tag, target = gate[0], index(gate[1]) + if tag == 'clear': + return tag, target, -1, Q(0) + if tag == 'scale': + return tag, target, -1, Q(gate[2], gate[3]) + require(tag in ('add', 'copy'), 'scalar kind') + return tag, target, index(gate[2]), Q(1) if tag == 'copy' else Q(gate[3], gate[4]) + + +def plus(target, source, scale): + for j, v in source.items(): + z = target.get(j, Q(0)) + scale*v + if z: + target[j] = z + else: + target.pop(j, None) + + +def transpose(program, size=712): + cols = [{i: Q(1)} for i in range(size)] + for tag, target, source, coef in reversed(program): + if tag == 'clear': + cols[target] = {} + elif tag == 'scale': + cols[target] = {j: coef*v for j, v in cols[target].items() if coef*v} + else: + plus(cols[source], cols[target], coef) + if tag == 'copy': + cols[target] = {} + return cols + + +def clean_rows(old, word): + prefix = [scalar(e) for e in old[:old.index(['phase', 'centers'])] if e[0] == 'scalar'] + rows = [] + for centre in word['centers']: + row = {centre: Q(1)} + for tag, target, source, coef in reversed(prefix): + x = row.get(target, Q(0)) + if tag == 'clear': + row.pop(target, None) + elif tag == 'scale': + if coef*x: + row[target] = coef*x + else: + row.pop(target, None) + else: + value = row.get(source, Q(0)) + coef*x + if value: + row[source] = value + else: + row.pop(source, None) + if tag == 'copy': + row.pop(target, None) + rows.append([row.get(j, Q(0)) for j in range(112)]) + require([[sum(a*b for a, b in zip(r, s)) for s in rows] for r in rows] + == [[Q(56 if i == j else 0) for j in range(8)] for i in range(8)], 'independent R Gram') + return rows + + +def check_frames(events, word): + frames = word['start'].copy() + [None]*8 + live = set() + peak = 0 + for event in events: + if event[0] == 'center': + raise ValueError('a centre child remains') + if event[0] == 'climb': + require(frames[event[2]] == event[3], 'climb entry') + frames[event[2]] = event[4] + if event[0] != 'scalar': + continue + tag, target, source, coef = scalar(event) + frame = event[2] + if tag == 'clear': + frames[target] = frame + live.discard(target) + else: + require(frames[target] == frame, 'scalar target frame') + if source >= 0: + require(frames[source] == frame, 'scalar source frame') + if target >= 704: + live.add(target) + peak = max(peak, len(live)) + require(frames[:704] == word['final'], 'persistent final frames') + require(frames[704:] == [0]*8 and not live, 'private final frames and lifetime') + return peak + + +def one_vector(gates, source, omit): + state = [Q(0)]*712 + state[source] = Q(1) + for site, (tag, target, arg, coef) in enumerate(gates): + if site == omit: + continue + if tag == 'clear': + state[target] = Q(0) + elif tag == 'scale': + state[target] *= coef + elif tag == 'copy': + state[target] = state[arg] + else: + state[target] += coef*state[arg] + return state + + +def review(repo, changed, orientation): + word, raw = load_source(repo) + old = json.loads(raw)[orientation] + del raw + # Derive R from the selected forward word, regardless of the reviewed direction. + if orientation == 'forward': + R = clean_rows(old, word) + else: + _, raw = load_source(repo) + R = clean_rows(json.loads(raw)['forward'], word) + del raw + raw = gzip.decompress(changed.read_bytes()) + changed_hash = sha256(raw).hexdigest() + new = json.loads(raw)[orientation] + del raw + native = lambda events: [e for e in events if e[0] in ('climb', 'adapter', 'residual_adapter')] + old_native, new_native = native(old), native(new) + require(old_native == new_native, 'persistent native stream changed') + native_hash = sha256(json.dumps(new_native, separators=(',', ':')).encode()).hexdigest() + old_paid = Counter(e[5] for e in old if e[0] == 'climb') + old_paid.update(e[4] for e in old if e[0] == 'center') + new_paid = Counter(e[5] for e in new if e[0] == 'climb') + require(old_paid - new_paid == {8: 8} and not new_paid - old_paid, 'paid centre difference') + peak = check_frames(new, word) + require(peak == 1, 'private peak') + J = [[Q(i == j) - sum(r[i]*r[j] for r in R)/4 for j in range(112)] for i in range(112)] + gates = [scalar(e) for e in new if e[0] == 'scalar'] + del new, old, new_native, old_native, word + actual = transpose(gates) + for j, column in enumerate(actual): + expected = {j: Q(1)} if j < 704 else {} + if orientation == 'forward' and j < 112: + expected.update({112+i: J[i][j] for i in range(112) if J[i][j]}) + if orientation == 'backward' and 112 <= j < 224: + expected.update({i: -J[j-112][i] for i in range(112) if J[j-112][i]}) + require(column == expected, 'transpose column ' + str(j)) + first_clear = next(i for i, e in enumerate(gates) if e[:2] == ('clear', 704)) + bad_private = one_vector(gates, 704, first_clear) + require(any(bad_private[:704]), 'private clear control') + first_add = next(i for i in range(first_clear, len(gates)) if gates[i][0] == 'add') + source = gates[first_add][2] + correct = one_vector(gates, source, -1) + bad_add = one_vector(gates, source, first_add) + require(correct != bad_add, 'dirty correction control') + return { + 'status': 'PASS_INDEPENDENT_TRANSPOSE_CENTRE_FREE_INTERFACE', + 'orientation': orientation, + 'base': BASE, + 'archive_sha256': ARCHIVE_HASH, + 'changed_payload_sha256': changed_hash, + 'full_columns': 712, + 'full_rows': 712, + 'persistent_native_events': 5056, + 'persistent_native_stream_sha256': native_hash, + 'removed_paid_profile': {'8': 8}, + 'remaining_paid_profile': dict(sorted(new_paid.items())), + 'private_peak_live': peak, + 'negative_controls': ['omit first private clear', 'omit first dirty correction add'], + 'scope': 'Exact scalar and common-frame lift premises. No physical owner/controller or recursive supplier admission.', + } + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--repo', type=Path, required=True) + parser.add_argument('--changed', type=Path, required=True) + parser.add_argument('--orientation', choices=('forward', 'backward'), required=True) + args = parser.parse_args() + print(json.dumps(review(args.repo, args.changed, args.orientation), indent=2)) diff --git a/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/circuit-interface/INTERFACE.json b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/circuit-interface/INTERFACE.json new file mode 100644 index 0000000000..4201e9a04c --- /dev/null +++ b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/circuit-interface/INTERFACE.json @@ -0,0 +1,1441 @@ +{ + "D": [ + { + "0": "1/4", + "1": "1/4" + }, + { + "4": "1/4", + "7": "1/4" + }, + {}, + { + "4": "1/4", + "6": "-1/4" + }, + { + "5": "1/4", + "7": "1/4" + }, + { + "1": "1/4", + "3": "1/4" + }, + { + "1": "1/4", + "2": "1/4" + }, + { + "2": "1/4", + "3": "-1/4" + }, + { + "1": "1/4", + "3": "-1/4" + }, + {}, + { + "4": "1/4", + "5": "-1/4" + }, + {}, + { + "0": "1/4", + "2": "1/4" + }, + { + "2": "1/4", + "3": "1/4" + }, + {}, + { + "2": "1/4", + "3": "1/4" + }, + { + "2": "1/4", + "3": "-1/4" + }, + { + "0": "1/4", + "2": "-1/4" + }, + { + "0": "1/4", + "2": "-1/4" + }, + { + "5": "1/4", + "7": "-1/4" + }, + { + "4": "1/4", + "5": "-1/4" + }, + {}, + { + "0": "1/4", + "3": "-1/4" + }, + { + "5": "1/4", + "6": "1/4" + }, + { + "4": "1/4", + "7": "-1/4" + }, + {}, + { + "4": "1/4", + "6": "1/4" + }, + { + "2": "1/4", + "3": "1/4" + }, + { + "4": "1/4", + "7": "-1/4" + }, + { + "5": "1/4", + "6": "1/4" + }, + { + "1": "1/4", + "2": "-1/4" + }, + { + "4": "1/4", + "6": "1/4" + }, + { + "4": "1/4", + "7": "-1/4" + }, + { + "5": "1/4", + "6": "1/4" + }, + { + "0": "1/4", + "3": "1/4" + }, + { + "4": "1/4", + "7": "1/4" + }, + { + "4": "1/4", + "5": "1/4" + }, + {}, + { + "4": "1/4", + "6": "-1/4" + }, + { + "5": "1/4", + "7": "1/4" + }, + { + "0": "1/4", + "2": "-1/4" + }, + {}, + { + "2": "1/4", + "3": "-1/4" + }, + {}, + { + "6": "1/4", + "7": "-1/4" + }, + { + "0": "1/4", + "3": "-1/4" + }, + { + "6": "1/4", + "7": "-1/4" + }, + {}, + { + "0": "1/4", + "3": "1/4" + }, + { + "0": "1/4", + "3": "1/4" + }, + { + "5": "1/4", + "6": "-1/4" + }, + { + "6": "1/4", + "7": "1/4" + }, + {}, + { + "4": "1/4", + "5": "1/4" + }, + { + "0": "1/4", + "2": "1/4" + }, + { + "5": "1/4", + "7": "1/4" + }, + { + "4": "1/4", + "6": "-1/4" + }, + { + "0": "1/4", + "1": "-1/4" + }, + { + "1": "1/4", + "2": "-1/4" + }, + { + "1": "1/4", + "2": "-1/4" + }, + { + "5": "1/4", + "6": "-1/4" + }, + {}, + { + "0": "1/4", + "1": "-1/4" + }, + {}, + { + "1": "1/4", + "3": "-1/4" + }, + { + "5": "1/4", + "7": "1/4" + }, + { + "4": "1/4", + "6": "-1/4" + }, + { + "1": "1/4", + "3": "1/4" + }, + { + "1": "1/4", + "3": "1/4" + }, + { + "5": "1/4", + "7": "-1/4" + }, + { + "0": "1/4", + "1": "1/4" + }, + {}, + { + "0": "1/4", + "1": "1/4" + }, + { + "1": "1/4", + "2": "1/4" + }, + { + "5": "1/4", + "6": "1/4" + }, + { + "4": "1/4", + "7": "-1/4" + }, + {}, + { + "4": "1/4", + "6": "1/4" + }, + {}, + { + "6": "1/4", + "7": "-1/4" + }, + { + "1": "1/4", + "3": "1/4" + }, + {}, + { + "1": "1/4", + "2": "1/4" + }, + { + "1": "1/4", + "2": "1/4" + }, + { + "5": "1/4", + "6": "-1/4" + }, + { + "4": "1/4", + "7": "1/4" + }, + { + "4": "1/4", + "7": "1/4" + }, + {}, + { + "4": "1/4", + "6": "1/4" + }, + { + "6": "1/4", + "7": "1/4" + }, + {}, + { + "4": "1/4", + "5": "1/4" + }, + {}, + { + "1": "1/4", + "2": "-1/4" + }, + { + "0": "1/4", + "1": "-1/4" + }, + { + "1": "1/4", + "3": "-1/4" + }, + { + "1": "1/4", + "3": "-1/4" + }, + { + "5": "1/4", + "7": "-1/4" + }, + { + "0": "1/4", + "3": "1/4" + }, + {}, + { + "0": "1/4", + "2": "1/4" + }, + { + "0": "1/4", + "2": "1/4" + }, + { + "5": "1/4", + "7": "-1/4" + }, + { + "0": "1/4", + "2": "-1/4" + }, + {}, + { + "4": "1/4", + "5": "-1/4" + }, + {}, + { + "0": "1/4", + "3": "-1/4" + }, + { + "0": "1/4", + "3": "-1/4" + }, + { + "5": "1/4", + "6": "-1/4" + }, + {}, + { + "6": "1/4", + "7": "1/4" + } + ], + "H": [ + { + "225": "1", + "226": "-1", + "227": "2", + "229": "1", + "230": "1", + "233": "1", + "234": "-1", + "235": "2", + "237": "1", + "238": "1", + "240": "1", + "241": "1", + "242": "1", + "243": "2", + "245": "1", + "246": "1", + "249": "1", + "250": "-1", + "251": "2", + "253": "1", + "254": "1", + "256": "1", + "257": "1", + "258": "1", + "259": "2", + "261": "1", + "262": "1", + "265": "1", + "266": "-1", + "267": "2", + "269": "1", + "270": "1", + "272": "1", + "276": "1", + "280": "-1", + "283": "2", + "286": "1", + "287": "-2", + "288": "1", + "292": "1", + "296": "-1", + "299": "2", + "302": "1", + "303": "-2", + "304": "1", + "308": "1", + "312": "-1", + "315": "2", + "318": "1", + "319": "-2", + "320": "1", + "324": "1", + "331": "2", + "334": "1", + "335": "-1" + }, + { + "224": "2", + "225": "-1", + "226": "1", + "229": "1", + "230": "1", + "233": "-1", + "234": "-1", + "237": "-1", + "238": "1", + "239": "-2", + "240": "1", + "241": "-1", + "242": "1", + "245": "1", + "246": "1", + "249": "-1", + "250": "-1", + "253": "-1", + "254": "1", + "255": "-2", + "256": "1", + "257": "-1", + "258": "1", + "261": "1", + "262": "1", + "265": "-1", + "266": "-1", + "269": "-1", + "270": "1", + "271": "-2", + "336": "1", + "340": "1", + "347": "2", + "350": "1", + "351": "-1", + "352": "1", + "356": "1", + "363": "2", + "366": "1", + "367": "-1", + "368": "1", + "372": "1", + "379": "2", + "382": "1", + "383": "-1", + "384": "1", + "388": "1", + "395": "2", + "398": "1", + "399": "-1" + }, + { + "224": "2", + "225": "-1", + "226": "-1", + "227": "2", + "229": "-1", + "230": "-1", + "233": "1", + "234": "1", + "237": "-1", + "238": "-1", + "272": "1", + "276": "1", + "280": "-1", + "283": "-2", + "286": "1", + "287": "-2", + "288": "1", + "292": "1", + "296": "-1", + "299": "-2", + "302": "1", + "303": "-2", + "336": "1", + "340": "1", + "347": "-2", + "350": "1", + "351": "-1", + "352": "1", + "356": "1", + "363": "-2", + "366": "1", + "367": "-1", + "400": "1", + "401": "1", + "402": "-1", + "403": "2", + "405": "1", + "406": "1", + "409": "1", + "410": "-1", + "411": "2", + "413": "1", + "414": "1", + "416": "1", + "417": "1", + "418": "-1", + "419": "2", + "421": "1", + "422": "1", + "425": "1", + "426": "-1", + "427": "2", + "429": "1", + "430": "1" + }, + { + "225": "1", + "226": "-1", + "229": "1", + "230": "-1", + "233": "1", + "234": "1", + "235": "-2", + "237": "1", + "238": "1", + "239": "-2", + "304": "1", + "308": "1", + "312": "-1", + "315": "-2", + "318": "1", + "319": "-2", + "320": "1", + "324": "1", + "331": "-2", + "334": "1", + "335": "-1", + "368": "1", + "372": "1", + "379": "-2", + "382": "1", + "383": "-1", + "384": "1", + "388": "1", + "395": "-2", + "398": "1", + "399": "-1", + "400": "1", + "401": "-1", + "402": "1", + "405": "1", + "406": "1", + "409": "-1", + "410": "-1", + "413": "-1", + "414": "1", + "415": "-2", + "416": "1", + "417": "-1", + "418": "1", + "421": "1", + "422": "1", + "425": "-1", + "426": "-1", + "429": "-1", + "430": "1", + "431": "-2" + }, + { + "240": "1", + "241": "-1", + "242": "1", + "243": "2", + "245": "-1", + "246": "-1", + "249": "1", + "250": "1", + "253": "-1", + "254": "-1", + "272": "1", + "276": "-1", + "280": "-1", + "286": "-1", + "287": "-2", + "304": "1", + "308": "-1", + "312": "-1", + "318": "-1", + "319": "-2", + "336": "1", + "340": "-1", + "350": "-1", + "351": "-1", + "368": "1", + "372": "-1", + "382": "-1", + "383": "-1", + "400": "1", + "401": "-1", + "402": "-1", + "403": "2", + "405": "-1", + "406": "-1", + "409": "1", + "410": "1", + "413": "-1", + "414": "-1", + "433": "1", + "434": "-1", + "435": "2", + "437": "1", + "438": "1", + "441": "1", + "442": "-1", + "443": "2", + "445": "1", + "446": "1" + }, + { + "240": "1", + "241": "1", + "242": "-1", + "245": "1", + "246": "-1", + "249": "1", + "250": "1", + "251": "-2", + "253": "1", + "254": "1", + "255": "-2", + "288": "1", + "292": "-1", + "296": "-1", + "302": "-1", + "303": "-2", + "320": "1", + "324": "-1", + "334": "-1", + "335": "-1", + "352": "1", + "356": "-1", + "366": "-1", + "367": "-1", + "384": "1", + "388": "-1", + "398": "-1", + "399": "-1", + "400": "1", + "401": "1", + "402": "-1", + "405": "1", + "406": "-1", + "409": "1", + "410": "1", + "411": "-2", + "413": "1", + "414": "1", + "415": "-2", + "432": "2", + "433": "-1", + "434": "1", + "437": "1", + "438": "1", + "441": "-1", + "442": "-1", + "445": "-1", + "446": "1", + "447": "-2" + }, + { + "256": "1", + "257": "-1", + "258": "1", + "259": "2", + "261": "-1", + "262": "-1", + "265": "1", + "266": "1", + "269": "-1", + "270": "-1", + "272": "-1", + "276": "1", + "280": "1", + "286": "1", + "287": "-2", + "320": "-1", + "324": "1", + "334": "1", + "335": "-3", + "352": "-1", + "356": "1", + "366": "1", + "367": "-3", + "368": "-1", + "372": "1", + "382": "1", + "383": "-3", + "416": "1", + "417": "-1", + "418": "-1", + "419": "2", + "421": "-1", + "422": "-1", + "425": "1", + "426": "1", + "429": "-1", + "430": "-1", + "432": "2", + "433": "-1", + "434": "-1", + "435": "2", + "437": "-1", + "438": "-1", + "441": "1", + "442": "1", + "445": "-1", + "446": "-1" + }, + { + "256": "1", + "257": "1", + "258": "-1", + "261": "1", + "262": "-1", + "265": "1", + "266": "1", + "267": "-2", + "269": "1", + "270": "1", + "271": "-2", + "288": "-1", + "292": "1", + "296": "1", + "302": "1", + "303": "-2", + "304": "-1", + "308": "1", + "312": "1", + "318": "1", + "319": "-2", + "336": "-1", + "340": "1", + "350": "1", + "351": "-3", + "384": "-1", + "388": "1", + "398": "1", + "399": "-3", + "416": "1", + "417": "1", + "418": "-1", + "421": "1", + "422": "-1", + "425": "1", + "426": "1", + "427": "-2", + "429": "1", + "430": "1", + "431": "-2", + "433": "1", + "434": "-1", + "437": "1", + "438": "-1", + "441": "1", + "442": "1", + "443": "-2", + "445": "1", + "446": "1", + "447": "-2" + } + ], + "J_row_support_distribution": { + "52": 112 + }, + "R": [ + { + "0": "1", + "10": "1", + "100": "1", + "101": "1", + "102": "1", + "103": "1", + "107": "1", + "108": "1", + "109": "1", + "11": "1", + "12": "1", + "17": "1", + "18": "1", + "19": "1", + "2": "1", + "22": "1", + "23": "1", + "24": "1", + "25": "1", + "27": "1", + "31": "1", + "32": "1", + "33": "1", + "34": "1", + "35": "1", + "38": "1", + "39": "1", + "40": "1", + "45": "1", + "48": "1", + "49": "1", + "50": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "61": "1", + "62": "1", + "63": "1", + "7": "1", + "70": "1", + "71": "1", + "72": "1", + "76": "1", + "77": "1", + "79": "1", + "81": "1", + "85": "1", + "87": "1", + "89": "1", + "9": "1", + "90": "1", + "91": "1", + "92": "1", + "94": "1", + "98": "1" + }, + { + "0": "1", + "1": "1", + "10": "-1", + "11": "-1", + "2": "1", + "25": "1", + "26": "1", + "27": "1", + "28": "1", + "29": "1", + "3": "1", + "30": "1", + "4": "1", + "5": "1", + "57": "-1", + "58": "1", + "59": "1", + "6": "1", + "60": "1", + "61": "-1", + "62": "-1", + "63": "-1", + "64": "1", + "65": "1", + "66": "1", + "67": "1", + "68": "1", + "69": "1", + "7": "-1", + "70": "1", + "71": "1", + "72": "1", + "73": "1", + "74": "1", + "75": "1", + "76": "1", + "79": "-1", + "8": "1", + "80": "1", + "81": "-1", + "82": "1", + "83": "1", + "84": "1", + "86": "1", + "87": "1", + "88": "1", + "89": "1", + "9": "-1", + "90": "1", + "91": "1", + "92": "-1", + "93": "1", + "94": "-1", + "95": "1", + "96": "1", + "97": "1" + }, + { + "0": "1", + "1": "1", + "100": "1", + "101": "1", + "102": "1", + "103": "-1", + "104": "1", + "105": "1", + "106": "1", + "12": "1", + "13": "1", + "14": "1", + "15": "1", + "16": "1", + "17": "-1", + "18": "-1", + "19": "-1", + "27": "-1", + "28": "-1", + "29": "-1", + "30": "-1", + "31": "1", + "38": "-1", + "39": "-1", + "40": "-1", + "41": "1", + "42": "1", + "43": "1", + "44": "1", + "51": "1", + "52": "1", + "53": "1", + "54": "1", + "55": "1", + "56": "1", + "57": "1", + "58": "-1", + "59": "-1", + "6": "1", + "60": "-1", + "7": "-1", + "73": "1", + "74": "1", + "75": "1", + "76": "1", + "77": "-1", + "78": "1", + "81": "-1", + "82": "1", + "83": "1", + "84": "1", + "86": "-1", + "87": "-1", + "92": "1", + "93": "-1", + "99": "1" + }, + { + "0": "1", + "104": "-1", + "105": "-1", + "106": "-1", + "107": "-1", + "108": "-1", + "109": "-1", + "13": "1", + "14": "1", + "15": "1", + "16": "-1", + "22": "-1", + "23": "-1", + "24": "-1", + "26": "-1", + "27": "-1", + "3": "1", + "32": "1", + "33": "1", + "34": "1", + "35": "-1", + "4": "1", + "41": "-1", + "42": "-1", + "43": "-1", + "44": "-1", + "45": "-1", + "48": "1", + "49": "1", + "5": "1", + "50": "1", + "51": "1", + "52": "1", + "53": "1", + "57": "-1", + "64": "-1", + "65": "-1", + "66": "-1", + "67": "1", + "68": "1", + "69": "1", + "7": "1", + "76": "-1", + "78": "1", + "8": "-1", + "80": "1", + "81": "-1", + "85": "1", + "87": "1", + "88": "1", + "92": "1", + "95": "-1", + "96": "-1", + "97": "-1", + "98": "1", + "99": "1" + }, + { + "1": "-1", + "10": "-1", + "100": "1", + "103": "1", + "105": "-1", + "106": "-1", + "107": "1", + "11": "-1", + "110": "1", + "111": "1", + "12": "1", + "14": "1", + "15": "1", + "17": "1", + "20": "1", + "21": "1", + "24": "-1", + "26": "-1", + "28": "-1", + "3": "-1", + "31": "-1", + "32": "-1", + "35": "-1", + "36": "1", + "37": "1", + "38": "-1", + "41": "1", + "42": "1", + "45": "1", + "46": "1", + "47": "1", + "48": "1", + "52": "-1", + "53": "-1", + "56": "-1", + "58": "1", + "6": "1", + "62": "1", + "63": "1", + "66": "-1", + "67": "1", + "70": "1", + "71": "1", + "75": "-1", + "77": "-1", + "8": "1", + "80": "1", + "82": "1", + "85": "-1", + "86": "-1", + "88": "-1", + "90": "-1", + "91": "-1", + "93": "1", + "95": "1", + "98": "1" + }, + { + "10": "1", + "101": "1", + "102": "-1", + "105": "1", + "106": "-1", + "108": "1", + "109": "-1", + "11": "-1", + "110": "-1", + "111": "1", + "14": "-1", + "15": "1", + "18": "1", + "19": "-1", + "20": "-1", + "21": "1", + "22": "1", + "23": "-1", + "29": "-1", + "30": "1", + "33": "-1", + "34": "1", + "36": "1", + "37": "-1", + "39": "-1", + "4": "-1", + "40": "1", + "41": "1", + "42": "-1", + "46": "-1", + "47": "1", + "49": "1", + "5": "1", + "50": "-1", + "52": "1", + "53": "-1", + "54": "1", + "55": "-1", + "59": "1", + "60": "-1", + "62": "-1", + "63": "1", + "64": "1", + "65": "-1", + "68": "1", + "69": "-1", + "70": "1", + "71": "-1", + "73": "1", + "74": "-1", + "83": "1", + "84": "-1", + "90": "1", + "91": "-1", + "96": "1", + "97": "-1" + }, + { + "100": "-1", + "103": "1", + "104": "-1", + "108": "1", + "109": "1", + "110": "-1", + "111": "-1", + "12": "1", + "13": "1", + "16": "1", + "17": "-1", + "2": "1", + "20": "1", + "21": "1", + "22": "-1", + "23": "-1", + "25": "-1", + "26": "-1", + "29": "-1", + "3": "1", + "30": "-1", + "31": "-1", + "33": "-1", + "34": "-1", + "36": "1", + "37": "1", + "38": "1", + "43": "1", + "44": "-1", + "46": "-1", + "47": "-1", + "49": "1", + "50": "1", + "51": "-1", + "56": "1", + "59": "1", + "60": "1", + "61": "1", + "66": "1", + "67": "-1", + "72": "1", + "73": "-1", + "74": "-1", + "77": "-1", + "78": "1", + "79": "-1", + "8": "1", + "80": "1", + "83": "1", + "84": "1", + "88": "-1", + "89": "-1", + "9": "-1", + "94": "1", + "95": "-1", + "99": "-1" + }, + { + "1": "-1", + "101": "1", + "102": "1", + "104": "-1", + "107": "-1", + "110": "-1", + "111": "-1", + "13": "1", + "16": "-1", + "18": "1", + "19": "1", + "2": "-1", + "20": "-1", + "21": "-1", + "24": "1", + "25": "1", + "28": "1", + "32": "1", + "35": "-1", + "36": "1", + "37": "1", + "39": "-1", + "4": "-1", + "40": "-1", + "43": "1", + "44": "1", + "45": "1", + "46": "1", + "47": "1", + "48": "-1", + "5": "-1", + "51": "-1", + "54": "-1", + "55": "-1", + "58": "-1", + "6": "1", + "61": "1", + "64": "-1", + "65": "-1", + "68": "1", + "69": "1", + "72": "1", + "75": "1", + "78": "-1", + "79": "1", + "82": "-1", + "85": "-1", + "86": "-1", + "89": "-1", + "9": "-1", + "93": "1", + "94": "-1", + "96": "1", + "97": "1", + "98": "1", + "99": "1" + } + ], + "archive_sha256": "22c3f4dce4b897a1d423d1388801933e288b6a6b1906cb15e1b16a5eb68db754", + "base": "bce54fb3f895cbe5cd4c0eb477c3afeed100190f", + "centre_removed_paid_rank": 64, + "column_support_distribution": { + "4": 112 + }, + "corrected_map_backward": "(x,y,h,c) -> (x-J^T y,y,h,0)", + "corrected_map_forward": "(x,y,h,c) -> (x,y+Jx,h,0)", + "corrected_program_checks": { + "backward": { + "all_scalar_frame_access_checked": true, + "first_correction_add_omission_rejected": true, + "initial_private_clear_omission_rejected": true, + "old_primitive_bound_real_components": 198814, + "prefix_add": 580, + "prefix_clear": 16, + "primitive_bound_real_components": 202138, + "scalar_macros": 20089, + "unchanged_persistent_native_events": 5056 + }, + "forward": { + "all_scalar_frame_access_checked": true, + "first_correction_add_omission_rejected": true, + "initial_private_clear_omission_rejected": true, + "old_primitive_bound_real_components": 198766, + "prefix_add": 580, + "prefix_clear": 16, + "primitive_bound_real_components": 202138, + "scalar_macros": 20089, + "unchanged_persistent_native_events": 5056 + } + }, + "corrected_program_payload_sha256": "fa60b4af013dd8b8db289845e3ed597720ff955751ad270c3d58236b64080877", + "dirty_correction_site": "After entry adapters and before A; targets and all helpers in H have canonical frame zero.", + "full_input_columns": 712, + "full_output_rows": 712, + "identities": [ + "R R^T = 56 I8", + "P = R^T R/4", + "P^2 = 14 P", + "J = I112-P", + "J^2+12J-13I112=0", + "J^-1 = (12I112+J)/13" + ], + "map": "(x,y,h,c) -> (x, y + J x - R^T H h/4, h, 0)", + "not_claimed": [ + "Native centre-free supplier admission", + "Free endpoint J^-1", + "Changed global controller", + "Kappa improvement" + ], + "ports": [ + 11, + 19, + 35, + 67, + 131, + 259, + 13, + 21, + 37, + 69, + 133, + 261, + 41, + 73, + 137, + 265, + 49, + 81, + 145, + 273, + 161, + 289, + 193, + 321, + 385, + 14, + 22, + 38, + 70, + 134, + 262, + 26, + 74, + 138, + 266, + 50, + 146, + 274, + 98, + 162, + 290, + 194, + 322, + 386, + 28, + 44, + 140, + 268, + 84, + 148, + 276, + 100, + 164, + 292, + 196, + 324, + 388, + 56, + 88, + 152, + 280, + 104, + 168, + 296, + 200, + 328, + 392, + 112, + 176, + 304, + 208, + 336, + 400, + 224, + 352, + 416, + 448, + 508, + 506, + 502, + 494, + 478, + 446, + 382, + 254, + 505, + 501, + 493, + 477, + 445, + 381, + 253, + 499, + 491, + 475, + 443, + 379, + 251, + 487, + 471, + 439, + 375, + 247, + 463, + 431, + 367, + 239, + 415, + 351, + 223, + 319, + 191 + ], + "program_sha256": "9f41d53659e9be84e20c661560c5687abbf5cd0660cdecbe01ad5eb29e6b8ee3", + "scope": "Exact scalar interface only. Native endpoint mixing and a changed controller are not admitted.", + "status": "PASS_CENTRE_FREE_SCALAR_INTERFACE", + "target_endpoint": "T_q = F C_q^-1; distinct q have distinct frames", + "word_sha256": "4ddb29fb9bc6f27e0c0fbfcf19a2a93a3496ad900d0f6d89059d0305c9576c0c" +} diff --git a/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE-PROOF.md b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE-PROOF.md new file mode 100644 index 0000000000..6e4dd3f8b3 --- /dev/null +++ b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE-PROOF.md @@ -0,0 +1,79 @@ +# A scalar-polynomial limit for the actual doubled centre Gram + +For every positive tensor size, the actual 112-port doubled centre Gram +has no annihilating scalar polynomial of degree less than 409. This +result rules out a short +polynomial identity for that operator. It does not bound the cost of +general weighted ADD circuits, matrix-valued encodings, or native +decoders. + +The source is `circuit-interface/INTERFACE.json`, SHA-256 +`5c6c51fbffc07a683e922f17532fd90262ae9e23cc3560a696002073dd234ef3`. +It gives the actual eight-by-112 matrix R and its port labels. No eight +normal columns are added. In particular, `RR^T=56I`. + +The exact Bell action was proved in +`residual-syndrome/physical-algebra/review-gauss/bell-compression/BELL-COMPRESSION.md`. +For one doubled tensor copy, the invariant Bell label is `c=a+b`. +On the a coordinate of the block with fixed c, the involution at port q +is `P_q(c)=X_q` when `q dot c=1` and `P_q(c)=Z_q` otherwise. Thus the +centre Gram on this block is the 4,096-dimensional rational matrix + + A_c = (1/4) sum_(q in the actual112 ports) r_q r_q^T P_q(c). + +Choose `c=11` and the prime `p=65537`. The entries of A lie in +`Z[1/2]`, so reduction modulo p is defined. The vectors v and w are +integer vectors. Their 4,096 entries are the little-endian unsigned +16-bit words of 8,192 SHAKE256 bytes, from the UTF-8 seeds +`actual-bell-gram-c11-trial0` and +`actual-bell-gram-c11-trial0-observer`, respectively. Reshape them as +eight rows of 512 entries. + +Form moments `s_j=w^T A_c^j v` and the 409-by-409 Hankel matrix +`H[i,j]=s_(i+j)` for indices from zero through 408. The exact modular +calculation gives + + det(H) = 2984 modulo65537. + +In particular, the determinant is nonzero over Q. It follows that +`v,A_c v,...,A_c^408 v` are linearly independent: any dependence among +them would give the same dependence among the columns of H. Therefore +the minimal polynomial of A_c over Q has degree at least 409. + +The full doubled centre operator contains this invariant block. There +is also an exact embedding at every positive tensor size lambda. In +Bell coordinates the vector `e_(a=0,b=0)` is a common positive-one +eigenvector of every `Gamma_q`. Restrict + + A_lambda=(1/4) sum_q r_q r_q^T Gamma_q^tensor(lambda) + +to the first `c=11` block tensored with `e_0^tensor(lambda-1)`. The +restriction is exactly `A_1,c=11`; the root coefficient is applied once, +not once per tensor slot. Thus every individual positive tensor size +has minimal-polynomial degree at least 409. This also rules out a +lower-degree polynomial identity proposed uniformly for all sizes. +Scalar extension to the Gaussian rationals or complex numbers does not +remove a nonzero rational determinant. + +`certify_bell_gram_degree.py` reproduces the 817 moments and the +determinant. It uses signed integer root coefficients and exact modular +arithmetic. All vector and matrix products fit in signed 64-bit integers +before reduction. The moment list and its SHA-256 are in +`BELL-GRAM-DEGREE.json`; the hash is +`a438880f142ea5c0a53120246fa5aed60c36db1d8052c911b485345fcb332150`. +A duplicate-row negative control must fail the same determinant check. +The certificate does not use a guessed recurrence or a characteristic +polynomial. Independent review passed in +`interface-proof/BELL-GRAM-DEGREE-REVIEW.json`. It derived R from the +original word, built the integer sparse operator `4A`, checked all +57,344 Bell monomial columns and all 817 moments, and used a separate +fraction-free Bareiss determinant calculation. A duplicate-column +control gave zero. The reviewer also supplied the invariant-subspace +extension to every positive tensor size. + +The earlier degree-39 experiment concerned a different operator: the +paired single-Walsh construction. It cannot be transferred to this +doubled Bell representation. Conversely, this lower bound does not +invalidate that experiment or rule out a direct circuit for the weighted +sum. It narrows the short scalar-polynomial approach only. This work +used AI assistance. diff --git a/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE.json b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE.json new file mode 100644 index 0000000000..1ad1e82b79 --- /dev/null +++ b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE.json @@ -0,0 +1,842 @@ +{ + "arithmetic_bound": "Every int64 product is below2^33 and every moment sum is below2^45; all reductions are exact.", + "bell_action": "P_q(c)=X_q if parity(q&c)=1, else Z_q", + "bell_constant": 11, + "dependent_row_control_rejected": true, + "elimination_row_swaps": 0, + "field_prime": 65537, + "hankel_definition": "H[i,j]=observer^T A_c^(i+j) initial, 0<=i,j<409", + "hankel_determinant_mod_prime": 2984, + "hankel_size": 409, + "initial_seed": "actual-bell-gram-c11-trial0", + "moments": [ + 39521, + 17040, + 32464, + 26822, + 6432, + 30693, + 16772, + 58508, + 45969, + 8328, + 43232, + 11880, + 33457, + 12710, + 36758, + 55991, + 36910, + 11260, + 3118, + 10376, + 26507, + 10332, + 18756, + 13167, + 1957, + 44953, + 11405, + 62864, + 60292, + 43817, + 48107, + 49864, + 42493, + 38541, + 47382, + 37634, + 20391, + 48955, + 44255, + 9520, + 4435, + 45657, + 46486, + 33632, + 32642, + 61465, + 54472, + 55786, + 10923, + 25169, + 32754, + 11386, + 2910, + 17592, + 53455, + 54624, + 64267, + 8403, + 29668, + 29961, + 1582, + 34719, + 22182, + 22276, + 14341, + 64557, + 23518, + 13471, + 63651, + 36975, + 37499, + 2458, + 19555, + 25569, + 51938, + 48677, + 46877, + 59429, + 62716, + 56220, + 39667, + 22162, + 56159, + 32487, + 62451, + 63590, + 34340, + 21151, + 1842, + 51520, + 15702, + 47474, + 62723, + 10270, + 45099, + 31337, + 55700, + 8459, + 56304, + 35783, + 23017, + 41422, + 15821, + 22314, + 17250, + 16103, + 64088, + 24754, + 40648, + 53575, + 15178, + 18894, + 48892, + 27097, + 43909, + 22972, + 65157, + 51595, + 46724, + 30279, + 9717, + 33773, + 44840, + 23456, + 1385, + 46100, + 28528, + 28833, + 49434, + 7008, + 55031, + 56046, + 17579, + 56478, + 58210, + 57252, + 62945, + 24626, + 6849, + 26336, + 25390, + 33864, + 7513, + 282, + 34489, + 9771, + 25586, + 62803, + 36664, + 49276, + 48464, + 5296, + 24823, + 15450, + 13615, + 31654, + 42064, + 10255, + 51909, + 64953, + 48396, + 57536, + 10528, + 7424, + 15855, + 52505, + 57832, + 58738, + 37173, + 1148, + 9608, + 43311, + 35945, + 33344, + 28139, + 11413, + 61554, + 53553, + 6275, + 33986, + 22113, + 25984, + 31099, + 53392, + 34985, + 42432, + 40834, + 6356, + 60513, + 22740, + 16964, + 39256, + 49188, + 59016, + 22747, + 61300, + 9407, + 64222, + 53914, + 35115, + 6402, + 18469, + 42992, + 52765, + 60831, + 50026, + 26588, + 51777, + 43946, + 24221, + 17123, + 64076, + 54109, + 9895, + 30163, + 6472, + 8007, + 30900, + 35536, + 62828, + 25243, + 11799, + 28606, + 8177, + 37989, + 29158, + 31536, + 46645, + 56966, + 42141, + 58347, + 1558, + 17658, + 42138, + 61085, + 15896, + 52133, + 56816, + 5022, + 21787, + 40403, + 11838, + 57057, + 38936, + 65482, + 1025, + 1953, + 24819, + 47770, + 8434, + 59138, + 23417, + 38384, + 13029, + 61793, + 30479, + 3185, + 64285, + 65211, + 61527, + 39415, + 31175, + 30238, + 47290, + 8280, + 3333, + 800, + 2684, + 24721, + 59760, + 45178, + 54730, + 63766, + 19941, + 25503, + 34896, + 36400, + 48800, + 51053, + 46971, + 42422, + 14970, + 4030, + 14834, + 19086, + 48993, + 17934, + 45514, + 43869, + 19373, + 42181, + 54858, + 7136, + 58983, + 6433, + 53432, + 13460, + 7294, + 18212, + 43020, + 51540, + 46474, + 21567, + 63224, + 52362, + 57601, + 22028, + 45547, + 33155, + 27661, + 33917, + 34577, + 17893, + 12565, + 41087, + 63362, + 56177, + 59357, + 43036, + 55690, + 58593, + 15503, + 56726, + 35655, + 62529, + 3719, + 57083, + 27525, + 1438, + 33421, + 6832, + 47411, + 16141, + 16467, + 33901, + 17988, + 29299, + 11055, + 37730, + 39315, + 45608, + 43857, + 64913, + 12839, + 51638, + 40317, + 50216, + 31786, + 11362, + 28001, + 45237, + 40851, + 1947, + 48567, + 58375, + 24863, + 55984, + 30426, + 29524, + 16916, + 44295, + 11532, + 6398, + 53297, + 37122, + 43588, + 22981, + 53452, + 6546, + 21445, + 43375, + 61137, + 32566, + 26303, + 58901, + 43603, + 51633, + 63613, + 19499, + 45528, + 40834, + 16332, + 33898, + 52335, + 8867, + 13616, + 48325, + 20275, + 47068, + 11564, + 29878, + 44677, + 60046, + 27356, + 10155, + 12905, + 64293, + 46343, + 35404, + 1989, + 31547, + 56880, + 30091, + 40379, + 5539, + 32540, + 56096, + 40383, + 47746, + 59124, + 48686, + 48265, + 669, + 10840, + 48300, + 3677, + 33653, + 17094, + 47859, + 64761, + 56879, + 4257, + 48516, + 1873, + 64194, + 62041, + 31728, + 4603, + 16705, + 42422, + 44848, + 48548, + 19287, + 44089, + 37986, + 26279, + 21527, + 56068, + 39728, + 55487, + 63735, + 59830, + 61131, + 59778, + 42907, + 58565, + 11227, + 58962, + 54374, + 30014, + 8589, + 35979, + 22619, + 24907, + 27806, + 44349, + 1843, + 24399, + 43688, + 30444, + 9126, + 1329, + 51979, + 554, + 52818, + 21352, + 42891, + 19596, + 10531, + 31283, + 43885, + 3473, + 43182, + 34373, + 1144, + 17194, + 9151, + 7178, + 17703, + 721, + 62730, + 34913, + 49331, + 11526, + 31348, + 473, + 29793, + 21626, + 19399, + 9588, + 31068, + 28280, + 61396, + 46738, + 38738, + 8598, + 4139, + 37136, + 11489, + 5392, + 59161, + 8004, + 904, + 9543, + 38471, + 48335, + 49348, + 33233, + 39574, + 39161, + 18367, + 41774, + 21645, + 32862, + 794, + 59975, + 9859, + 54443, + 19651, + 41197, + 42807, + 37643, + 1065, + 9796, + 56760, + 61574, + 12326, + 64858, + 34999, + 61675, + 41226, + 44409, + 38068, + 38980, + 47241, + 55814, + 51635, + 2849, + 42654, + 26595, + 14437, + 2756, + 22715, + 32046, + 13972, + 20314, + 62768, + 30989, + 31619, + 46562, + 40545, + 47407, + 38405, + 21597, + 20846, + 4516, + 4203, + 14251, + 60879, + 55967, + 15690, + 50389, + 32109, + 61555, + 3819, + 44672, + 23558, + 38972, + 55381, + 28776, + 11907, + 23765, + 45254, + 37875, + 45022, + 17790, + 10295, + 60919, + 64276, + 49329, + 17879, + 29626, + 13557, + 50800, + 50678, + 52714, + 48293, + 64202, + 1180, + 318, + 64758, + 30898, + 62622, + 60336, + 17339, + 56413, + 36305, + 8376, + 12827, + 38766, + 22006, + 42109, + 16168, + 58695, + 31126, + 60102, + 2560, + 32839, + 25535, + 61952, + 11764, + 58991, + 2657, + 54795, + 63354, + 60701, + 9358, + 34813, + 51694, + 32042, + 23132, + 55076, + 2322, + 2346, + 41667, + 34793, + 34526, + 59694, + 39476, + 39152, + 3943, + 47130, + 5643, + 61719, + 54627, + 26401, + 44548, + 53227, + 56183, + 55044, + 13719, + 49077, + 51554, + 14484, + 9164, + 15321, + 54416, + 49188, + 63376, + 38441, + 30205, + 42117, + 58204, + 2827, + 26265, + 48508, + 60505, + 4406, + 18119, + 19003, + 24358, + 36115, + 3189, + 6502, + 47128, + 54940, + 8109, + 5104, + 10587, + 56762, + 56323, + 15799, + 10202, + 17352, + 25315, + 58931, + 18994, + 7216, + 47126, + 33091, + 37003, + 29749, + 49651, + 8026, + 18788, + 39682, + 39548, + 16197, + 39817, + 46028, + 53270, + 56755, + 16808, + 44598, + 27946, + 50059, + 6088, + 13698, + 56054, + 25293, + 43977, + 5806, + 17537, + 24518, + 42046, + 7079, + 4118, + 46243, + 28083, + 13428, + 29715, + 5398, + 39004, + 50367, + 63719, + 61175, + 9207, + 37864, + 31043, + 16638, + 34716, + 10244, + 7889, + 15726, + 29228, + 12528, + 42524, + 37102, + 5908, + 54356, + 31357, + 556, + 40676, + 171, + 45782, + 28402, + 54672, + 46921, + 39400, + 11351, + 62750, + 34027, + 16148, + 49006, + 46880, + 10368, + 44635, + 38941, + 49312, + 58810, + 6476, + 64669, + 8743, + 8372, + 60245, + 37622, + 28300, + 10847, + 60056, + 55885, + 45851, + 10856, + 5631, + 23235, + 60558, + 59666, + 33882, + 51209, + 63880, + 20000, + 3303, + 25888, + 20307, + 58346, + 20370, + 20463, + 50701, + 7884, + 10890, + 32419, + 30210, + 61345, + 50140, + 7940, + 58140, + 16901, + 49694, + 5912, + 36183, + 60119, + 46039, + 48553, + 29022, + 60143, + 49739, + 28836, + 37602, + 62831, + 60961, + 27350, + 65184, + 14724, + 47711, + 15039, + 38451, + 13311, + 42863, + 32892, + 47119, + 26618, + 15092, + 47819, + 42572, + 40574, + 6323, + 61149, + 48425 + ], + "moments_count": 817, + "moments_sha256": "a438880f142ea5c0a53120246fa5aed60c36db1d8052c911b485345fcb332150", + "observer_seed": "actual-bell-gram-c11-trial0-observer", + "operator": "A_c=(1/4) sum actual112 r_q r_q^T P_q(c)", + "operator_dimension": 4096, + "proved_minimal_polynomial_degree_lower_bound_over_Q": 409, + "scope": "One actual doubled-Walsh Bell block forces degree at least409 for any annihilating scalar polynomial in characteristic zero. This does not bound general weighted ADD circuits, matrix-valued encodings, or native decoder cost.", + "seed_expansion": "SHAKE2568192bytes, little-endian unsigned16, reshape8by512", + "source_sha256": "5c6c51fbffc07a683e922f17532fd90262ae9e23cc3560a696002073dd234ef3", + "status": "PASS_EXACT_CHARACTERISTIC_ZERO_GRAM_DEGREE_LOWER_BOUND", + "tensor_size": 1 +} diff --git a/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-INVERSE-COROLLARY.md b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-INVERSE-COROLLARY.md new file mode 100644 index 0000000000..2073e7ed71 --- /dev/null +++ b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-INVERSE-COROLLARY.md @@ -0,0 +1,22 @@ +# A limit for scalar-polynomial inverse formulas + +`BELL-GRAM-DEGREE-PROOF.md` and its independent review prove that the +actual doubled centre Gram A_lambda has minimal-polynomial degree at +least 409 for every positive tensor size lambda. + +Let `aI+bA_lambda` be invertible over a characteristic-zero coefficient +field, with `b!=0`. If a scalar polynomial q satisfies + + q(A_lambda)=(aI+bA_lambda)^-1, + +then q has degree at least 408. Indeed, the nonzero polynomial +`(a+bt)q(t)-1` annihilates A_lambda. Its degree is at most `deg(q)+1`, +so the degree lower bound gives the claim. The polynomial is nonzero +because a nonconstant linear polynomial has no polynomial reciprocal. + +This result concerns exact scalar-polynomial representations only. It +does not rule out a rational expression, a factorized matrix-valued +encoding, an algorithm that uses native frame access, or a direct ADD +circuit for the weighted Gram. It does not assign a native cost to one +polynomial evaluation. The interface-proof lane supplied this corollary. +The work used AI assistance. diff --git a/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/certify_bell_gram_degree.py b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/certify_bell_gram_degree.py new file mode 100644 index 0000000000..a0b27474f8 --- /dev/null +++ b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/certify_bell_gram_degree.py @@ -0,0 +1,123 @@ +"""Certify a characteristic-zero Gram degree lower bound by one minor.""" + +from hashlib import sha256, shake_256 +from pathlib import Path +import argparse +import json +import numpy as np + + +PIN = '5c6c51fbffc07a683e922f17532fd90262ae9e23cc3560a696002073dd234ef3' +PRIME = 65537 +CONSTANT = 11 +DEGREE = 409 + + +def require(condition, reason): + if not condition: + raise ValueError(reason) + + +def vector(seed): + data = shake_256(seed.encode()).digest(8192) + return np.frombuffer(data, dtype=' 0, 'Hankel minor has a nonzero pivot') + row = column+int(candidates[0]) + if row != column: + values[[row, column]] = values[[column, row]] + swaps += 1 + pivot = int(values[column, column]) + answer = answer*pivot % PRIME + normalized = values[column, column+1:]*pow(pivot, -1, PRIME) % PRIME + values[column+1:, column+1:] = ( + values[column+1:, column+1:] + - values[column+1:, column, None]*normalized[None, :]) % PRIME + values[column+1:, column] = 0 + return answer*(-1)**swaps % PRIME, swaps + + +def main(args): + raw = args.interface.read_bytes() + require(sha256(raw).hexdigest() == PIN, 'Actual supplier interface pin') + source = json.loads(raw) + R = np.zeros((8, 112), dtype=np.int64) + for k, row in enumerate(source['R']): + for port, value in row.items(): + R[k, int(port)] = int(value) + require(np.array_equal(R@R.T, 56*np.eye(8, dtype=np.int64)), 'Actual Gram normalization') + require(all(PRIME % d for d in range(2, 257)), 'Prime modulus') + inverse4 = pow(4, -1, PRIME) + addresses = np.arange(512, dtype=np.int64) + targets, signs = [], [] + for q in source['ports']: + translation = (q & CONSTANT).bit_count() % 2 + targets.append(addresses ^ (q if translation else 0)) + signs.append([1 if translation else 1-2*((q & a).bit_count() % 2) + for a in range(512)]) + targets = np.asarray(targets, dtype=np.int64) + signs = np.asarray(signs, dtype=np.int64) + + def apply(value): + lifted = (R.T@value) % PRIME + acted = np.take_along_axis(lifted, targets, axis=1)*signs + return ((R@acted) % PRIME)*inverse4 % PRIME + + seed = 'actual-bell-gram-c11-trial0' + initial = vector(seed) + observer = vector(seed+'-observer') + value = initial.copy() + moments = [] + for _ in range(2*DEGREE-1): + moments.append(int(np.sum(observer*value) % PRIME)) + value = apply(value) + hankel = np.asarray([[moments[i+j] for j in range(DEGREE)] + for i in range(DEGREE)], dtype=np.int64) + det, swaps = determinant(hankel) + require(det != 0, 'Nonzero exact Hankel determinant') + # A duplicate last row makes the same elimination detect dependence. + control = hankel.copy() + control[-1] = control[0] + try: + determinant(control) + except ValueError: + control_rejected = True + else: + control_rejected = False + require(control_rejected, 'Dependent-row control') + report = { + 'status': 'PASS_EXACT_CHARACTERISTIC_ZERO_GRAM_DEGREE_LOWER_BOUND', + 'source_sha256': PIN, 'field_prime': PRIME, 'bell_constant': CONSTANT, + 'operator': 'A_c=(1/4) sum actual112 r_q r_q^T P_q(c)', + 'bell_action': 'P_q(c)=X_q if parity(q&c)=1, else Z_q', + 'operator_dimension': 4096, 'tensor_size': 1, + 'initial_seed': seed, 'observer_seed': seed+'-observer', + 'seed_expansion': 'SHAKE2568192bytes, little-endian unsigned16, reshape8by512', + 'hankel_definition': 'H[i,j]=observer^T A_c^(i+j) initial, 0<=i,j<409', + 'hankel_size': DEGREE, 'hankel_determinant_mod_prime': det, + 'elimination_row_swaps': swaps, 'moments_count': len(moments), + 'moments': moments, + 'moments_sha256': sha256(json.dumps(moments).encode()).hexdigest(), + 'dependent_row_control_rejected': control_rejected, + 'proved_minimal_polynomial_degree_lower_bound_over_Q': DEGREE, + 'arithmetic_bound': 'Every int64 product is below2^33 and every moment sum is below2^45; all reductions are exact.', + 'scope': 'One actual doubled-Walsh Bell block forces degree at least409 for any annihilating scalar polynomial in characteristic zero. This does not bound general weighted ADD circuits, matrix-valued encodings, or native decoder cost.'} + args.out.write_text(json.dumps(report, indent=2, sort_keys=True)+'\n') + print(report['status']) + print(json.dumps({key: report[key] for key in ('hankel_size', 'hankel_determinant_mod_prime', + 'moments_sha256')}, sort_keys=True)) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--interface', type=Path, required=True) + parser.add_argument('--out', type=Path, required=True) + main(parser.parse_args()) diff --git a/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.json b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.json new file mode 100644 index 0000000000..ed21e91197 --- /dev/null +++ b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.json @@ -0,0 +1,33 @@ +{ + "all_positive_tensor_sizes": "Tensor the certified block with the common fixed Pauli-identity Bell vector in every remaining tensor block. The resulting invariant subspace carries the same4096-dimensional operator.", + "arithmetic": "Signed int64 only; row sums below2^24, moment sums below2^44, elimination products below2^33", + "bell_constant": 11, + "certificate_sha256": "4b198523d498b85b96445681fdcd8020402b1abb31c6a27e7d2a45d5df2217e2", + "determinant_method": "Fraction-free Bareiss elimination in the prime field", + "duplicated_column_control_rejected": true, + "exact_Bell_Pauli_columns": 57344, + "field_prime": 65537, + "hankel_determinant_mod_prime": 2984, + "hankel_size": 409, + "independent_operator": "Sparse coordinate matrix4A, built from original-word R", + "integer_operator_maximum_absolute_row_sum": 164, + "integer_operator_nonzero_entries": 499072, + "interface_sha256": "5c6c51fbffc07a683e922f17532fd90262ae9e23cc3560a696002073dd234ef3", + "moments_count": 817, + "moments_sha256": "a438880f142ea5c0a53120246fa5aed60c36db1d8052c911b485345fcb332150", + "not_claimed": [ + "An exact minimal polynomial", + "A lower bound for general scalar ADD circuits", + "A native decoder cost bound", + "A lower bound for matrix-valued or multiple-state encodings" + ], + "original_source_pins": { + "CANONICAL-WORD.json.gz": "16bc0ebb04b4be6c0ade74badc6a0c0cdba4215eda86e4ff9f13abf8ecebd219", + "LOCAL-PROGRAMS.json.gz": "241fde27d4e43f5a9cb6b128f9f76c5131a53d09f0371676163f914d0b0fef3a" + }, + "proof": "A rational annihilator of degree below409 makes the rational Hankel minor singular. Its entries lie in Z[1/2], so its nonzero reduction modulo65537 proves it is nonzero overQ.", + "proved_minimal_polynomial_degree_lower_bound_over_Q": 409, + "scope": "The actual112-port weighted operator at every positive tensor size; the certificate uses its invariant k1 Bell blockc11", + "status": "PASS_INDEPENDENT_EXACT_BELL_GRAM_DEGREE_CERTIFICATE", + "tensor_size": 1 +} diff --git a/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.md b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.md new file mode 100644 index 0000000000..037b750c7a --- /dev/null +++ b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.md @@ -0,0 +1,63 @@ +# Independent review of the Bell Gram degree bound + +The degree bound of 409 is proved for the actual 112-port weighted +operator at every positive tensor size. This is a scalar-polynomial +bound. It is not a lower bound for general weighted ADD circuits, +matrix-valued state, or native decoder cost. + +The reviewed proof is +`../history-encoding/BELL-GRAM-DEGREE-PROOF.md`, SHA-256 +`bc3a72690735230e8d9995df1a343f69fe8afed7dce056a82505efc83a884698`. +The exact producer certificate has SHA-256 +`4b198523d498b85b96445681fdcd8020402b1abb31c6a27e7d2a45d5df2217e2`. + +The independent checker derives R from the original local word through +the separate transpose review. It checks equality with the recorded +interface and its label order. It then builds the integer coordinate +matrix `4 A_11`. That matrix has 499,072 nonzero entries. Its largest +absolute row sum is at most 224. This construction does not use the +producer's factored application of R and its transpose. + +An exact four-term Pauli expansion checks all 57,344 Bell basis columns. +This binds both the invariant label and every sign. A separate check +shows that the Pauli identity is a common fixed vector of all 112 source +involutions. + +The independent sparse map reproduces all 817 moments. Fraction-free +Bareiss elimination gives the same determinant, 2984 modulo 65537. +A duplicate-column control gives determinant zero. The computations +use signed 64-bit integer arithmetic, with explicit bounds that prevent +overflow. The checker does not import the producer or its determinant +function. + +The rational Hankel determinant lies in `Z[1/2]`. Its nonzero reduction +modulo 65537 proves that it is nonzero over Q. A scalar annihilating +polynomial of degree below 409 would make the first 409 Krylov vectors, +and hence this Hankel matrix, dependent. The same nonzero minor remains +nonzero after scalar extension. + +For the all-size extension, tensor the certified `c=11` block with the +common fixed Bell vector in every other tensor block. This subspace is +invariant. The root coefficient is applied once, so the restricted +operator is the same `A_11`. It follows that the lower bound holds at +each positive tensor size, even if the proposed polynomial is allowed +to depend on that size. + +There is also a direct inverse corollary. If `a I+b A_lambda` is +invertible and b is nonzero, a scalar polynomial q with +`q(A_lambda)=(a I+b A_lambda)^-1` must have degree at least 408. +Otherwise `(a+b t)q(t)-1` is a nonzero annihilating polynomial of degree +below 409. This corollary concerns that polynomial representation only. +It does not assert that the inverse needs 408 general circuit gates. + +Run from the workspace root: + +```sh +env OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 work/autonomous-kappa-run/venv/bin/python -I -O -B work/centre-encoding-campaign-20261014/lanes/interface-proof/review_bell_gram_degree.py +``` + +The expected status is +`PASS_INDEPENDENT_EXACT_BELL_GRAM_DEGREE_CERTIFICATE`. +The deterministic receipt is `BELL-GRAM-DEGREE-REVIEW.json`. +This review and the all-size extension used OpenAI Codex assistance. +No independent human review is claimed. diff --git a/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/review_bell_gram_degree.py b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/review_bell_gram_degree.py new file mode 100644 index 0000000000..28654913e6 --- /dev/null +++ b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/review_bell_gram_degree.py @@ -0,0 +1,197 @@ +"""Review one exact Bell Gram degree certificate by a separate sparse map.""" + +from hashlib import sha256, shake_256 +from pathlib import Path +import gzip +import importlib.util +import json +import numpy as np + + +P = 65537 +N = 4096 + + +def require(condition, reason): + if not condition: + raise ValueError(reason) + + +def pauli_product(first, second): + x, z = first + y, w = second + return (x ^ y, z ^ w), 1-2*((z & y).bit_count() % 2) + + +def bareiss_mod(matrix): + """Use fraction-free elimination, with division in the prime field.""" + a = matrix.copy() + previous = 1 + sign = 1 + for k in range(len(a)-1): + if a[k, k] == 0: + rows = np.flatnonzero(a[k+1:, k]) + if not len(rows): + return 0 + row = k+1+int(rows[0]) + a[[k, row]] = a[[row, k]] + sign = -sign + pivot = int(a[k, k]) + a[k+1:, k+1:] = ((pivot*a[k+1:, k+1:] + - a[k+1:, k, None]*a[None, k, k+1:]) % P + * pow(previous, -1, P)) % P + a[k+1:, k] = 0 + previous = pivot + return sign*int(a[-1, -1]) % P + + +def main(): + here = Path(__file__).resolve().parent + lanes = here.parent + workspace = here.parents[3] + history = lanes/"history-encoding" + certificate_raw = (history/"BELL-GRAM-DEGREE.json").read_bytes() + certificate = json.loads(certificate_raw) + interface_raw = (lanes/"circuit-interface/INTERFACE.json").read_bytes() + require(sha256(interface_raw).hexdigest() == certificate["source_sha256"], + "The exact interface source is pinned") + interface = json.loads(interface_raw) + frozen = workspace/"work/five-pr-sprint-20261013/lanes/centre-sharing" + pinned = { + "CANONICAL-WORD.json.gz": "16bc0ebb04b4be6c0ade74badc6a0c0cdba4215eda86e4ff9f13abf8ecebd219", + "LOCAL-PROGRAMS.json.gz": "241fde27d4e43f5a9cb6b128f9f76c5131a53d09f0371676163f914d0b0fef3a", + } + source = {} + for name, pin in pinned.items(): + raw = (frozen/name).read_bytes() + require(sha256(raw).hexdigest() == pin, "The original word is pinned") + source[name] = json.loads(gzip.decompress(raw)) + spec = importlib.util.spec_from_file_location( + "independent_transpose", lanes/"bounds-review/review_centre_free.py") + scalar = importlib.util.module_from_spec(spec) + spec.loader.exec_module(scalar) + word = source["CANONICAL-WORD.json.gz"] + rows = scalar.clean_rows(source["LOCAL-PROGRAMS.json.gz"]["forward"], word) + R = np.asarray(rows, dtype=np.int64) + labels = word["ports"] + require(labels == interface["ports"], "The label order matches the original word") + given = np.asarray([[int(row.get(str(p), 0)) for p in range(112)] + for row in interface["R"]], dtype=np.int64) + require(np.array_equal(R, given), "The original word gives the recorded R") + require(np.array_equal(R@R.T, 56*np.eye(8, dtype=np.int64)), "R R^T=56 I") + require(all(P % d for d in range(2, 257)), "65537 is prime") + require(certificate["field_prime"] == P and certificate["bell_constant"] == 11, + "The selected field and Bell block are fixed") + c = 11 + # Expand H P H as four Pauli products. Its scalar is one half. + for q in labels: + require(q.bit_count() % 2 == 1, "Every source line is odd") + identity_image = {} + for left in ((q, 0), (0, q)): + for right in ((q, 0), (0, q)): + target, sign = pauli_product(left, right) + identity_image[target] = identity_image.get(target, 0)+sign + identity_image = {key: value for key, value in identity_image.items() if value} + require(identity_image == {(0, 0): 2}, "The Pauli identity is fixed by every port") + for a in range(512): + b = a ^ c + output = {} + for left in ((q, 0), (0, q)): + middle, first_sign = pauli_product(left, (b, a)) + for right in ((q, 0), (0, q)): + target, second_sign = pauli_product(middle, right) + output[target] = output.get(target, 0)+first_sign*second_sign + output = {key: value for key, value in output.items() if value} + odd = (q & c).bit_count() % 2 + target = (b ^ q, a ^ q) if odd else (b, a) + sign = 1 if odd else 1-2*((q & a).bit_count() % 2) + require(output == {target: 2*sign}, "The exact Bell action and sign") + + # Build the integer matrix 4 A from its coordinate entries, then + # combine equal entries. This does not use the producer's R-factor map. + addresses = np.arange(512, dtype=np.int64) + keys = np.empty(112*16*512, dtype=np.int64) + coefficients = np.empty(len(keys), dtype=np.int64) + offset = 0 + for port, q in enumerate(labels): + support = np.flatnonzero(R[:, port]) + require(len(support) == 4 and all(abs(int(R[k, port])) == 1 for k in support), + "Every R column has four signed unit entries") + odd = (q & c).bit_count() % 2 + targets = addresses ^ (q if odd else 0) + signs = np.ones(512, dtype=np.int64) if odd else np.asarray( + [1-2*((q & int(a)).bit_count() % 2) for a in addresses], dtype=np.int64) + for i in support: + for j in support: + keys[offset:offset+512] = (512*i+targets)*N+512*j+addresses + coefficients[offset:offset+512] = int(R[i, port]*R[j, port])*signs + offset += 512 + order = np.argsort(keys) + keys = keys[order] + coefficients = coefficients[order] + starts = np.flatnonzero(np.r_[True, keys[1:] != keys[:-1]]) + coefficients = np.add.reduceat(coefficients, starts) + keys = keys[starts] + keep = coefficients != 0 + keys, coefficients = keys[keep], coefficients[keep] + row, column = keys//N, keys % N + row_starts = np.flatnonzero(np.r_[True, row[1:] != row[:-1]]) + require(np.array_equal(row[row_starts], np.arange(N)), "All output rows are present") + max_row_sum = int(np.max(np.add.reduceat(abs(coefficients), row_starts))) + require(max_row_sum <= 224, "Each integer row has absolute sum at most224") + inverse4 = pow(4, -1, P) + + def seed_vector(seed): + data = shake_256(seed.encode()).digest(8192) + return np.asarray([int.from_bytes(data[k:k+2], "little") + for k in range(0, 8192, 2)], dtype=np.int64) + + initial = seed_vector(certificate["initial_seed"]) + observer = seed_vector(certificate["observer_seed"]) + value = initial.copy() + moments = [] + degree = certificate["hankel_size"] + require(degree == 409, "The claimed minor has order409") + for _ in range(2*degree-1): + moments.append(int(np.dot(observer, value) % P)) + value = (np.add.reduceat(coefficients*value[column], row_starts) % P)*inverse4 % P + require(moments == certificate["moments"], "All817 independent sparse moments agree") + moments_pin = sha256(json.dumps(moments).encode()).hexdigest() + require(moments_pin == certificate["moments_sha256"], "The moment digest agrees") + hankel = np.asarray([[moments[i+j] for j in range(degree)] + for i in range(degree)], dtype=np.int64) + determinant = bareiss_mod(hankel) + require(determinant == 2984 == certificate["hankel_determinant_mod_prime"], + "A separate fraction-free determinant agrees and is nonzero") + dependent = hankel.copy() + dependent[:, -1] = dependent[:, 0] + require(bareiss_mod(dependent) == 0, "The duplicated-column control is singular") + report = { + "status": "PASS_INDEPENDENT_EXACT_BELL_GRAM_DEGREE_CERTIFICATE", + "certificate_sha256": sha256(certificate_raw).hexdigest(), + "original_source_pins": pinned, + "interface_sha256": sha256(interface_raw).hexdigest(), + "independent_operator": "Sparse coordinate matrix4A, built from original-word R", + "integer_operator_nonzero_entries": len(keys), + "integer_operator_maximum_absolute_row_sum": max_row_sum, + "exact_Bell_Pauli_columns": 112*512, + "field_prime": P, "bell_constant": c, "tensor_size": 1, + "moments_count": len(moments), "moments_sha256": moments_pin, + "hankel_size": degree, "hankel_determinant_mod_prime": determinant, + "determinant_method": "Fraction-free Bareiss elimination in the prime field", + "duplicated_column_control_rejected": True, + "arithmetic": "Signed int64 only; row sums below2^24, moment sums below2^44, elimination products below2^33", + "proved_minimal_polynomial_degree_lower_bound_over_Q": degree, + "proof": "A rational annihilator of degree below409 makes the rational Hankel minor singular. Its entries lie in Z[1/2], so its nonzero reduction modulo65537 proves it is nonzero overQ.", + "all_positive_tensor_sizes": "Tensor the certified block with the common fixed Pauli-identity Bell vector in every remaining tensor block. The resulting invariant subspace carries the same4096-dimensional operator.", + "scope": "The actual112-port weighted operator at every positive tensor size; the certificate uses its invariant k1 Bell blockc11", + "not_claimed": ["An exact minimal polynomial", "A lower bound for general scalar ADD circuits", + "A native decoder cost bound", "A lower bound for matrix-valued or multiple-state encodings"], + } + (here/"BELL-GRAM-DEGREE-REVIEW.json").write_text(json.dumps(report, indent=2, sort_keys=True)+"\n") + print(report["status"]) + print(json.dumps({key: report[key] for key in ("integer_operator_nonzero_entries", "hankel_determinant_mod_prime")}, sort_keys=True)) + + +if __name__ == "__main__": + main() diff --git a/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/native-encoding/PHASE-CACHE.md b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/native-encoding/PHASE-CACHE.md new file mode 100644 index 0000000000..309377a52c --- /dev/null +++ b/research/centre-polynomial-cache-limits/frozen/work/centre-encoding-campaign-20261014/lanes/native-encoding/PHASE-CACHE.md @@ -0,0 +1,71 @@ +# Exact phase cache and native tensor limits + +Status: a mathematical cache theorem and exact local calculations. There is no new native encoder, supplier, or kappa value. The theorem gives an encoder when the inputs already have one common coordinate representation. It does not pay to obtain that representation. + +## The minimum cache for specified diagonal updates + +Let R be a matrix over C, with one column per source. Let D_1,...,D_t be diagonal matrices. Partition the source columns into fibers F. Two columns have the same fiber if every D_j has the same diagonal entry at those columns. + +The smallest subspace E of source row vectors which contains row(R) and is closed under every D_j is + + E = direct_sum_F row(R restricted to F). + +Thus its dimension is + + dim(E) = sum_F rank(R restricted to F). + +This is both a lower bound and a construction. In each fiber, cache a basis of the rows of R restricted to that fiber. A diagonal update multiplies each such cache row by the corresponding fiber scalar. Add the fiber contributions to recover R. All these operations are scalar operations in the common representation. + +Proof. Every stated fiber space is invariant and their direct sum contains row(R). Conversely, choose a linear combination D of the D_j whose diagonal entries distinguish the finitely many fibers. Such a choice exists over C: each forbidden equality is one proper linear hyperplane in the coefficient space. Lagrange interpolation gives each fiber projector as a polynomial in D. Hence every invariant E that contains row(R) contains each row of R restricted to each fiber. These spaces have disjoint supports. Their dimensions add. This proves minimality and the stated encoder. + +For sign characters D_s[p,p]=(-1)^(q_p dot s), the fibers are the values of q_p on span(s). The same theorem applies to inverse-C eigenvalues, since 1 and i are a nonconstant affine function of the sign character. Tensor products introduce products of these eigenvalues; a cache that is invariant under the generators is invariant under all those products. + +This theorem concerns exact linear scalar caches. It permits redundant rows and arbitrary diagonal eigenvalues. It does not claim a lower bound on a native encoder whose input maps have source-dependent address operators. + +## Binding to the selected clean centre matrix + +The source pin is bce54fb3f895cbe5cd4c0eb477c3afeed100190f. The input archive is research/community-frontier1042-audit/selected-replay.tar.gz, SHA-256 22c3f4dce4b897a1d423d1388801933e288b6a6b1906cb15e1b16a5eb68db754. The full native map and its frame convention are derived in the earlier centre-sharing handoff. This lane uses the same forward boundary R. + +Exact calculations give R R^T = 56 I_8. Each of the 112 columns has four nonzero entries, each 1 or -1. Their supports form fourteen tetrads. Each tetrad contains eight columns and has row rank four. The eight centre-frame normal vectors are + + 42, 7, 25, 52, 82, 127, 97, 76. + +They span a binary space N of dimension four. Two ports have the same values against N if and only if their R columns have the same tetrad support. The exact minimum cache closed under these sixteen sign characters therefore has 14*4 = 56 rows. For the listed order of normals, the successive cache dimensions are + + 8, 15, 28, 44, 44, 56, 56, 56, 56. + +For the first d coordinate characters, the dimensions are + + 8, 16, 31, 53, 85, 101, 112, 112, 112, 112. + +The latter sequence proves that six particular independent character directions already force all 112 source rows in this cache model. In particular, the 56-row cache is not closed under the full native source phase family. + +Within each tetrad, choose its first nonzero coordinate as sign reference. The other three signs form all of F_2^3. The source label q is an affine function of those three sign bits. Its eight labels form an affine three-flat which does not contain zero. Their linear span has dimension four. These facts give a compact cube model for a possible joint native encoder. They do not give such an encoder by themselves. + +## Why the eight totals cannot receive a nonconstant phase update alone + +Let W = row(R). The orthogonal projector on W is P=R^T R/56. Form a graph on the 112 columns, joining p and q when their inner product is nonzero. The graph is connected; each vertex has 52 neighbors. + +If a diagonal complex matrix D preserves W, then it commutes with P. Indeed, the spectral projections of a diagonal matrix are polynomials in D. W is invariant under them, so W is a direct sum of its intersections with their orthogonal coordinate subspaces. Therefore W is reducing for D. For each nonzero P[p,q], commutation gives D[p,p]=D[q,q]. Connectivity forces D to be scalar. + +Consequently an exact update B R = R D on only the eight totals exists only when D is scalar. This statement permits arbitrary complex 8-by-8 B; it does not assume that B is unitary or diagonal. For native sign characters the only scalar cases are s=0 and s=511, because the 112 labels are odd and their differences span the even-parity hyperplane. The finite ranks are eight for those two characters, fifteen for sixteen characters, and sixteen for the remaining 494. + +This excludes a proposed eight-register phase update. It does not exclude a larger cache, rereads, or a source-dependent native encoder. + +## A tensor test for proposed native identities + +Let A_1,...,A_r be nonzero pairwise nonproportional matrices over C. Their tensor powers A_i^(tensor lambda) are linearly independent for every lambda >= r-1. + +Proof. For each fixed i and each j != i, choose a linear functional l_ij with l_ij(A_j)=0 and l_ij(A_i)!=0. Apply the tensor product of these r-1 functionals to the first r-1 factors. If lambda is larger, use a functional that is nonzero on A_i on every additional factor. This functional annihilates every A_j^(tensor lambda) except the i-th one. Apply it for every i. + +A fixed finite linear native circuit expands into finitely many paths. Each path carries a scalar coefficient times the tensor power of a product of its base native matrices. Group projectively equal path matrices and apply the lemma. Thus cancellations between different base native operators at lambda=1 cannot be used as an all-size identity. A proposed joint encoder must either have the correct projective native path operators, cancel each unwanted operator class separately, or use a mechanism outside this fixed tensor-path model. + +For example C_q^-1 = ((1-i)/2) I + ((1+i)/2) X_q at lambda=1 does not imply the same two-term formula for C_q^(-tensor lambda). At lambda=2 there are two additional mixed translations, with nonzero coefficient 1/2. A zero-rank scalar implementation based on the two-term formula is invalid. + +## Cost boundary and next step + +The 56-row phase cache can be formed with scalar operations only if the required source values are already in a common representation. Starting at the actual local C_q entrances, copying all sources to frame zero costs 112 rank units before storage and scalar work. Forming four separate queries in each tetrad's rank-four frame costs 224 rank units. Neither method beats the retained 64 centre rank units for one call. + +The useful remaining construction question is whether actual repeated calls provide a common-frame birth or an existing native computation which can form this cache once and keep its phase updates within N. A second possible route is a joint native cube encoder which is cheaper than four separate rank-four queries in each tetrad. No such route has been admitted here. The exact cache theorem supplies the representation and its compatibility test; a complete supplier cost remains open. + +Research and implementation: OpenAI Codex under the user's direction, with substantial AI assistance. The selected supplier, its exact Clifford compiler, and the preceding centre-sharing native-map calculation supply the inputs. No independent human review is claimed. diff --git a/research/centre-polynomial-cache-limits/frozen/work/five-pr-sprint-20261013/lanes/centre-sharing/CANONICAL-WORD.json.gz b/research/centre-polynomial-cache-limits/frozen/work/five-pr-sprint-20261013/lanes/centre-sharing/CANONICAL-WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..5f9ef680983b0b63a4c82a4ed909837b78e690cd GIT binary patch literal 84805 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�K#xlv-Th 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 K_c|E&-v0rX9u{T* literal 0 HcmV?d00001 diff --git a/research/centre-polynomial-cache-limits/frozen/work/five-pr-sprint-20261013/lanes/centre-sharing/LOCAL-PROGRAMS.json.gz b/research/centre-polynomial-cache-limits/frozen/work/five-pr-sprint-20261013/lanes/centre-sharing/LOCAL-PROGRAMS.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..4eed995798f4aaa8efdd6f788dd07b3723940a81 GIT binary patch literal 209318 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�Vv^O+>@2Y* z$T->E`NWD??|(rH$};Z*HrKZVIv&h#-sYl`uINC{xtAXCvA4=HAdu#5y0~gc&U?ZC zFQ-d^ixnQNH<`2@ToWVcEDHW+6?PV-siE-(%*ud&g&-1O6o#z+BtGi29sFav64{lJ z^Nt?<2%^ddos}R1#%XZ~T2PdEUluS91J=@cAozZ+>n~A3V`~VSSWp|#D&zxOj$cv2 zqN!;!CTqll6f@P1JwPTnn z3!o7Nb0oA3w`}=C-mDH9vI0o72>BjUQ$~D(F&ci;w7L+$j!dVLwJ(!e zhbsm3ED>U7K9|Scf?j^EMOYAn=HzE+4zenGOd@TAv#NImH6X(5 zl**4NW+mrw(+k_F_^U`HvGH*3rozdahZ{i2K@>Vks-gRZ?~`8fO?D_qTgIz>7CwIc zSfvJCt_EH4AJ-wM?kgn*by0ftAbNF#wxHM|HSA(1xk;zw3JA_vS%J6Ae2@8Fe&MmO z=;hE~>Z0X-lUE&~P04GB(qPDs@qAPVR}l>ws>p-!ExOMQowe?!su^n77mNHG>KIU}cmrC# z;C}u}CJ4NkG51iIpp~j-xWbq!2%mGsk5BR60Dl598j<3fvh<$z3HDet<`vWrof9dz ze6gtHokhPpHu$wh5&h36FCk?A3aMMKQS`&Drh-|QwDAh+qX>_@^9hRFhbcZwQ-m6} z3cUt3=Z8|$Q)iOOQV)sFJW>J@h$|Dj>S#|suFyz9XhIoVy+lVv%pC z%O~uVfS}*WgLn_ry}bY;)DfC_#bnGq2-qXbJzywAjIak>o@QQ|bp&Q#RU17^YJj-G zO}~1FRDN(@B2*hEER0tu7OE4CyI-e!mC2X7Y|9+GeY4da)+&tS;8i&(Yl zlwT7Fn2)6`(fVT`{UjR`B+-WEL~mD}jsash5f92B?t3DGeMjGfpBJD1{_^-WgG6BV z=Y=Hjm5<0^+tD}Z7GBboz(`O5xIt{N?dn@Fb0MiPn6@TFcEKAeT`;T(v+G7S=LUE| z&K*(GyF<=hIr<)Wm}8MQ16f!N4wNO{q9!o10*8mR*g4Y`-G`V>VC56YRg1Z&5*VeQ zI*4wZd&PEwKaW6fKQK!UQa4((8YcX8OL7D{Dj5-n9*8nz)+*Km%RN&W@J&U;p~DTF zZ>RL}bq9p;8;Eo7G$?AL6~?!loKvP_$T6){K)lr^AiM_d+vfr4!N~cBI#4)kX3zwR9g zUu)NOO@MFKYyfj)_lsA+1INPSk--U5#bWo%Vu0@tP)$HA$?~Yrdg*JOfGniSS=uqZP>DUS5|wKfb$9 zRGeLQm^l?Fx-;*hnOk+hbPzOI7sgmIs46=e46_KhczT>xTv*P!*j&u(#;?f*y_k1+ zv)?ei__~17y7%J1&TzZ)z7JoRIv(3y3cBFm3O(d{Wgnf~(OiOn8=xo9*3ZoDdyw6Q z(9Ak$kcR+hF$=Ugd=6Y6@w=}ms9*Ze9B!j%x`x+}H5Kpsvp|Q#>w}LM{UZj?FZSIQ z-OF)^W^WC=oX}j+tR3HtJxKZ=06z)S8chTL8tz$A6A5UG_6V1M?q-XBvisi8@4aI3 z1gJkRT7C&PfSqePK!5=hwZ8s+nWkj?*(vuTYJDQk0rqwC?lGYVxcWccPxw!;91S-LpZT076$svJRn`H6V$%1z z+;aon!(0RCK=jIswmsq5$&L6@=Fq}sJ2a~~K_)U3P@3kJCv2TUiPj}5}F?{i14D z-_7K$U&fRQ*X#)ke_!&qZvw4YKehh8b*Vhr(^#IUZqCyk&;5S{;DP@=Fy-q0&+rm( z*kw1ENIZCI@Ysq0r+g>9yq>^1umxjlXp6^j`^sM&&O|4M)ufdJeGUHjC*S4w5|-oz zIh};IjsBcYd=rjoHMF*k=>J-j)V5Kc(@Ac^F{}Pxiiu6Brqxv1HnMX%|6MfGw$Yx` zNo`6stNyRzECF%YvjxR##fML4P@f~-{5f; z=Jn+c;90MrSI{WH<6?n-v+!~U!F!|897>7uee2vOwstGr2Sq#1xk&_oJZmF5!*X11 zh!HNx;r{?X>n}Iw&iJ|Cr>O!>ekxms5fA=)*Rbj`KBF%(g;A~d zQL8nz)|ts@N9V`8tR~yIw$vootUqx4u`PQt{IMN7tb{&|B}-dmIb7PUL$!J2CLlt4 zmeRBU@}Yp(%ea>_1OQt1?<0GeY>~xbGRui$p)2X z{++@%!T+%%=dXXZKl~g{`SR8s@XiV~i<3o)QNRuZi*^V*7#{-)pQttrK9mI95IJcW z+$q214JfM0>|wTV80d!qjYbm~FPGD0dBnf_(evSLy>)!Mr6`~6YrVNyV(((nZ)6s@ z3cgZ93;B$K=I@1%79eXNKfFh!@Qo*1&w;mf&C$8@&os57JG^%5Fh%~k4P-dK$RoC? z$P0FH&Ah4n2zFQ!0}9Q0i}R&+#AucuqlX3|CFCYbd~?=0vqQ7GADsX~M1r!pNVO0) z*6)KI^1e~YaN%crqVIf~uR^CUeoNAV0jU%|@$Z|n{s7rNig{cUY?a(as{KD`ROyv^ zwklkhm(De)px@MTOf+ba;TyVxCFaBnGo&K-3{U;YQy+yva}R8REY694NV_hmTs_A2 zM%<2D!+@xVv&8(_dBZOfZxSYal!;7w0_FwDTS=%r)X;?gS8qaE8{gQq@mV#FMBq1v%q_m2$MR;RQGIC%f3PuqS=(7cua3@DP$$Yb28|_?ZmHawDC1d ze$Lr&f|cPHSp%C+XRTI-5u1v~tWm}hBhv>jPxgH%^g9}uu!aXCv$7VOo^5bnLiE>A z0t+8$u0g8v311d}-lN;(qCD2#%%wUZ^MZx9uxd)6%69vWBjyth60mOm(jpkO-ViEC zc}ix*@^MXUOuv1{i22BLNWXpHRD0#!=3V@`4TbCq_%uqqFseNZ*-j@jzTquVW7vXV z-wEXfe~&^DmaqftH!}Vll{M$=-}5-ew`h+|;0we(CtxpE=bHo=?nF)#3AgbbpIgS) zL>$dw7p!I%CmK?0h7?MFoxT6@4&yGqF^SRv%)eCGL1^Ns258E=eb3P+d|li<^>7QN zcE+;&hs;=m*up`hnlV4hlKAnv`m0i-J;k5D@^YKfizvn2Um9nP31dBv$;?p~vn4*S z%BqF)$K*;bfC^6u>SwIVd)$evP=|G8mMqk)@@h)_q*9Leb~d<7^J=KOE#Q4*R>W@~ zte5sGy=qo3oAHL^o z_$75td^}xC_rv}2<=dIh&;7?*7J3;!`$WjJ*T*L~o>C}?uV;coAAATO?qD6g%UYER?^g73tSV~E9jdYPd__7yt6x6Y9jWFG#C8W+6^2Du7C3pL;65UWXvfJ6PAkTl4J9o;>I|bH1aMG_B`DpvOMoD4Cz z@O-bvPdR~mtMNvb$)oFoV~o5%B&FO%7ruY?^Ti+)dIX9v5t+UECK$Sx1uqs{LWX_t8%($Svk|TZ z6Tjay&@>c{w2=?)lR~8MxtX5RYBD}C?ct&^5qpiyrtyhlb|Kx9>txkOZapBH&woo@ zGFlN*s#jzs{KBk(=pQW$P_9XGy$Rn%DuKeh(%3iDS*jF()1c)| z!9%Xw<3RK4k!V8oPW5mP1ai|~7l@WtCGb<3E(=LJ+WF$gNcT29ZO#69N`S~WoCa`* zqt?q<_AH`Q&JrDggCaEoO*&QC9XSy`KNhYz{%@G4!(SpEQr`J3@NJc(aA2Sh5v;}I z4m4PH!lS1i{nk>8kpWC}fiO&TVG;syLL)rgBCElrqvC!C2;6%5o)Z9-YCaX@gm*Tf zhK*C8ax<>G_+v2Jz&BLGn;_5NTA9A0R2Cq0%FF}b{v3x+i{T~d^(;g z^XiN*eU}srVL=ro!+`K zUnmiVh|@64b~&p>vyPtZhn8k#`Tzs?^c&MZvXak+F}V21+P_)dlpU1 zzIccbrwU16-jQLAk^57R=AY$>KS2|J^xY#S&f`>E`6aUhIw4+te7#AE^6Sc^Lomh{_p=&0bmoC#EB zMdOKmW;et-QGX-tH!|a%zOSdS**zI7Px?`cyip7eS!pklgwXjq;4T7L{s4wTa4r-_ z(u3m2C@psBxsj{yK^ta02T-N891{Q){{(A!RL5$eYEy{!+g?rldz3S z=)X)jDS~?yz)O(u2CjBK5LG8+f&~Oba|Cmch(H*klBU$si`Rx3O9(5-dvWHn5S^&) zg9-_Iiopq?(}TrGil<@0m)}GF&AU=oV4ZzM@%0E>Y9M~}vW^NXamEFQ} zmQPB37UJ9oag}U|AdyT#Djh>L;CuWG>Omd0bl+? zCmPa^JCdT?bx$U#7popxya@J}H=bEG83rSdZFbw}YJ~A|7HA~X{?%VH5tmWGxw;X5`!d-5+QKqAf zy1X4=!ty6s%>waZ9*v_2)@hs@W#B%@3*}Ol>XspH*jGefnaruD<1qhvrM$gR-FdZc_F$%2QDU_z9P>4b~EFll5LFn3p?^A|d9t2lM2xc$9ykfneDFR+WC zTkPj46F^HNr(-=j();lmUVSaH(Nn&SO|m~d0l=Cqh3{0r^j@X7 z-rO%1lg8#No7CWt>G9$>+l49~{AIm60YJrnz-h^LxoKIjtNspTwN$&XSWHX=E*Kol zHNZ5-zZc?gC_=*YqC~Lo0;uDwm=yhdE0YNQhB>Fq3UT%RqcYSOMSf196Q$}lajw3t zIw?3wiiqce@}DU3a{U39SDuq6k$^%H&lF>B+qebf@P$iKB*TR1QDkLbxFK>^a^+ z>OR#g^1zo5uTus`69eGz?NOdq;*%tV>Vzf8m)rsT-i#oeQS2_{9Z@s5AS{YUFKZ5h z3EWr|dd}MYF^&&KhLvDX#gk#02R|XRSRj`wC*Nd_)&$@k)N16;Hj3O-x5cCcjs7zqLA_LohD^bnFgbs669HyP1V%waNg?HsQ2jdIC^(bNtRO@2g#fbS8z zW?&}1ldj1SeuK<^Lw8nUX<`8ayHpD5HNwdY5*IhMJ{Tz;u&YSfbzkT(E|r288B&fc zq=AR*r>nnFHRW(H!l$7$DEZ$76`O9e#TQm@pyO6dKrT23*K1jX{-hL`P?a|j-w4Pp zF#1r1Mw)BJxfszvv5}Wsg2&GXX2WJ305EZU{%8 zkaLKntL>n}37Xt$Rh4z2xh7M6!C;Z`tkHAs_6l2nvwOWEFbM|fm<|;X@Y_LCeSysg zbxBfWvPJR58MuASe0a15u#F)&^gj-yILPs`ISt>?=Vv)7OW_9b+(~EwWg(?wX0iQy zv5GzP_%F)if1^BL(beuBzfoQdI0=FuWr`3+?E`y$5dyFk)FcvGr{plTaAS3iSleC= zmdj##18{)u?c}Od(1`#nj-ofZlg$9Oy}GHfJOGr({|$@s!>Yqd&>7VuqyLs+(2!yQ zX&~p4M?dQ8Gp8XIl0-%_AaNG{)m(8Mx7L2*z!kW<^tAc~{bBLB6(k^$^;8f7=LpE} z8+-&Z+pxe{<&E;BGKpzSAz2`GjaLgOe^-Hc-DcBu08q>L2h1iH$-Z&Uzhsz@OcAnv zSr7Fgov3x;4}#TsH6)*o|2)MhKWUE9paH)VJlrF|II)P-oJpVX!xP%yXz%;g&%ba7 zIs5wP@Ol*h`rZwCTn>0#W;y#&vz7K_ra{@|H*>W7bMaIj10}sUfQP%TB|Hj4TG`Wa zw->c_<`kDumVYJ4pG^Q}xNw>HX9WgPHkP4GY)5(~GC_K9%jBBLw1?`(6AQDffWox! zc(&wl3$2&1=g-kj@H+<*vcnD)*%hW?1q|>f#LV8%bz}c=q`25j{BVNzn`>fvj-@If zo$_xn15Kqz&k~y+lywRB*s?kLL4DtUsea4boM1E`+$48t(vW(XKd~g` zR(m0|jMdEm{qdmeO1S?GaV<*ibTU_BgZg2N(n)%n$lnLdj2ylZKh`es+QZZw zr`^P=@cO%rd8!G|@T`^&QFdq0V%@@kaVjGhqI@F1rBJsZFK5y=v8>C(Nz7Lsc;&jK z4(f+0lS4tqtG++VDBZiX+%~aXvZHBbJegdB5|~bzw3EpXZ07PaY9Bjks@O2)2dpkL z2XIEY8cVF;QE#Y^zfco|%-{u;R9TtKbK1q_dAEC+&=5q;Xa$ul)Sy?UNzE`Wv_uSS zaq8!nYcQII=6ofr%hMts!+=h;{wd~b=YXgbaJd{BLA}NKAp3JE9dtkV%pTi`Y}*5O z)3WF8;%_IT+Y>Y4wXQo16Rjk?b0e=GbWQPNl(X5ru@|CG(Z~c-W8-;S9aK5kbRd9i zXJg@WSlZD#{G<=b)w239*urUiQ-bbTw#qPQ7yrD1#E}s3yOh)lV_WWb9=CXn+jWKZl?>JxzcXq2kB}5*`^9w$%aha@QPz&YJ<9z8_V27sDI`k;IAf(a85Aqa>LwDZ6gmMNHNyPhQE!OD#4>8qrR3Efdoyn}EO^^5RyDcQ z3R1achp^~42ZlJDt~&o7dp|$tGF7D&7#8_mXk0JCIWrpBRw`+Ugge7MFNk#}n~2*P zlK1O(bUcxXak~|SnP$9stw7JQk1PW$NRlM8Hp;o9@B}uWazbQk)SZ?%WVUdv@yxoM zKWgmG_$n@^_>T@+xKG3h;7Ef{q4nPkxm;vojK?$WbT+y2EXNAZ8HRe#9!fs+qZIGY zMndARxU4gwOHJp@jyn5iJu4@DDmEaE-X^(okz(lGnoCdFR!jg{n-W!qQQoqAB(n|l zYk*P>Q|&$3qhL1`EQ?`=R84AT2%oa6QHB`7QZ>p4LaF=C%!EsgJ2K z!f!qOI}}XPuha9bQ4;5DFeFLTr@KB8t4kWuoIU1e6oIiWv4x=b14^OW}a( zElEZhG-D5{YyZrzy%wywEi3SQ{<5_ka(hQ{p6ueyK-|~pw%f*~(C+uk-tw@!>va@C zU?+bKUN@vQu0lR9%N-_X(5gd3wc9K{)}+n(as1wj6JB z%c}dLEhTnpn=7W~uJ?22usc_(?<Nb-{oTFwL1`2 zQy!US?|X0Z3l6jd-Ofran`B|D`oTgBzJ{#0JEvkh3p4qF{JGpEWPc$dykB)MDyl605)`2h}g zD^`I5WsEo$V_EeniYOJv1B#GbGi zpCS89A_;V)kn{ILyqQK_TH67o z+Ym-iPx3Ebk@YWLL4y&lu|3#JKW!3R@m^*Lyff`qnbyA?U=<<%!79!gKZ~#$9*CwC z!BlEpj~0TI^?!f&3}xzGxMO^rn{5o!T<3-d#F+KY7zjnbHrb_f8%Dn@`kv%KaNonq5C`Od+>`F*ya-4@tXM!+IUwd|-oXs$UzscBa-2Kypfa>5Yfk5q;Sv zxw8G`8I(CDFg&GtvVkNfIL`2<=}^^hec9dv1Xqdoee-NI4ziA8=F!b*B7Mc)dn`1& zxq}(|*+=}ccLHMRGd+|oE(9D!A4x|kVgti)YFz#tYBYcKzRR}uX2l?So7}D{j$Hl}G^2tQI zw~LTDlUi>ku5BN%uzhNm$)Q=4O`SoUH4%CX`#$er=c7A^{6pRzjN^wqLDsZ_{hDWu;9#)N z0kOA9O^RcE*7l3D-%cvS{1;UH`qM%O7k1!%!DQ*zj_2_M+xjpfmv#DtFX%YjSIgTI zTfYL+L9kMnaf9zuQZ~G720mPt4mokL$6{XynQ*dC+>oN8)z6C(i$b$-$nP6Z5)f}# zl3nhlLT}qJM7wh=`0LTo)u+R_!c0zlcn8f;JIUvzkTcL}N=yVV*tr|@yXx`?q4o)% z|HVR!@*@ivKc$TE#4)keGcN5%jiJ@{_(J9flQP zK_2D-jMO9%Sy3hE?OK-?IUL9jh&q1Ho!7SVC?yt0$Pzz#&=sP%wAn;=2&pS(h7MhS z@TD}0+O(E6LU2(qYn-huA_N)sjO1BiM*ku>wrLf1XBipxO+8)uE;#28mRw5QZpp(r z%VHwIa6XGdsr*>j)E%=H#$|UV+5M+r;ZDD!M-^qS;X2*>iVw7SE?@^e5I!RjR6_L2 z!f3g+JB#Qk_IIO=mQP6#r#l~#Q$Zxi-q zD3ATlo*KiBUrf5{z{=NW8S?E;3H8hpt6I??wmbwa)lX-C!0v2dPbVbC1&xe!_NV9Jl~ExQ{v=28HnUEi)MjPmsl9#tF@y`$>?7YARkN(4JyuXuMzD*A!Bt+I;s~t2rcqfyKRrraLXfz#e9& zLPgzPp~8l2u*sw)6)Z;dWA-sp=7sSbAI;J^>sv^F>JiY*OGfgb@&BaC zY>+dVv*#~i+iCksPR&rQ!p0*#f*rGoR*d45ypr8WP>`nC-Ib!3G{RnfU?wmIN^m7? zpQZm6mcr(Qt>bX~>7ckua-YoyJJW^gNe-;6*T6-K zW|-AOHqwT6z`l>3%{gf(CF1v4T};b9g1Ivbv+?uhifN@@E5pa2g9i0%LpK+d%Ieeh zcOR+P)+*a*NY_s&x>U`l2)`UtMDjCM;?0ZP3qe zFSA;ciH@{LQKwL_Krl0Xh#*@2YNsjSN=W)muflzlv$CQ!=`3K$^vTb>CeRg_uu_w6 z*W4^{Aing#~ab zEPHJ2=4247Hn$Nr1$Di0gl!`^;n$&JZc8oGh-`HH>c%tIFhgGBml|vBpfJ7QTE%nP zl@TTwikq6Q2__pT;^x4TlYwLpx#Y(+7o2qG&Qa2)+EYcPJ)=FFrHnCiX^BocS#Au~ z&JmH#PwBh4m#jH6%;wDm)C_FDN0C%Wj$V#k-f{mfL7q6qme41!NW(9dnk&&3dB?p` zQawe4EulJ$x)TX^Fh&5#4H>Oy5lIw3BqRf z>yGe^&8?nE24CvGR}vGDlbCgBce^*9V2HxV9awqk0;?#w^{i>}q1@R8TB_ua?*WC9 zK+UXE7mqvseBCPS@vV1vT`K%@n%osxSi4}(?ANa4lXxtx@2H@Y1YwTvO)Mlvni=U? zY!8=iDmFez8P`7$2Ftuy$8<|P*i{G=lc9dV>@tRb6S0TH7<*DZ*%Mx%=Dt~9WrwB~ zZ41p*)H^zmI1O03AMTCn^NTfIa?5EQ)PK0{7~#zOmHN(&ie9GrYUz>ainYCqaApZ< zQOF}=cyutRj&j5fV!p%h2SW4xI#FA zd-Qsmmdjq}rIW9dWNa&`D)TR_G*Y+OqU?0n8F){g68-O5UxpP}>cXeya=>M)Z*04Z zg(z#p5F3vNpO0{&(y^MB;u@m0ZgVA`5W@{jU>IEaYz`t%+TC1KyPR!G6|h_u>p}|v zp3-JgbNhu;!_qRJ<+-Unlp^8Ie4oHk1T%GYl`tDz(SQ;Ge3!&W_N-N!&Cf2hx$ zTo&Sxot2o0ic)VE$)$Qlc zO#M&h>&$IW?ta)GVwl?}WN;gC$rQiPu*o206z|bjS=;E{)wpJaExaSl8Z+OIzOHB{pDyIhEgS&eyjgG0O;2s+JvtJf3r+InQ zvb)BE^L^6r7uc@$OMf751|_mvWE2t*nPRdRAPaqUQ(~0(V=kDZCqd1c(2L{zp$#mz znJrk>Un!wCD51Mu+!$iN09)%BJJfE9`Y;Z^QY?eL@GYs7k!OM6HkQmiKlCSyTQm!rnS4jyL@Fi~+$l1b26L z3GNWweQ6)tPK6TFLJpI1tcwJ5IG9MMuaz6uyS~mhNLlI*5>Toj)v$B1BH|_nz8>h_{|>6?iNTt<^f4hCEX`bgUCk)(5N+&s{UL zx1D_4kxPC;SgvIoN;HLz(C5pc$jtwKhW+)tQ%C^E6ua_?{J86Iua_ ze(55lfppAwKkwrfW|T~`g%akb+Npg?$I-J3k11+vk^QU(YLGtj%*&8XGYEX>tWBdy zQp4jx8ee5_@y=YVJ^I+i3_V3U=~=50g{<%vcT669Y_{rHxi4P6tf*&SCROl&QIEr% zSVX{zdK~6pYe86U6xw~*Y7{Cx=PZNhfL!1?rTdL^HGok|;rm?so4BE$Ls$X`=NyHa z*&tt2b&J^%D1qF))PV06zTTjgJV;SO96AEDbsNfc{Zc%b#TqHWk-O0z#dz1;6ABfV zsbhdCT58+$rFc1u)mK6{_ZPe2t5cW}h@@^w4siM>zUGDrsIc5c*bc{e-29>`r)t?j z%zi^j13YAvAJGO~n*NwgbR02lWN}{IE!!uq=Qn3%r74Y5Bcrr;(Z4i0m8ZdFW(R5= zsA=O*PnC(bqD@QgR5o%I8!m5j^wptoAgb`7O^1{P4WYp1 z>sa!3M&Qxd*Dc?019hLAN})BM+Ga@ajo_%#m3kyQ6>Cw8 z&VjFts_i)`o`B&_cQ8M{e;)ZNG-LJ|-u^xbdx`KrFr(tpf>K{^FxCRj(sJ z=5gg@1ufr6DhatKeq_d4Vbv2wddQt|Po3N;pEBlH9YtK`^9xvQYlA-o%LqO#hpCaL zZS8{>U25XFoz1SsW8uP4;P?gB&*O$oB#sgNeyHit>CNF%)OOJsHc*VjkU9297JU8b zw}~_Eidb|_J-6LOz$_*%&ZSOYG5WXzmhv=Sf-8jqeDC*CTcZy@JFB1{scF;m{X18` zQ8)o^+gVQG(fcg|-tO%qZ1yJQBE$xu&8`w%0NtNyS#rG-mh~@?dRtg|zb8VE8Z)%m z4^f=f`}#@v>LqveZul^FfnCWLxdjMPv~r1>^m)MI7xZw@fM}9A7Ku^Z5&iS|r+PCj zb6^H4c4>nZzo75L0E+9}2ux$B=Ph*9cD#GBfO+7lhG{{&4I3+a0{~4}6l^H4@^t>z zH+?$f)>U+IkWvu;;f*ABmykb zF%#b!rhCbL!QGz`1?;-hn5XKv@CQnK8kr3WdBvWx-C$?t`2NF zIG#Xy5HeoIM~g9iQuKZ>qWNWavVrlUc=Ciq23}_+mARNa!=Pa<@{jE6+Dh zJ;}%%{QK6vYw?5ig42r;!AyO{ZjHX+8!7U%mp`3L611J0kWTbGG%l|H<{A@noQM{a zoeSV{_q;kVZ7mwGbE8j{Jjq~FRgl)B?IxTtuJD38Q6uE{xWTu|MtO1aG3XdXau6Hh zMpKZcmw2Aci!RuLukK=7E1X-=+IuNIGVo?5?9m!Q}p_r#^u14}A6+P#Mn zzQka1W~XZBcdz%~jkM;9IPu`WvoC3bQ~I}*VOE-cju>RRw5TFb4vGbksVi?}!AFGY zq}k-UQj(Ui9F9oLK%?0AQ%}^Pi63rqfX+F9S`g}K_;$Q!k`vsyV2XV97nDwn8>va% zR217%U|Ld=E7V#zfM(|CI_AHd!@YMX1r0L!K~g284QuZYmFr)!S-uW@UaByRSXh#K zaUuFXP%;9HLdkxU2uBg3lYmmS(4I?tKvJhA5h9#IP>EJI@zS81KaZd@M15+T)Y6(< z={PYUG+gM4_l;&8(1Q$P^T<9mrOyQuh&9b89;83=-EE2X>U|rHM>%*R9%VVzetJ|j z3Pan(;u^4WNe^LQ@94WEg_!oYo(nU4F!o#gM#)n`@^PBu*ThNQ+oxck)aPvdC#Kw_ zeyTM|oUx6AC&*})jIM6nr;qyA=*7n*4h6(H=2XiA$G^U9w2e6gLj{R)D(mJdzY=owC5U(fZz%$=O+55(HlXF z=kZtT;8%kr4_dkVOW=_v<_8wrN6P6}a&=Crw_h#PKh3$%eigT3Q^_tnc1`5DjPg7e z+rd5%8$$&Op}j)ed=WMJ6o+X`iQi1%ecb&e?qfDnZdli|u{Zfd z?n8Pdq9nx%MYSd6lYX`3A1cwG00p45MvMgcW%mCaW@xv(bV-lC>kJrDVZ!*7_;+ak z$+e|U!WKV#T5AY@s$ZPxTU`pd5(bhhS{FeY&fZIUi32 zm|v8f3c_tn4%-d9S zvOSTjZbFdw0A1&UaeR|F$Uxamit0d0ru=>Wl_YgL`e(GQB^H!NtC4#lKG1yV2Md0R zsIH;QQyfNzhoL@E%P7Cbct7^@P%s^EZ+q7Mw@cs9E%_ol!r)YMLT;UzZDfOVq(m8A z@?P$OJ$QffFC?rc#}@VjEv8=B1-x|0f^mb)>PxJ=BUNP%4LNy+n)@J<$S>f*Ny<@L z6+QcQDVozo(Dq!yz4b^}UI0m>BXi%eX6XPRItj|)w7b#v>GJ_!IIMJ#gdjr}<7#uS zq_m(ruy-Zc4nK)tHTYm079N@!8W@D@P_9`zl9xa0P2+&ymui8M?;XKg8m?Y4L1J@% zpY?Fv)R7xDFRZ@D7e1U+pH~pUD;QN=G67X#MCejf0O=z~^euwnPJhUr;=5wcSVUwA z7r1gopBIxZX~8-jVyu}tDu*hbWY-ujOF)SN-8#*pCdO$M`)J?kZfjIUUg;^7hBs{} z2pTmd5ZvS)eYC#TODvfyUx$8|4futnv)+{zF1l4BF*b3fG7$oCxW(Mv-@k|FP_S`J z+(?R2aJ&Oc;^|68EiaYeX^97?e~QYqEx{-P zy#b-!%^xCTur7Ff%nbXEZLd9;t96#|K!+VqS$@qJdOEFfZLqS-p1*E!*fAU)h+ywT zgAr%dMuJhWVBF#ex-ME(>Zp z^-@7H@}-yoAKG_bN6DDDTP)~1VZ-=mF^17IyTFQJBo{2)MHNyi?5JK}S%$?mskb=Y zZhj6!M31bUNV}?XFoZ|rvE&c`52lt%3Qc^8LJN5|xhCSaU(- zB#{vu{&@!Z-EA0~4Hy7TM{9 z1pco3@CA6m-nevFT{j@wZ;prjn-U6k<1l~N95t0kSxD+(5V0Z0&2(l}V*IeaFw z4AE#pbuDyfnR5*bJoV$e@R(rtFP?PvVpI`&xJPcaIff?xl6KCI+V5Vnm<+S~?vI>$ zfIDtrnEhE77q(BSZA1a8s#z<>Y+#7UK!A_0nh6sO+1epImnW8`5;D*57<*b60=y1viG_gqqU?R~ogOP}sSKsTb;v ziRb48^sy=4jWL+`CFUn>to@+S=>~OzTcHz>+qL2*-sKOKgQatV)HRR-AW5aUK8Q$?BDiH@7r1T;L(m5l4iIY379WtEO~n$ zbDKE8-hy{70aH^|^gQd6^g^5J(Y7VS9=Dtx2lcv2nG{VwG^mmcgb;&&x}vQ@Ygv4o zo5!MdQ(Kr4?l&MVoTLo$GQY>9H45NB$Ah(-wzMR_5bI0Z9qR5$~=8pQ+G0Ni4^T((}XdUo&UT5~24BhPTd4 zIgc7cAq|mKa@*fNj*zVLEV7-zirB(jcc;Hc_)#k7;Y)5Si|*QC2 z2%CNqF6=UKkO_K;m3d^*vMT#G*?}b+B$=<2Uq>NhdQ-2xbh`_%7iTw7)!}z}Uhc~4 z(poek8KJ@gqu#oK8<|%rm?$Rc7&Pd3Jjt?h89krlCR3DSXtT$+S*FL6FHpj7b#byDKvSi|Kxe*0;S#U@n(t>$m z@M&Y4>PT@r>%Q{tl?f8JBnGZzr(iwv0`u2@8q>AS4BouhV58!ZF*=AC*m?G_mX!F? z-E|CZnmI-|z&3MT6;dUmJKo;cme2Jy_OUd-iA#-L-QrW7O~ahpulox(EvcY83iG17KfK>* zS(ciAiDj=*7w~-WN8U}K!lSRauiNO&JHjFBL@Dyw=YrMIl04}D!l=Antsr1mpWl?) z!?I(5UYUNHN_kucMdWkr7M%34%}dc4%t|xgS!u+(>kw;MNcqP~lO@vgHM5J9lxC3t9dht0|>T z$E>D34iVmjB^z1TGDA+KaLPgn5J#E^&);kaRUss;K&!M7HsJO}llm){ zN15hcmz)=N&zp3W0QS_zSM2Bq%X7*?|4)Q4x^iUSBcP=XDvfYr>0Ar7f9YM~DH+&e zwvtaif8b4-g?>u=@+T&GdO{*j9aRO>;1gp1$6uX>iw`&0z383Ad(V#ZMV7wQ|Wvs7jocxUVE45Beq z(hMcHydw&)Fjl7=HxKsroDm--Nn)v6AMxbrm|=Fsgq_we&ZFcOU^TX~0w|DWIk7h` zA*e=)DG~k?WcrrJ+9Jz>3t?12aEUT$G&>a-@9Z57Rg>W?=kQKP{#IKY2uf-axPc=} z1*-{!yf<K>8Y%qNrHl`bC7PC4mbU5jbzFxB>YV^E zNgF#2vf!6P>Js~YOC`2Q;UH{ z$!YI)qha)5F2T_{6*UeerA|uDEqt*-Epm{ck=VH~IQLP}eFBM+l2XnNE zCMZ)}vs?NI~kwM_N%ob8XU=2NUY-%OQqq<4Q8l9i3DT$>(3@8&&qu?Rx#w@rIaawJ&A>w`yE1d6Ph1gD6xsJ7fTk{nZ9Q=E* z>rF;4D`PGIZW{b2!Wn&aUAj4f@%%27DT(_O(`Eli|{qgPXs@F z`q!*DTo?$|&r8_^nOr(8W=VU$H!IZnyCU>`GP1921+NpbXdHuv;HaW_!z6{fb7*fw zHco;ic-0nr){js%H9NWqW61WzO91bM%hO0urb%d<1p?N;r;G^ zKUk+^GtS?XTd`3r(#)OXMio52>Z=?vVgYxV@6BH1KaW$Y#ASrxo|>n>TLBC*h;0$u0fs-#m}K{dKF}Vndof3e9eU zy+r{x2_)O6&5rbe<$*k8aD`i3Oi5l)IBemw4BCqZEYv0rh1a`<-Hb^bUMSFcA@4Wk zVoiVpOBUbbc&m)0=e(kEY#voiYLsev@#eH7?*WwRBJN;wM-I2?c|wx(sorIo6j}F( zb`f~tc^TB;8_qmKS#gS!#ve9SaB*$3nD$qLR)ZRJ+7btSF`%6>Xy4ul;214BBbb#Y z8W~TlF2&kM61ttxb(N(*Z`5jH^4DoPI_1d1+D9TEN&1)02u&vYOYp2N0TE>%Obs~6 z#l4xST=mgusXl8b5e%P+Y zG-r{6F|I@RUCBzKyiMeoFFLJ3cdLZm^1~=U&QahoG@;3>*A%@rwA=eUd5DY(Fq+>NB;W~@D*23vZJ3WaP12(lbDW`A0A8BT!+D|t>^D%MZ`TX75c>5Aadbl0?0^P0;E%Sxf~N7C)b`p>yCB~0AsI96 z$zuGh)`aAM_~c>k%1t};6!{wIvnXDBJW_-kruz1!rSsQ#Qy_6k%)|R?AQhCB^C6!W2F!Tv|HWgms>gHA=H&>sk z5MG+;UvvQ==KW5nGM<$3)gFqBY7}GE%N18W?Og|JfF>T#PQZ2;6=TIG#ye zmH$_}Xw-u-Y#lS%VIr@SolE?CII5nl_IItwXS_ksayGv|EuCaY{*HP!sVSiMuZyL{ zBJ>Fg)3Fq<%`~LBsxN9=eMhE>d#^zu!pokK9?3&%)$bYtu3~S9CzkNwaP_3sZ_Db*aAfV>WSB$PNDZ4^eavicwyYSz*-S^I&sxzX?G68=f8MnlpW%0{734y}L9e^x4p z_3GOpn5k*4M>4u;r6;Lf=vCKq3B_>s(q@u;*OsvQhRaD-9QNrI12s*PrhDgClG;di z1+TT0L~#49oG9dgc_*aBEJow$3AFGfki8aUB44t45uCrB@hS4Qz3A6_HHs(F~5c&;ypNmaj8D zFVP#yK!QVxwxlImR2?=vHhJh$9-FOD8U`4LR{ySJEL$}X838KrRIEi<=GjJQ7sxaH)o2$TYjJrW_7L8dYwR?Tu>_{@yz&hV}AdKaIE9D04Y&O z_{HRNoL-NMywAp=)LuN!R^1xc=4-$m{9}pB$&Oz}fbrQTJ*C;{(%PTeHY*G_tn2`6 zKkaC@J!9-t|G$~3+owhnHZ}<(#s-U4_-5kzMv7q1!2^r1umzH~+`bOB)cCXCmi-=5 z`u~L#^@!}zR+VAnc$MP+0iy{;GSP7VCOYPO^~l7_x*=|#R7h!S+aX;=H^$qbFd`Z& zCRv5Q;W!ouG{hs@WlS$h(yMJQA!T(1XI7v1#OBvHBEh&oNW5Hcc5J>22=4ce_C zv!rO+1R5cD4*R`X=`(VN>J?JMY6)p*zoQh?yTCSYpAU9ewq`{IqB z)jzu2IuIKfcj z3w;&HaNT^r{w?A=^@!WniwqRK3Xb7DZKD3v&{pV5msT`o=58ik7f>7Psqh2uL96b} zX0PP??1qSRBp7+%P$$KmOj9=swZ(z?{}bR2awA4S!m_{A)AxT~#U?QUo4e3uP|(!+Xc11AFb#mkn@(P_Y|& zivhMr^;R+@PZF^Z41zDN8O=rmU%|3c7chL;8>BUVNilD65g+K!w3xt$7cmu8_qVq- z%naPvUcXUtqidZ1rz;1-wfHEaZ>`=U6I=iIhx1s0Nb5RwGkE&+ou6(8rp;1-`6;?vd=}y73yeQ4NqDP3)f}-vJ?Ml9! zmj5VzX?@7Iw<+TA>WA=~&b}Sxc`UX=BY7bs7%oFmomk;)ICjQ#UtY z7koiVfa*dW6t>b;#nXBeaY_=z!68z7$l;l@2`<3Qw-EJbK+XKNA8hotc078TBJW%1 z1VD2;rl)$!B#HrV`S2=2I4sQfS$LmhhF8*;obYqYqwDZz*btt*lwpq1-3K4-FhZEy zOS=!nnGT?b(Q6OdufiuRvP72$88W^DZmEM`jsJ`(-L z&zL)NE`+8nB%Vzo8T`zWDcgKmHUCgY^rhe!xnSdzm5`wh!GkC+ z*Fyt>3@W1B+v<>=3K1!;Ny{Q*kJTI9T<1;n*thMi=c#DG+aTfx%S@<64%%rT6;l2O zB>Bb&Ap)X+zwR|W1Jd28&#{T+LNMx5A+RrBA#dlMfJliBL%t&*udbKpHLbF~#jUXa3T&_`LD`F6lG_+x{SX8Jz*?X~|vW z*lHzyA44BvZyqUr_`-u<=kb>*s=kA4cBEu-cde4rcrlbKgAoI0QyB-3^~=N3FGsMz zK~H041EyaYe_3j{%2?zqnrmLh*B8uWGJWIDg8v9Bns3pO)7UMtIVKOUd8_T1e@_LJ zJBq2sPz%^M$tlG*K8g`BCFOhgk(TT1$!Wdq`#cZ(q}@EOzuug^J-xlYtiNsB$VI+C zHLv@2q5FD!bpQI=yN+1m(`t3#UO4daXLB=?{?91E(HnEPFEWj#^G{6})I2n(--fCg zEIN(aGHm>^@bJ<3s>lFZpBqaB7)wK7e`%^PFwAt-hy)-G^U)k>tn6p{;5vNM2HpCh798J z)Pf8SD*fpzSc4ff<(n$dv;Uz%2-WW6`R=#R`)nf>7KnBSY~|k@=yUpImzStRKE$p- zZd&`>HVEV{-+waO_BDk5uHS)TDjlu|%@htX1^;In9%~w2Nkfjq`E2j2ivvqDr_!gw z=s9DxFaAQ%_!yh8!9;L3mO}y^<+w-rXN_yuEg^U<%@*?npGtSQY51U=!H){V!R{2H zkISEca{r)gOnu6p+{&Je%tlVQ?G%H=XvBrbDTuh|;YefKoVL(|{`(V-1`?;GLX}3R zVxdY$fV5I>)q5ql?3B1{6-rx?eW+rQ2O>7(o=e!0w<^B9&Rz9jYxE&~fW29|A6 zx6w^wDP`_YF58bG=lYvil`ty7>n7e?z+pvR~v7NxV)C;eAU{=nrBT9JFt6fa)u=$ z5cehyzwj`G{D`=r54S;a!spj8{kyvp1pvW95dhC%MG|PPZw5rGiPod2oJTz;!0RK3 zJnY<>f(%4BhlWjozPb;<3`9`dNB(`q@Mm(!W!o*Ss)E=5Ye?)-h+%RyrfSboJjWa* z#Yy{5VB=9p?$HO*B4`w<6F#9(!=QjEcUQo#vyj}gAEdT0q<}yaKfy0)Y!vZX(FBwQ zmYJlzj8cMT#F|w-y7R0FPKS0k>TMvr?;LZdn@-)^{BKsR+?Sb0n*wf&vhI&WZDW{2 zhQjpd4o;E6YJB8KG-1nCI~OE@CWJy1QoI25fvsUj@$ruj+jXp(d|?@YK?>NLU~7{^ z!+wLlQIm|`FQEKWDS80sb7Wvf@L3QtDIUe37tMIgOi()!&?^JQo@B9$WU)-VT(lhp z=#hbm-DepU61!432nQVGUcP&6x)_h?fs5;DC92|1@3{jHH71@!_C^*ae1;7>b-B`M z4;S<3T%H(8(nwfmp*I8(vET8afNK=h;cd7c=M1fspZ^lI#rV8Za4OQM+sWxi1Rq%t(3p~ zrT%Q6fNkPJ7nkWng8x_bBO$DTkBtl)r zkgI17)t;kprSKiQHG<2tmdlghA@+Q4VsQNe^o$z?{uliSPuW`tKF`MF?+wuTW}W(R zz!W!#LA%kvs4b`&w+D8kD3)t%9*)4eVpA6L2YJGZ1gVR{U^?1i!Teq67vFVkYHst2 zA5xk)`if!@_S-JF+%hq#*4ZC7Ho1|$tRl!kRH{mx?C0tSV52H_rwo`&p_*Q~E=r z558a4GGpt9`mjmMiI>=qenCC;6}V!UCrb9*2`jRs4bw&3Jp3?!oD+`tv7HmxXT~U< zOOHDIi+%kI%Jx4vuj@q{fg^Fct;RPkHUQj zC?q%>Z>MXoZvniNk}ZKLeVPHwnIkEaJNt!N827B8bPO}tQ+D8oWNwV;rggec0KA?L zXeScHEM_Bp7P2>D0*Qr>WL9H4g8ce&zY5k=rvw~XN|ZO?Xfl~Q z-^{lxZsS4Ty0eeEbG*y4lkKESfY@PT0EdMMDj_FM^lu(hYF^_5OV-KbSnQ&f>DL$I z93Zu#3?!LE=bS*^z7X$l-VTv-qtq zuEMkJ8xl%JVnKcOolan8uTMPL(~n8|{za!O20rQ#Pjq2>EV88elCZDjL`32xcKKoO zD<2I)a(@ zU+-sSgjIw95JZK9hjL#hn^T33_)&-`FJiOw=}mF2USH10^3%*_{2>t};#4&jx~e1w zsm(-53y1l+F8xxb3uEDnS*M8kV`y+4bzoiE?UeVb%1Ga8{C-M z=7hl1IX}FSa{-zW&M%z zD`?9~r{D$N)7(r9a&GuX;>Grr)>irp#W8J6YYg%|Q}Ho?ckUfE^*_@XK$V|C67i)l z3xWKeI&W;yhg@{-m$kV7vjqHeL9(@(7au3eOR)iBan29K#YshLi8WTLE|IJc&f1w9 zVQUlxL;(j(L&ARuW98^1EEq=IZGRR2$es!6gFd|Vb0)jPVMIja;_McJ$KoN8(fX|) zOfLM`_bN>_5!jm~^ygXIysj;C0UYw1wP@ zy+<~GPTx^UG>Zs#7HKzdeD?qUdI?TBE30R2E}ykb8N^@RDO8LmJ}SCQ8N#8WVjd~@ z)v!&W(msy>vyeLzNMe zCNmGo`4P_|+|5%iXEPv8PD#LX>!*(rA6b@_4vgFnapO4H$$J=q>NcEO$j5TN4-mIe zoodywDxBId@G45w8BHIK{OYi}sGK3xSj*v)B?)!4awcIon$pMDfzloxR{#&Im`RnC z;Z9eB8c`jO}w)TE9ysolN7R z+K^Wi5lR_wYa#8GY)fZtZKUd8Jbq0k4~~0y?bvv+Ll>KQg(hhZws87dFyJuLU=JOE z=Pv%wpo0qi(Fg1Os4Z>dj1Yb|KQt9TA1?;o6<3bA;l9X<8XwwqS9sWZ`_ev<;y zKIbpa-tGh=zEylGj-kR9Ij_=4bxp~n%^{{TGyHrPWgETgFH=J!BCtD7C!(bDslJET zU-?sYS1}LAQKpm3xj*pp4LO++X%w)|s*rHA6*dDKPrs#7o}P^@)@Oh?o$c8Bh47=x zbKPPcB>Kmme>|$ZE6!kFqC1EJ@O-#Yj`%aRE4S+Ho znadyoq-2KYlm@udSs7hkJ;Bw8SG8Mugw|#}ukjPrn@C{-&FQmITIbk9bkp(SxvlKD ztgCFrtkf&Z@NM(SQgI)3ce!a z<5E${rBz3{&%a&Y9Zgllc=myZ(Vkj=Qao>MGrk>#EfgP0-2|d$6NGqGWLLHNA0EJu zOW5DumUQbz=G@#uNnF`A_Fvfc@JYrliJw9IBsr#PVpuC zrpel<>EXDmbvpVJ^woI$6W)GaQb(DOvALPN4_T$wuFDpn%kfD1{#O{rQE1wC+PE#0 z1{iu&*(204@wl)y57rJZ%VdDT#DY{7#R&HdzE>vGPEKk4UP#B5Fv z{;Bs&#A^()Rdk~CD@R6J4eZDEw)w#qJdw7^=MUttH21H>4$kt};CVs1#SE<-oeT!} zZD#?{R>^kC<{t*_dAZVB#EDzf$8JgIHOQ>TF>NFwyW^-&^^)WydjjARy%F}Pu;28! z6-w%cQkpuza5^*GoSt!PvXr4`O2PdWvdUf6#@8&1FVn^4P>f6q!fEX#MQVwQ`$X;% z&Z%K0dOJy&+>3Jh0gO4>R;s5B23o%8!HaQ({O{?L<7 z)(S7E4D72DI7ddqJzus|jOz9XwC34w7oDpT;ds7*3{f{ITGzgOWG|P!ouiX&0}c0Gu_7x{Q221aVpyT)9NR~ z$dM!S<)0@f_tmp)@@)O)s_W5-u`ctpZR=RIH7R2dilc7MaEmjCgu;4c1BmsEybM3L zjPg@z?i9Zp1ubRvsN0{=1*W19GC756f#O_jY{*l=3mFx+()k9CEVxc8^A!Bh2vY0& z`D%Qt$W;2_J7VA3;m<9t3dI|n`SlU+d}W8{=ScnVB3Y@thw~mKrv(0wqGuZNteL6W z7KP>l*z35POVd(3T&eU%HucT84wxdTe4yKoQeg)NQuOjRQ?@~Qm4nuq=*gKF%F0na3iaNiR zF{!AvzK#l+mMAXz9s_+$x?#WQaWmWYw^7;+x?on+#)pb46x1_%!(`C=BD}xp@=;Su6{p%U` zZa~GG-OgSk*GTAX4lkcnGb119uqWFO@AhsW^EQXPe@E1n?GUcmo=++MQdcg7Ph;Mn zIwnvkZwWj2VC)|had7R7w0mTuS-j_!=YUQZMXmkguj20UIrlUSuSFD-{4QzEpctqG zMe57nwHsJeI%LBWWy7mmyO)u+R&`LoPZsGBMz}sEXBYUs(ajc`mCF%>SnG=$-u5o4 zI78`!6deAjLWNY*Pd)_L}?Llmx)Sp5f47V9I;v>rfqK+ zkr_J1Y8%m5s6Vy1X5>$H7&WrK>?)fyw|YR@;@Ga$=37XPv}|&xRiI8P@rsEIGoe!r zlcKMQgWu;n!W#X9?sk{y4-e=rkLv8dID}atixeY6AF*pqbGDInda75AYFAv+ub5|u z`JmW@Eug0}U!nX=_=x}Je%&g%KKOQDN!{UraVI2*lq@!Aff4oRUaO;Q<0&GE zLsw0<<>bkmx`@A#*SmK3nyR5=fDvx~A z+2Fp*3bl!6zWJy$q)xj7MM6OQoYN?xfalnutYQVsmEx#7LJeH*Gc+i^9YJeP`V>n_ zkLsL@bXU%}V<{;350i<|eCr7I)u{sDA?{;o`~Lk%xnk>xDT0g02i0IoP}M=%)-eM; zQ1fCo8kGJ}ZKlAtGB&jsix|#6kgVR*8~@yOJn}utYs~v$nTzy?*v&vq2& zkC{Q>joe#ib;W9vQSWGL(({@oRr@BMJ*-$+?v5~OaUrS<%Ba?BybNvXjR9T}e%ac7 zpiw78-~G1Tf)CEB>4AM>kJYT>%;h8?j;k^F+B8y^ob%{tB8ky*)RDujg3z!AZ|ve| z2jG3+T;Z5#;>m-`o<1;As&&!k;3@idtG#dnZ87Pfk=mXCn06A%ALSqdbTpcX` zRq{H1e(Gp;m_m)na6ejtF~V+om_d>E(*=SI9*o>iTgS)T&7TrIZvj*LK{i=rSuD#q z2D!xr!?p-UiGQIFR33djaq?CG!j0pe`OIbp<%>pf)0h^+4}SNNZJkZ+$=mOf)HS^%;@2S6axNuc^$(f2i3=3^$oXQG!)j~ zB$RD6|BbO*%W;~P7(<$Ww!&%%{A`!^Gy<``d>%Zw#*-|ornF77v${aHZ!V|~3+A$msIlHs!o%(qmkO?YAm zTm%yfEA6jJrS-)~7*YF{s%EJZwlX9xScz;$pp%Uu6%hqW<=j8pUDNf_5D;ZaRx27s zP`zX@*?^heZBCKvAo=aMczsw00C2sfh5m*n2Tr~QiVWhAYQ?s>Z-*tB*8A1q=}8Un?MDTWN+*QvR=&7HgXO?t)SD+v#H z_ja+xqSqS(ufHCk9r%{zn+J}8tFnE?Jh#iqh0o6~@K^kUvRqjcul!m7q0))t53XYo zMgn@A6A`fb^iZA<=m9!#D4^V0p1-CWnKSS{=Pb$*f)t}&HJlk3Bi&j*T)n65cJCtA zHPabUvN*P{dz|fkgYoN7(%t-_I$-JKQurzmt|^;aFHEG?8oLyIjP4yT8Ci^(WFYzm zsK1*cZGVb-!Ir>&mHl5dePuu$J<~Ss?p_=Y?heJ>-K97bhvF31gS)#s9Ne`y6bck~ zcPmc6)BAb9pSzn)CL`BOl1T!UmsEDDnsXwig6I?#agDG}HFI}#@6SB)`(&!&`Hym5 zdSb#$avuWswm@oTfgDh=Sy~#I^7m(t ztfhC4r%3{{Lw5menMind?}+EKsl>y#(hz^&@}s?iNkQ+kechy-zP_CctH$xAuMuAn z!&CC#H{SjD7EEVc3(P_~j5~c`r{LV?r!U`E69x>SgKZt!Ck0fjSHTtJx(iY9K+%{u5I*L}4RwCkH*nr;EaWlft@7gX z5RA8y?I+&!M10Y`u7?XAF)R)6Hsoyzfr;D_vd1Xp5089)97aqJqtmb|>|Am8ITqlA zrEtyyOLw{Y_d-L;PpO}qvhTW)iGPZ9vB?vDe(+JM6i<0{T@dS16>s7%JSpV781!Y} zC3SBcD;#Ueq=S@8`*n*Hcu&R-q>|_FN&M{O1HpKETp1%@S0e&OP zXe3#|W{%~u`uHuVdqF-*?<&c^JaC}I%3e(^>V4pzQfLwOPjLtsr)}Pz35T84RQCa_ zT>1UoXu;o-et(EKhz{sX$+D4b_D&du^;52J8oNyKw?a0L-8|nE^%wa!Edo_!63SRe z4b8!odm}6jadln8WHqDYnQ4>v00__aOKuumjOeqY!&$WqtfXP7=aT*a$3qPo`LUk; z>HyslnY{Bk9D^)Aaj)2!k{AuHt?_xqn})D_FH?DaYF)^1Is=X{D*PECsFYBp=&3_m zdv+-j_%zml7;lnllS%w&fJi7Y&?AgRNfK(3qE9A0uJ|}_P*dL=V%7oz$~zjqM2969 zM*Z6Ovllw8COMRBduDo3;+oi{hR-CGE_s*{nGg#n3&x6zcg9K{u?>N7U%1w33Gx3R6~yfnVVNk)#9WB{Leda1sM-#LKUsio;;*$TZ;OITB`cF-tR$wuS8 z7TH6w1nK3QhF&r+5E{Ro4GtV#au{oQ%R(KqX;)t$>P7g|#}<=T>Y(YP?lsKYvYCu5 z9>-D0`?RU{7i^iTvzz1qr%fD5k1tJX{*sK$9RU5*B4fs(6lnRuGRQh>`MAP%ZKl;` z4nUox?^y&Hzk0;Ua7#kb)AF?Yezc7(e{Mht^sX|&cuk33fhqj_dr{(F1rc3!3rvg< zaXNTjAm=CYnOP;cC)sM0rp$zx%F2=j_5iZl?R<8WNJymMZObKWq4R-zKGH5x3WTZD zl@~?yJRvSIi=*xEY;Tby7?Z4oWA*#9ih>)sBYAALWfNwigFqW6L6vZeJ*O2p77Y(NTAh7gJ1S8f|;AfAp3HW>tLmkCLA zTbX-hq*|0nm;w!45A9bIw({9!*%t;+4H%u>8pqLnqggq-d0WTA>@Ub;3wea#O(~MB zDVilJh4&VJW>L7&rlQ4dAWZGCDFP&ykd*+)H2#vxRdt>ds-_t>xMjF? zomNq#WvKP^U4G$7`aakUYad2JDa`B$nyh)PwB{2!B3yfnmca3vP(AV(c>W8Z&~H)Y zoJm{aQFOE{iM+DvJfPL1R4&SI{-m*#nGokAN#Vt$Guz-?DmFASbDmAu+qP?tJw#nl zXV5&15dK)nkfGct+pPLLWVef|*ItU1x5PmymS$6Utom}!QGvdzHWB?dpydf@+`_-J z#>}d5$!k#dN)2;G^DXDLh1x2+eE$3{6YYc*WGqE zQ8|l{L+fWi37v4p(s3u2IhoAw@AOJ*<@mu}a~`Ew{`5OMmJzC|qPz15qSsL*+QZV{ zr%6;45iL388w`jTR2B8eaG-PvKYb!WJ7`av&E(*xpQ!%>#cnS@LC4&4WaS&XHRjP% zTVyisv8*E8;Cg23?!jE5jvn+G5~NbcY`qZgE)HJb%1q@dM!=s99-aF;o+bJxN>e5J zHH^p@>)7YH10UR$Cs{Kh_*|V6?k&Jy>Vs%$qCzk?i zfg5V#rM_Ma1i|MYs--uaqa=Ng%?aUe-Z z@-?OqAjNJ7@TQD?(lS*TV9?4w5a((4Z=FZ_pJHd#C&Vhd3U)|s2XFTiG!MJC(xDYY zm>qV7B81hsls0fyOW(bNl38Rb2@H=rO<%*lxS`+KA5q_%BUVU;v=!} zPIQ=g>4!Dmy>kPJg{!?)70~N1@kRbP8e>^yKD{XaYDAPmnk>u}HcCt0tip`n2(yrl z2IQTTC9fGxlwHn2<1QuJtxm*{PPo;=PU9?v5~>-gd=%g99mW|rkP^Bhad7kul=_h} zhf5IRvFYHfr3vTV#+3pIZ7qSoT`oOlu4YkTwRJR%^4N9V&we4r^yK7? zT>t4e*!R{a%XxX5J34A{N!nBk#dL@)5F$M39owus9fbtO*uInWIW8(=6@mk&FS3R> zeyAiRt^dRePklF-2Vyw5Xc8pv?qaIFBk!K>VzRJ#C5iU|NX^vNnzT*=Mbxhnu@wPG zAZlJrH7NYhXjT7_7er(rQ#MXqP#y*)Q&RZCE8Yt^KhqOvlmTsvMG_p99nCVZJkZovTlnZbfhqjyY{0$82I0ykPB@F6J zcKns30>JC!wvwS6jBtvR4|o4W84syDXF;Vni@|;KJOW$AS@G50EGq)2ZYv!^!i~(c z025~}RLpkHWyG6sN}4mv{rCp33_*m^g;08?iw%D5s=s_Q!?ekFjjSZjf^~imm5@ z8GxiYP4#QJhR6wCzVJ+__TrY8y#?w|9 z88wQ|qjtvJjRtyay^Xp2oZdX0ea7___Kz<=kb}hKE~-k>7Wljix)^d#&kc*%Z9+qJ zGloMc=aM<0IkSJN=L(A(cHa}N@-SlRa)h)+@du-2ykv2s2rB2fzsyqu)nof=)NFvE zy=L>WKdKC)q^BtFzPeoli6xm1Z5b|#px}>6V zb)Qff;x!B*jD$)oey#_zBS}2|0`eJ3)15cpe}$=;zsr%GA(@$FqyH_HhK-|cJ7J|{ z5!GqQf)#MuNGwk^tA>^`G4Uh|_BN&?lo_IQ*s0nj3TR4lXhW*vPJ^k`x^hiTiz_N( zA#)h>RsjIDjtKmnlre=U4vRV(xG6-u8$vjK0t;^QqN$YQ>@4$Mm|^^#>%gST;G6JL zgLr-i;2tR%bDKk*goLhfibcrW(*g5Esp&U6&IV7f{Ak9Ccmq z2@~E@)Ti~D5Ry$e9gWgre44hr2gfJ`y*X7gT`zab7L!4^^^h*MPzRpRa`<1T3Ce}a z+j94d+jmNTAFi?qGgF#ya%dn3_wrJy2E=kbxK8d9Cg<>h+M=!hZ@!`3+p#tw5d9jdQ|~(u^Ltw@tMxy5A&sCaGQ9U}YyD>!opq zkft3i5CoIElTuT4yT;;qW~nDyH}FNjc0?{QA<)l83Xu~At=US)AgiTujzh}J6aic8 z)1VuhJgKRMU2ACxQ>~kEu1O|y>%YhzU#gVykQc#H{r!7>nGMjLU8k~Om5y(up7zPrsgFgGYD=rWR zX%OIY{pDLY2|1Nn-1^}kOoqBh>I}2VlgoRqDJDdDbhvSZ)@~bN`;|FP8}Eyt>J?Z{ zn$T|dm9XS>tn#Z^p^!ZFnWnyxtZd|x&G>v4M{*&9x#D7>>>bmgJKLm84RNPLAY0l( z>DWs2;GPx#Hvexx*H=T>u-ZGqASV0$${6D`PC2M5;{lC48nKJUB0@2y7{S>^>X0dq z1#li!a37cJ>!lYX(6y*=ATG&hdgf6$einLLwm;Jn+!&#&Cu@T-(#7TuGxjR z4G*?aVAE2TNr1Afo!wV@vcv&fC{efk1Vl`>_53hYk0Dz;^DtYyL^a9fZ2q03CstDf zNHu6Rd;(3FwCn*bvvjfora!l!NV{}d4 zku*~p*WWM8KNCY(L>;(FKbhM`Q%`Xoqf7Z->tx0PgEUvLT2POwUtMUh)$f#k+*oJU z0)xnuX>5sStR7Ffr!=G?VU2$_Q~g-sA&^Z_7xC&=R;TJ2g+4%(ju1aRR>~;m9KFfm z0yyxw%vYoG{dj(YRc;%1`G)0Ei!*2*)h}1F<1cn$=pD|EBuq&6!xZS|vYijw+3qV) zoAnO=C}5)Vc_F@*2>M#tmY0V4kucgC3aRKm_=ysoYox#$nuk8YH)K->fmfEwBv`uX zfKNxF9=Mxk&htm?Fh$39$hN*0#V@-70T3SRtpRkQq#KqeR*rr+-I;NLgNy<4r4-Yk z3n+(z%xVy};ChvA1J767FC-PnG^G<0c!1P9Yk|E2U0n>;7#7fx)G1`)S(sQ+;YHz) zFuc>=vBG`i#1NE0o1aTC$YC&1HBpH$(-)Y~g~~e*EXJU3z1Pv>ft2E0XpA=N{yeIv zEXtvi;|cKl?nT6CBQZ89+H)x(Ifnv%z^I($AZh7vo6Z1JwkS#dXEA`Ro0f#D;5uq} zU;6o+`)j`}_9Bu@-LxetwAj5BbV4AAAwho+f5nNGP8mmOYlCfr9yK5kl#D(;gqPTm%L|ote<1QuefQm5iGW>cnINX#J-V%py5fwgu*f3^0k0BGj z3G>cHSVvi!{nPI2ZOEdp{05~4zO4d3;ZS?P-hOEK&!S?6pJm;3qAN8PMbmH$hy&WH zRbtW&)I}$79{5U8YC=ftqmlLPK7NIu9fBdV1U;yG;Lg`l`AuGkz7W&85}OW^oM#kH z*isE$n$jUXK-|afb}Nb-2~B_O9&^4~R#3l+rxLp)#AlVJ)|JwhJ>YEqq$R}tf{_La zrmFgPSX|u!!RhPw4nF9>TxF#jINGll@`hrNUM(}%=N(?q`QVrAP-7Kkv>TAHunCJi z#cfCY@x}M|*ETf=r81lOl8WHI0`J$ z?q)_3AYtfqLRxnUM%i?i%HJaA82UI|8;fdu+Ra%GsQ20FR}J%ajVrZbHh4!cpf&5V z$<|?`g6y=C=ojf}#2%H{hat=w7ix792viI9b{urG)Z~LeT#S{W`FdJw=g?V4;>aDw z(xtHT^EF>FCQP`9|xc%``<-nsz0+g*rtEtA=e!-B8N7ezs#%m@w$7kGLLEoQ`r5H5#ONnwZk% z29Ewq)AAa$nZ5+%<+94cYayI?`*OUu4lIX=vY4ME z@l4VhI5c?p4 zFJV^^n7GFvkMdHewi1FlE*v+27KVXA7*g1oU$-(4Epg@Q(6jFQHlz_^ZL(B^J_B&R zJ`~1onh7}5E{B`#4g41M_gfs%SJE3n-o5MOK}FWAaJ27g*#$y&M+F0;HrpM95&8F) zn+M0&_^1TQVu#J2I&vgCfXymIEB>4c*}~D0`!CN-meBWPxY_5E;w4%dVr_inVyA4KyQ4lYc2OC-yhk9#1;$zPnjk^J9$ zZ};>H#%t%ZtOA+AW@!M^gkV}nL{*l(r-foBScm2aObOFpYP5_HVys47K$j2uSpr5r zLsfr?Av;=5h%nd93B?W+MA0nQhgGY1s@_7jnsUO@jblMU379#Y%L`*uP{B*r-BB9g zk^`wvEv=4|8iHc#XNQL@6aoZIdYG@Yi*#fXPT=;{O*IDN#Q9t;@1jtM#{W$L zO_RxdQNxLBYu7`vfJ0%Ok#D*E3Y);=`?(rtOkgI*UW-4joKFH}F1be9q4~#8S0w1I zXtht#_lLVE{Gz=x28s&VJ*c;a!c_#gwM6zaBZRJjeouuq*}}@1F$$?2o4BvnP92BL zVyY|Aj1GS=Yu!qdIdq1KPTSh7G`eY!h}K+UB8vLyL)ER$L(e)qx+ze`hUH~`Q<K^nZwuz2Isf5bRJ(4 zUVL%JUV<>s;|slR8uZR1(baP|{i7zK5uIWtbYYR0wtX@4v_tyt`Ks)P$g)AnSXEsS5 zdEUuD7px=Pw1l{`KmMa~(pj*jx;RwP2^_ujYt;qx;?qw=NNy>F;u*n_q|+-1R4Brz z)%~J_SA(SaF42jcqR&t?npCu{<=k?_$|gkQ+mpc0=RUyih|>gg&hm*MQqke>qqfp- zoFgLm#pIOM3ay0~1!K#cGlog=RMJ=c#JHIJ22H3A@QYm{dsCSwA37x&WCVX}+U-Ml zP1DTU6fZ&Ra_V+=W~2v-N39FDbhbXWk&M}vKc^>^8A+)3N-2ijMsfQ_{ONF2=Dp{) zE3y+uoDw%}OG8R>!D+Nsl`dDE%BS>0HQ?2S#gp=Ke*F5%)^uwaYGr|!3R_G zIr?ndNFFm%<+^UI_~eMO7TO(vUa%nEC3509bw+N8^^}V@(Wmr6Iw>%h=B5R>#$1H` zl{EegH2`uKbJvIcIU!zM3vI=Jlww=x&nm~UVsuuZD<5#V``JnYwzcQ@5X zEbWWwqZaH#bEKguT@df6g(}F6fSCXUrrwF>Luj|vFDE?g@W59lsV~?L?BnpqOCU|* zM9NnJ5{EDbdLJplH(iBtNoA{l$d#vJFdLccMWiH&FaB#2eeV2Jz%d1zEfa6`aVXE` zY+F^mUw~P6UHVVYr{KVHf0d{d6@-d4?T#^tiD#T6xlCR~q_nDWfm#Yv=hZ(VLLgK5 zwy(a->Krm(=euas$z-JYSk!DsJalP$lmu!6ZBB?51pXv7We6~XE=J;#{Egvt)vMIY z!&-Y_pe$;&Ib_t5HaBbsUU1|U+TKYRPSzxlZTaQpJ>PLKkyi zn;$FD{YV+P@{it8>e5bliIAth?4%khc|pRUDw)3N8oC10S-Y5eo**DYumW@{z>|=2 zq+Cs|->J1G@DZP49Zffd@vP1oN3my)bW3&6u^?{xt;!UQ|5k(g6JS;mxyYmn^vRXC z%vl&*2QvaB9eNl=wqx}8zoNHv$3xzcarwKKvfh`VLC6nhGH3O&ZGrh*!AdVEhWv>2 zKtNy|m^{YZ{)r`7hzmrYrZ%aQ~; z)<#o))SK{yI+e>p*nAKNYb^@fkNU*ZDG(88kDhtsK_h{vawZpV-o-tt^Q2srYd%L1 zP_kkoz`Sv<(M@Rk@6$QW4V`^dAb$mr>*&~b|95A&zPf(rS@|40xNvQ#O;kT2)KfXc zzbEEE>N71b)Wii10)l`4_M2+$O=6G=OZg@quFFB{T|J-?xtf(Fu>31aeg^AK!OvnaHpl#;}9fc8g)d;qYSMatR_SDpk;=`oIYWe+|1&M}`cj`j#2dpJKbb7423Y zCdxrG%5AUvM4~JOe#FIO=3mL0VS`sn++DY&kyPj_7Ct(hh&yp zxfa?)m$j5wu6d5E%Vo)_+{s1_!j&5dHee=KTM*Ejjl1U`r$srExx0xR+P?Uhxl1*T zDObYhsjoVOsS&)}J?kR#@5yHE%)cxH)y*9f{3G7#AFPc`+%x|;3d-q@g=jjuCRD`U4)(7v!?vB=b3$cvZ?+i@!vk+{&Mb|1l191*=1eE@JRm=QRqQIi5jp(!0im zR7Ro-%m)l+{&?Ef)im^D-U)~?x36~`P@%DOm#vWQ> z$9a4DvYwY9j5)u>tKUnFjQ_OAX6p>u0eF@5N7zi66Wm_uj3$|RdzrtAh<*_+%dl@E zw#53>elZPLaa|+R(qfU$bg};Fbo-U%cWw+;@dM*!;R^*J<>&1&(FkjU0_%;B;3WO<7EaHOcNYPW|TnL-7k9x1)p%t2}8~?f+$rd zpqGHms~x8FSJWkKJVXKG8YfQ;<*9V+X)tkZX^6hRL9{=8yyJ}CEU?HK0oqSrX}2ha zW-ysLan`uWgtm{BVp=0mHcH#o(l=ZzLUBF`$G%sQ#cVL^D1+6UfB{RKeaV@CxnP&e z(t<2psA3Al#?CAhLe3c0-*={#^;z-U`GIEDL&b*wddOx2JG|M%k3eRroH45_Q=$IX zwBu40(6Qa<=t2=wy4&)ud$s}!LMoh6CLrYvAD^1p>~>E>m0s!u2O1})A@-GRY`KzP zPwsIAnDvQ(yJt=;M;n_jyo>zt`!6oy@=xVN+z|B26$A;on@83J79uIvKDCglUpVa` z?#EiJ(r_stocVxhxP*2PQ+s^TD9G=7)WuD58-Cd}3F|&iid&;{eumukL37dDZ9nzN zB}yUp_Ee9dX*vl7v(6H)`R44Y&g6!C4w;SGkwiPfW=L4|J1DKhC`jd;*$iL$d(!|# zAxLzp!`gD%l@n)#a4&!BDxJmU?k>DtYJ-xx8?#1nIgycIJ%QXsJ^2>vGHn)VkS*7cTcNs6oFxP-1IpA?iok2O&?lti~2Edy#c|n1$pRFe%opmj% zU}u;gAfz1Sqvn6k65T^-@hMR*WJmclSYfiw2uR;ysIcu>e$y>9e|Hd9k!U0*=#aJ? z*pgO&63{A+b<%j|Y52yaLsMdAI#;9}L{P&qn)VF^pxacq_7ua3gB<-w!MIvK5;(I- z&nMnkIRasJ?f$=YBMLp)_|P#AEurW%UZT@1g1r>u1Yws?-*T!O6Vo%!$IUVN(fwcd@HW>f|LIby1ClavIgcEqZNo zz&S4$;;}kx_JXWcocogwSGWsni4$^~#0W9@h$TUiq|IAH$sb#j6s?5#^b}$u4yOE7 zGBK!>I>m|#hcVNgq6?fT-J*T+Eq-YWKz-&MbK6*KqCLcI7iyi2${shea41CYiDnn_ z18W?Mi!^37KKXJd30O0}#D!qi(m{Xj9VgC|=bpNUHi{aEi7s9+Lx~Q}Ok-si7sC&x z3_3ZMBmm*A5_lU}9jN=lr>>G6fONIZ@WH_tNK<(Xbbo>r$kNCAZDZDES2y+&Kfov~ z5w?U24i0Zl(O26bGw?;8Y2bqAAs{WXe^ZQgzEaPg7 zrg6QzNh~PZK^2?V{&fd0T7AT)lwI8W)%uhzSP!$8_w{`rC)I0C@#AR0>UDpAqvrep zEmD7Ej{bVLClV_Q8sn+;E-gL16UdSG>wcRQiOt{WEBo2?{wJYE2*Jm3xjVslBO3WO$z;^VRXV^vc4?YZ$fM*IY?E-;r1`M~?IRb;#;^mvr9=0b+vy0L)O&=!qbTTT+C-SA&nmPW}{9zW>NY^>!}~ z;6FRJZL9p_GqB4z$rboyXX)M?PzH&1-g5h1TgS6OysfN8eS5#KY<*SA@d77f@+j|z zx}cl97@Z~a0$@1_p<@d&0jB#ivQZ*AJr*Ou*E(sroA8EytzuPu1^-9x!xz#l~gR- zLNqPUlUmuEENe>opMJcnX>LJSY^1lHo3}%$Ty@@V*W}GtIYBh(!#MWGE1Xp;eTjKa zFP?R!>Af#f*;dj|Qx^7Jbvei}s1#=Cg;;6&_Vn9#JU$@Onn>0UccUnB?rFG}*;i{PRX(d=Z$4rGuYUe=T`hRVKKz zGG$o%qltagA@rF03sk@KSDkZTHl;XiO`Migu)&Yo$ysORqVqgX97}qY1%-NR-L%l2 zrPh>PeExmYYE`F){>f2sqc2}!5LJ?=I;gRtk?1!s7Ya*MBhdzczp~M%)}V^0I1oXl zgC(1o=&#WTi#`T#)vDA$jB)I&UI!#lxhh6_2X2*^p8;%_@ZbHky67877#^E`OZ^N| z(z__?UoCEB<<_P$tGgodupl?fgO`D0V?yA?N!gXtZ0Vr8BEmG$c)aSNSckCaS+L1b z=xEeN2`>m>pQZHQJNdI_-V}_ukK=kOXWQar@l#48wFmN|Nb3>KOMY@w^*n zsXe1x$5B6rsYFRUX z&F4((nM-rprVM1}YUe#9n?*1gavijGx zd{vJ^s^_UkFbOFfom|f!h~Hwdx!BQ!N-^PK23m53wer=+B^W?Cp11c*d5&1M=&r!bZ>al)(8_Mz;Bn;kyw^@nxH#~z-( zvLURCQ^~@ShY+D|```f==`ZK(z&qxV&>TJBT3ESjUn4N1-}OG+SuvF1+*T@J#VUW{ zNa%9v2M|Ep@b;czMD4uws?Eu2TnSvBu|kdl@4j22yK#u1sjjH?WUpsr_ubHO~8{!CI*3j6bglbKHF#% zih@45Kyg+e+;u(Pp9hj)%|&L1xTXj6^x}boF^wc1A)v;C>7cheZ{^H^1z1nqG#C40 ztMdnkPWEN=<8DYIdjvv3J4l!Te9z2Rj7BiAPnp})9l^w;dhI4*IIH!bXk~`nnlD4O zF*_j&jMCBamIx-cL)>g{5XZkJdedZ7L;BP{J@1;`^kS>qY{914Te=0qx54raWabA- zI`xJCNZazaqsf0x8rGJAIxoM+rV8cJC|`XSe<`ernfA*2$(ZmfVQCIj2k35A^eWVZ zVBM7W?qP9z-~xhn76oDd)N`gCALuGCO%m=|^v0G1zCg#M)=<<|<{% zvOGz=;3`C8J2d3XcfmPD(w$Gn0`KGL3!7t4u*g{Z`h5}L zla>Lr{n?PcK#Hd9X{B7cu^CP08>8NaK-govM0!r>Xt3(sLR7zE^DyzsAoVsGVF2DV z<6`I66J2@nD$N3`-mm1vE}pS^xpNI|JtohXM04fmBY+KY z-QM1!uu*+${T2@Oex>qLXWX?=)Z`^cdycpKe0ao;=&J}Y`xAVJ+X_Fpn*^R9A0?3r zY$n#!CmOEz)0$;5OIcsrA>6|5-mdDq*9mPg5*`onr&2KOUVW`z4JNj@ib$>sIzb%= z9mb*_OT=`XHhrL-EFEKJM~~dQ(w45^c9FACGexix-}Gu!6aDrCA<@FBI8V^gWy~My zDGThO(c1Innnqljh5;87qEGut4S!4+&0<;qP%=v>KdqUpyGHrqfU>-)Q8(OUHc2YkMpi5^z_;vl6wF- zVzN=xp()$TogG(BovjF4y6R8!Nv9~R7j-OjJvRd6IavBtGFchOZc=@x^&WriYvPvE zKT~OKf$3(a<9;G@PSXAAwuaPgL8t^S?^^Lk3%9vAqdF<71w)b#Q_pO9Y8$*UNw@bY%al#kEk(um@q zm*=Kpzyi3R@x|j`JfJA)K$?RRwIcuII-I=dHnZ0Jg4h;~duMR&GbEbMsY8~?W7rmt z%q}ui;@>iQy^kz)@)z2)jgy~P@y|c)-J|b!%uSdh)rp~{#s8x4L05T@XTtlelFE<3h>c@{F zKUcM|+w&pa&=z#;{^{3dQEPB_`%4g+I^oXZCWT6gwn@{=&wmo-1obN-Omchu)4%Uc zKFY!V+E=kiASSX9v-G>(EwKtopFbvxw)tj*J~sz4Qj7HO-yuRgX$@2&2Q{i7MJOg< zP>dzGMArn9lRI8S6b1Bz%V|GXx5?i%d7+FZ2R6{3j8VP)J>Sr6eI%r<$N$?5;|M0C zOlruHKo6Zj4(xT_#u={Tz8VR^?HTRW2c-9N+-MBJ|734ZuIvD$maL- zPe<^5EMUQwCTkVs9w5qcEl9VpY)(jl?D!bOCb`4%%}#r-og;m6L+t_`urt1)j^fIs zfmgY9T)4`+;gI=r3I^=Erxx$nZvGKD`nafKNhxH@Rw6GsMC)nasA*Iq?Wvxf9>e^3 zh(yx@P0q7K&4tpPR>p~q|2D<$o-Q>X*P(X?<303YOcCv$5$sqzpy*!L1SCCmET`4| z^g%N;EUO#!Qs2w0R{cCQ>|c4B08jf5m%w7pIz#@(SQ{)SW_7@6Wn>85AU&BfV)X%&9q&*aa-Y7TO% zPQe39wAcXcRQ`giiKQ_=EQIas`V_GIepNs*$7gXv$ozS!P^-16S{D6RT&9bJ#6cf6 zIap93f5p^V>eeLHw^$$I7Dq#VMoAMxY;x*Hi6CR$jiprBS3B}-WO|VCO)(L{JC|ja zx)dzV?siR*f;Zd=dQX6y(hAtO(&pFXVY=rn9@&nDRrf4e{NAC@=*9srM^+A6Y$RIt zc(FgUn#tf5pUYdja%ZfUYhuE5#uZ!YoQ4Kob~r-U_GW_39+bT3>p!p5ev>%WabT>( zlLw8XrCQXw0?=qmZuXnx&XUDhv!U-yrpxip!b6Smv=>>a1-qT9+!`p(YUkXotXN-0 zx5|xZBsdGp)bk%GX>?ew+bNufk|Ddy=_;)xck4UF*(%B`G;|GKTyrykoOl%$@vB*= zt*j86d;7Qen$qGB<8HXs@2nJ>sIuPw0trgcU!j8cNnuX&2@N}Z;agWOFpx&kRePQm zWsx5M%7aG0dGwq(^^>n;!Zy_N-0(M_YMNu4sjChPc3nmxy@#u&(rNLVvqVLf+Po{OC=6}*pf)HC0TW;Iwa-(B5Db9b7uK} zLr*Rq*caJ|Zo2m%sTI|Z(Nd`eAHE5$q$GJ!5Z73P!L6hL`NL|-t>3N1+qRio%glAj z>{dS$Q^SckBPaHscWtv1g8BVVq~M?lit{Wj@u9Z`^%z2aqed*dMveL?(M2pzY)OSE z=-$>RTX7DOi;f7#sUrui)sPXL=6eH-yDQ*RVT{b)ZYcq|NXPMRYG4-00YzW<&KMR{ z&R&0&o#tAxozG(M=K@vpJdV!Y-s%hCuV1Bu1Q96W zOEaSUA4&luUTOm73F$MUhl>+^RrJ32?K7(P!cg(pvuPQ@|B+A72(TlUKKW~|pW4T2 zQS#Z8y0$2}Q&~I6)8csdCj>@;1#7PYMxZF(U&FZD3cWpei}Bbg3DsXPG zG+a=bq4xy64n+XuNDK-r&7oCbyt6wXhGxdc^A-^aGFh)#sf-W}mvax3Q3)d2kSnd&YF9H9}+a6B2$bAZ0rT4+wU<&a(iT_LH%1Lo!ulHITV$Z;5em z8IV#}Hv>{~2mB{Jf{Fx&-CtA`ZqqUb(AzN>{i)BwtA$Eew^4OuOwVRPNotj;42{~* zZ-F8B-Z_3vesISDt$P+C(Y0Vna|c5GlXL|n|4CRaA-DanK&A$Ny#yvZMrqWY8OyWh zIWKwKvZEh7L$NwkTOz`Sj)%9ed>0na!0ZoaZ*?O2FQ+1y(-UnfK`QhH?!(Tm1;$R8Gin*9s8JJw?%=*s%)yGzX^l#^M=e&bl{c#fm-4OsA zR9XyaCJO22=cvZuJ>zqCYVEOoh?|^6ZruiW$f;`3NPRf0VPv^W$qLai%&TtTJpy(f zXr^})CcuLgI_|SxFE+ASHaQBtC%C2{T+zk~KX{6oz?_Fsmd+fHd%gMJNF9wEz=$+5 zmj7ZaJ2rrcy^XC|5|8ytI(m9?2iPhE^h9)Yz1xKtQCk#b7$-lp)1HTifQL0c%8Lgz z622q&86(znhcL&!{|$v6LX$y2<;i>|=&NxVA$?s)95!W7#9^d4jO!9CEK}G>4c3^x zUL{>fF7Sxht#fVsq|DM?|HOjO#z_k4m0W8)kPRVJOI`<0z8hUEH}FN=#p5Dg{hm*F zV3A&3Md~;k(i_A3K>{4xn+$wgoNnpGSCXXmT=S~Ko#dN`r)Jk$e zGmUdEOnmTr`lodCdMi&<06!PVV-_52 z-CgI!n2*%Vf@qUT3N5XQw5AUpT~5buJ8qYU4)`Ovg(>G5RGlAU5X4|D8a0lDzaZo_!iRCdrysdYTTy3?(x>(~@;l)`=^EcbQoq-m!`a#;Wu2$7)w z4-rUO`PX{)BPOQ}13s1KGUY39gX`gtJ|3konw)5T96qRUIAlwT$6GX6+ZCA7d2cap z7dm*F2ifR$n@oB%nfya8K|Q#`rCQj;+93#3XLlw?tx}3P2s%D5wX>hC2x;^TVVWyn zv27s0vs@#u%5nq#GV;dmPcUa3bBJZ#FlotfX^>J6H;B?v2YO#CJ1TO31>cehR-#?) zzpbkdkiA5XTFTG~`Z$2+Bc7*bK~_IdQ?rT=WZa(pbG(}T>hM-Ogn|fF#i1wVka+@) z->H)*90SQ=tzld3?e_x>hfNLdVP;EbCWb7}*fG82QLRqW*_K5d+*aRfSv*ngZYWoy7&CzKY`|$ua=+&ZAz!Z-nNYKVLx57sEc>Ne)rqzj9$}Y7;e@31-eb@W zhMs@;g%4`tDI}8Yb-6^h+J>j*U{64W-GQeLx{e)c{)$SDA>~I0$>xY15ZJZFlRGI5 z)}aLldJV8WS5da{KYWz^?8un{o5(!aM7r;W4#pd#7FC7(*@}}^JkFpu?X&rTp%&82 z^YilpE7Ah*yTq?{$s2AJ+! z)=!Sp0N%#FHxzQ1e?fNPdI0Gts?`FZV{1zx-d%=R76If(22Vk8eA@$o){3|i*hH+W ztWN-igCHpm6O15Btw_c)hw>7$s0$r*YxvCM$zlL_eN3^HM=d+o;RW9l=7tu4gq|Mq z554*HMDPQ?w+mIGYtAL@m!yWM82bx6v+Z?6k7_(Pfa>(~X|$5QKRfdi{TmnM+|%Wh zfbn>FoZ~tV#YkCS6$%GRwhbv1D}kWBMyr^(A1lFiMo$8Qjvf*`2I=D8*x7eq0LL$z z1~;ZoQc21CHDgPper_?qQNqoEA{8_+P(Fxg_k^SxB!8lV4_C5+C*Nd+(A{=hTL`$Cgv}c#rpaNjbcY&WH;Z zS5|F;G1{T7GNszJIeVk^QtMEccjlIQY@`?}WnUdF{p#HNM3?vS-2B0t#I??Ae-|2? z;!m9LopCqQ{Psp?RBw@W)AFaL+nzA(d6S$*=DOwO{f?JCcc@46Y!aPlXd})Btg3mL z53|H4^t&BJIa%wNDDY-YubY%PxrvUxW&D0FnrmIBmbD!^eL?`bpjH$Gn2cWE z-F0re#=%5%*G3B~1E4m}aLe06@+BYY(r{n=U^O0iC4RxS9;{WKo$?fmRsG8L0*0D7W+Fvy!?6xNcjU_yGpPhO-YN9;Q;6rx$ zu1y7e+%=W;LSe>?(tMX%g-aA>M-Oa5Gyl5sZP7qSRipG{exC8*wL6(6I|RsJo({qm z>Myg&zINhwXv5G$9_+^cU5vgs_@H(URkUEGOC5ScGZjdE__t*@sgz*Pj;^HEW9@Ii zZ&y1#a1W|Q0sW$%4Dy=9&u;3eMB+CrJhlbHj`>+D=PL8B?f8A&GPzK16eGRo&opRl zr|$@qwav6cqk+?+n6Z{p76@X-&NxiybC`$TQ*JHeK&&(j%Q_!AwzT1}!Kj)6#@gmq zX#6AhaK|&%s{7BaQMc;0_+;Dq6Cs(bGat`{z{4Xdc<<72h& z7Pyb<#)N4tuAU56W9ixHUp>JrLx_s7NWz!=J|fYqV9%ulM?=S6Y&rq+4YV)UpTM7y z4RX!w_lrFpqS#{*u*yn94Fd@6D1~*K$Z&&8q@ZEMBhftC_OG88$yn+CHQ_-m6|n;E z+d1~n)LZ}~a@0aOYNPi%1&WaT;L!}SuBK>&58NA6H~K4?0!jib9j27@M=10HT+!w| zA_vj8#zzh_?>^@KW$#qS9u{l;mO&Q1_!u=y)2!-evkcGK{h-!yw{c(t?YOyCQ$MWg zELhmS?7ux;b-lL9y^MjO-^kyta(ti8MBiS{-ngSL=FXYyg4=I#NjKZSQq8grxaMBJ z((ul95~O~`$5v`ZV%V-V3Ky9x5T`krTnuw$A`kJKhD&m#2)$G32+3hO6FbBxTA;tU z3qqpxTUhUg6b7nk&P1Pu9g*1FXTzuNCSDbp9vt((?Z6pK&~JJPYzt>?w!EB%Wk=WA z%(L1yOld|fVJPDq)E*CYwmc5}w8E#Qmn@l@uHhA8E$;TCwHuQ5?~-M9C$Hk;ZZq|Y zKY?V&W%Cw993(p}CrmT`bQJzvK20k5+4i%>RR<>-CQv2XqcFbAe9Y~p`)@+e_9S%& z3n%2GT{7G7O}9*er<$Q6$2{(F}u7M{|UFOXup{{eXABCCidhG z@V~i#vV2JB(^L0sVJa>Y77=841@g@iQM}w zd770-W%q>5E43|DOI%vP(KUlJO)^-%V~~RwVjn6swy^8QKC3e~LAi~EuT7*r9#}p3 z>+ya&rfk-qAL~SnG9ex3z$)dlJi(;1jC$wm=A2}S?_U?IvLE&3yO2-x*FSM+6sWV-Vim)9rkm@ONp&G^zWHzx$Yz=9Mv zEa3TubVN9`QVHs=04aP5lu8#1NbX;ZSmS`sN8z2~QdXO44`%3{>fN+|jIYi&wN5i? zbTg)DEjfODX!s}sRn3{__V>=sjrUOm;ZJ1H&63;9+c1>m@(HNf_TC?;@A_Q2Yes)N zitxD(-ay-k-=Yn*?T*SR0IyW-tU>C|q>y?GEV(I2UI3qqHfwkBMjWx!#;@nl=zjmw zx?~S7ms^{-emd2VkP@`;3P6ul-H7proWW(hYyBp%j9n>z3#rU%(YzbQI zE~9J9QkD8mmd5@*P@w$;F1x}@N5)U{LG6#}eBh(?t}bY#8nnbK|4{rbM$sy4d^68# z-0*M(S!U3{GAko;w@SE-OTCk*3i8Wey@eYzM#x=zTDZEosE*8s zm9T_`J!hCAT8{5xtI_0o)gqxoF_!@D6-nE-Pe^6N_(ywBNF~v`N5@a#9b|Sp zA;3x3qRaNtYx`=)R&ZU)wn-B_}Yc#bMCSg=3;ldlA!D%IM>-v|1v%C zP?(kNG(>o{?=)!>yCISiw>pjgMNHpks?jKQZSn2y7RhWY$E?%$>CX50fpl=;?eb_V zH;o*2!`w4cxhsBp?+mS(+2@YGwbOa0gynW2RgTLaY{H%*Gso+zVGCklTVD3IY?03J zwAfmTIxTJ^ihH*`GHs+hhY;eXdoIM;JD$(MQPG>v0mjv?J?-44Ub}Lk=3uBK%IPKe zSUdoV;mjuQSzy9j_s)WFh$YKps9JQ z;iqs<25Yk%MAa!``(|%r&64gyeCyO zpNG=;h}Y^%mi~W=OQP^LV@|#cydN85J$=&lF*D z^_1klMOMap=F#d9khj0}@D+@w?y~*%GS@w+Iqtq2CyT>?q~KVI_8RHfJY@RLHIO9K z5NZ%JYuLH^^m>fzCr7|Zom8vEma=9S2oXfVkc3{g7#$M}*_R#%SnaWINmIXi zq}~0EWKxb2W7L~zEgkTy0@*~4_Z{6AJ8SJVLE|%ugoGCbr?k0VH*&N({K|S$=B2KV zf$>KdkT3q2MFuw(rW%^8ctk0OKlLK#BkdeWU+-Nd>>#+^`;U$cij)GS$_1@u>j490 z6*K+?+6a|vxtVO7clLex&xVv$_1GWo;=6J0!X<%aQv~VU=8KIiH!?KdFO^6kNvVbB zXN{TH&29*ym13(8I=H%T+`5nwmB_QQxjryruJgSPF?@pjuOS%D@avwUtxd_`E^BnJ zhI{Lv$#7Y=hq(ZoteVG;XLB*psAm4#u^hVV*(V9Cu`@?~nI!pbW^K!A)J`+&$nrJ= zJoQUG<#4>dB2I95HY>e!+2$n?q)|9Ukq$elZuM*PI_^vS7&@R;_lq<*nKL?B)a1oZ z;FAFEg6IuoWu1uXz9}cZK4QNAw0h2nr$7$hKyu^9)e%b)aZ9P^&CTu-wY2?-0(K4nIQz|uxILxIQd$NP|MR{u}#)lq0)exs%!>5F2| zNNTMa`X_zrdOq34(&f=8bc~Zh;(Y=tTTc`D1rQ-qc($5*&ZTr%vBWx@Bnf=zvd$!H zGbolBB}<$3mk#N8JNDG!F zvH~@hA10Fr;FVgs&og{0WNH3j{>8`qxPzy(@dY4de2ZL2!*U{oM~Kcq-}aQ^rF{NG z=Tv}zdZz8TJ@536UM@|`H~8-q!ML3?9zzE=e^4YkFQtqD1T)9%FT!qQrw^;$YWThG z@RQOJ#!se)^R+sj^~#01oB2a6wg#OM<>pLB#_s6%vh-TZL9hoj3RiFl2e6~fZdH~S zz_@*uZ*B$Z;SRD)Hs3BQ*}8fwop%~`cD&(CIosH@H^a5x@v4lr!yj1>&&c~X{c@1j zC%0g}Xv-byt97awib~mU8|SUwsT{fTrQyT&FW*c*wq(VKqXMa>tuM0m`Jg)x)Ii zPIv>Uo3?1@)Y3CkGc(f}qib!2ijO*4s2w^!3-41{cgh#mfDM3~KLnL3(^JxxkYEIY zN}N9r04cMHSdEXD;ju8?9>m(Vty3Nml1D|5|B6b>3Ei=M><((== zn!4pC6+`*_G8#F{_rD%_l z8emcTX{RpqVf#oxoy840y2aVu4qRY;mA2>Hn7U>4WsAih-Ac-9KHO|Ojo%~f?CZp zi`Gzzf6Bs3o3;#4Z4qGR{Hu=o3=&U#_oB5>o8Md&;FGao%jnn7qGJmT-d%552-hag z_X0ccR7e{AOPRPJd*$s0t5qmzHLZ8ZkAXJ1pzRIklGDO!i#vXb(0*q`x2-K%0eHP* zbgbTP>?VDIV;HB2PWEAM?lMVoF@T576*Kr6x>Llp&Lu}xV5%)k>HO|G1s07NM(pLE z@}g@x@aM|0EJ<WMou21k~C$q_$nlGov&nQC}44E8EfnAvq>#N8|n-V%LAp|g)N8u*j@DJraZ92 z!M^j%z}G6b=|e+HzeFQ8s&+Fa5XD(OPapWh{mL?03X8T58?0$_6Izp?RGNZ4YirN< z=G}=+Sg#{6-Tlg{!XdM^0vkfTS!GQl%qR$3M!N}s;P#;sTA`6$FFW_IH_$+RU2nJh zU9S&0Z!ZgP4{Q@R-mlv>Peb}|ceZaY<}x5=`bSBD=gv2;0u;VgTgY1lcmc&rAF!l&VKWOsbZ|4u=<{3H&f9WIA= zPpZ)j?U0Yv_`g%o-IFM*Id{}UI!2)_4cPx*bMr|OXfj+5>#j~wjk=@m-|;C{1L3mF zAQmvP=S~UZE!rR39!!bf2TBCfZRC?68Q{z_=_E z2l5P;hp10Sv4$s2qgfUZe3xOXhyiL+f@(f{7$#l!3LXR}&7e72m-HG{35*U_l}hF^ z3;p#cfsK`*TERLLD=r8UjFqM-z%)+n_<|JuRmS!sFLfT~j;cSNFfCUuroWeXDO?e4 zHzni-i!rtqe!`zqh5As84tF^8^8*%SZ3q+oufG?v8GfP-d@~7wfkZilsf4)DrmeG z+Ar9WTuI3fSvC!Z!`}9k-w7^v`ULDO$PdM8vCK3QnBX|eJh{Fg#V0^?VpXVfF?Z&X zA-b`qaAd#$-T(smqIP1GT6t~kOk*lvibJumUAy>TufkHe;Pu>kEk=3R%6uV_FG%4% z{-g}*gqY&03cs)tGr=3!VRiyvkX%;sG4Y0C_~qp6F)+pL6=9ab1s-6WDU?6_^}nSl z6ys2u0xCftm_@$y>7zuhg2fc~(Hll`(a6V)%nCX_EL8da*WcS7`e)}-e<`tTP!GHP zg-a##87Tky_cm;D%5jA{mhK!%krJ6WP?5tQBtVR&iA!Fycrh`Kr_UFmb5oVR&?q=$Prn+SKBKOXp=gX45n{4-Ug2A7x8v3G#rDlw&%U83 zFuEg#C%>?Zz1#8j`QpfCZAzaJU+9nzW(+AQnWv!FatkrXLQQ?2k!|SEDQ3(IDVdP4 z@U5HM@#XpA{$}lL-+ole2SY&&;%Tqmji*n^xYE@>@61j zF*)+0D0U4Tg#ntcU4|Koup@~%t{uBl_cS+5=q!A*7U63ye?HwtZkiu-QPp|CFR7;n z#db-m=2$}WoL~jM)+%3<*N{0w7Qdnzp&~Z81!bZKtq)bJn@HnVM(`$9I8T+|e~9H( zmAj8HEMhSDZz|~xD(QEWI`Dyf^B%BJzFWf1>-+LFJWWxUAzd+OKZ~Fmd zJj2a#oTq~6GZZVz2+gF(MTrl!#UJgx?E1sapfG2!dyn&2`9x@{MEwtNqMQ?Q{1&39 zeW<@1{Xg)oOIPfE{ttsqa;x1-1e!QX{{sz0%@u|J!iI|{lPsVS6x0aX;alRq5By=x zX88Y0Ftg$Ri6|z+|7Of!**Mc$ZGu<8G^4OyX?}_B1&(X;L z7oP-zh}MwC?8yILtaSyfX2PJpC!bXNe_)#qjo1;xQupKk0Rijy1*iaPHlr0FRN3ps zPqs5Jd=IY~L2pWfZ*;r9DOWMAO(T!s!WSbwj{gNTYZEBa+VkVet;3QStwEKc2#*nz z|5rNat+*+PdrGYd`vOKUJhY7HKdnBFFLI_{tWaz>ix1icMuHJPc42V(5brd>>@89_ z8kk`|^D^99e*xGAV%05nLF4|uy*B$kiTb{tb-muQ`Mw=Z`aVzka&|2GzKrGgzFoa? zOh0HmcKQB%n7>s^pk4krT#0n$(x&J(>M%dK-Hzq@Od9nA~`DEXq{a(fbD#G|3rrf(okU zjHx@)HU3~D6hVWgn7G_@?h5xl4XZqnVowjY`Uv*O^hPCd~n|s=hZJBF}3nci`9-@zsYq?TxUX& zczaZM+&`(ZtdnLm#jj@3C$HMIWb3)yEp!DyPKsOwHFb(34@pNDX!?AtbGYL51XHaO z)}Pjrv(EnnCo~Fl>1E)$w4TU~o?gY(n|_vBY?U?bI%C$onmB!KWbeWcTwduk(RzoPx*B{cEgEM`Pd(a* z<3F`l^u*G?`a8~;g(D6OOzhbtq^?b2=@zRLJM9ExDOHVSq3?1n$nzZ_5TQNPDz{}Iiw*fRv?M=(p zte0_PK=Ki3c)8z5pd?%RM_E=+Rka{Jlj@jn55q`oWxCRdf8o3fQNf3C0JXc`Le%y{ zAo=ghxD|iq-&6|A{>5vGdIiXINuN(DvY0hgoQU{rsWO=p22W3yQv{|z~mi*rv!v_dJ578@% zQmiLVS&CBC_n^XLVn9=Z))7K8ScM1qAVF(PYgLD-V0~>a$5k0g!}QziTv*3Po9CDB z>RIk@5F#OP=0#|t&Jr3nNc_s@gNfJQ)1P@~Sue~x6nkxrYtf)FAEKOzS1F1X)w%UA z$rGm*)w269?=!M5>}t+dOQoMAXDYmG>EC~*ohNrut|A%NmOI0^m5a)A_Uwzy0>?%_ z8D+5AN0ackH1HjbyvA~uFSKh#AaL<^xkm4(a=rl0K=dp=yyRHNH#0(Ahon`NKeF=A z1Fb6u#1gUIoqPO2w^m#BTY~>V8$#xpJo;H+)LUD(hmD72L20d~D&Z$Xb zm3`4|i)JUh##MwuD;eErNG4F8>T-hb)4hcjU4Il9>F@6m%kOI*xtnHBbL?hL3WYW- z^wkpuleJSFlJ?)7ET0lvfLr*oEKEBkRD{l&A!7Vzf8go_Mt3KLh92`BZRpvcaSwJg zKbK!YcQep;0@PxlXN~!{RgDXMS=ctydhlLv2T`nH0%=BtUDqGFNw{5XkeCz;uuSeS zv6WLi)&&+4=s!aj)uXbmI9@NTEu{VM`_uQsB*cM1P(mfI@H3JjWHYT6T!9Q01o{c)TsT9&kpY|7Y8H{^U=^ z3KOuIuft|V%NI$^rZVT@eZjVWl=blm@aFbuL;i#WOSZ&*c|U87Y33CJYPb7*^%L6_ zlR{4#SNv(t?p#Ng;S0MM)nhL6V9Gk3r_V0>F2QS7q3b6~w#}w1Qx6+Yt?bHA9gd!o zkH+(xa~0beT0{2pLs@G#Kgne3m2H1!0WSnWo6gGrrFo%Cec*C zVh$4BK*_V~vb)vNj4@>P-DOK#TBAm>1_so~y^4r{yfEP>$jXD80$E z=OoY3N4hQh_|1;ppL;ORMj&o*afSfYe3o8&B~B;zkbYwmrH@m)pS8_2gS1dWbCj*r z?!)oaakn1I;{-@^@#HzV4OuzCZ(ea(2B!%YT)R|zoaysQ?gx4mT=N{Q z5zX=+T}`~=9|RsbB0CABxxD_kb+_%(H}>HKj_Y+ z-Zf@f6D8CGuK@-+9yn=}=Ae=T3#0w>a3`;SYQOnYapX?5x+u{3PryosR0Jo7jc?zG4jje3XxL`-RvlrJ9 z0ZuGb1r_V~lqQtUY@*fLWU(dLa zPOi9Sc_2|-cI{y5*z9FMbV=-M+1xVUj|G46nQQHUkYG;Lg{~tl36+gylAK(I%$n>p zh@NJye*v_{jM)KIO6+4ZNGGl;19RUYHHQkIy!RQCtLt)Y=u53U!W1Hx`i7DCue*I{ z9!kJ`D%{Mw0>m*4dw+ZeG9q_I{XS{eQaH2g7D;;Xd`fo#{JJJ7uEk>d_&s$y0{^i? zW-$&IyKfx}mzIz@#Jl%&sx{jc(=(OkU}d6x5Kfl);P{r<0~$zh?148o=WgAU8v|O8 z=~d^5sSJ_WWhGfybsGr=i9>-q90=T^v4xUna9)LZS90-I?*81|P5{jz>hOg;uEhQ|z^wK~~-{BbhD$R8q8RiJ{(d!Y20a z2`ikHK4jW@%1SlLGmwe9l=4zQxvw?I2sxzy^6BnV+b9V2$^q%kDzv^m9wS;=D#vTUsV(66Bs|U0YKEpmbSxNx>Xf7td~l zlX3R-lB|!gR-ugUQ32+r$@rv{4<~3!LRSm!7 zy6;;%c}x-EoA@S#=JN>MRwPe6VtOj62n~t+*kzAtxqBCuPq5O%XSI**wd_tF zmFKNBDU=0mYVtmh?he3`zl)ijI7Q%_S?4?|TGr%uYlj~gWqq2B??TPUc2R!fevYdX zIwQI20ToF{&Ais2U-7r>K+Ry!T)gxcvvZ8VVaA0@e@d<-D@M0?Mkv@z`LVyN?27*) z026f7BjZYKcA=a(8pgOQR+Vxgbh`7~3BV7WNz;0HYH$^vLQ8U5E!ZCRA34})XIP#6 z{!Iali)>1Jj79U+!#^n>Gz;LB6ngRk8HU>0Cbzr=@x&nXxwL+Y|EgZrCd!&MJ{E~szhB7WjzKp4|%7xoVx)_b%3$4boHv<5zzIno5c7xe~L z1~$Pbjf9DPM;kVX;9a!yEB=YMsa(KgP{?E7I?{CZvU_<3W){}?gwfe${@wIXqGIpZ zN_vYaG8219#>7*0g-VB^J@M**p0cU1i?XfYLZIH^;M&DgstdFu0U2ovUG4oEO1OQR zxXc#zi;YajaG+A0dz%%7Zibkt?-ad|G4ZOjpP)nv{AGTy3cMD<0m)fwAgPuWMcS9F z5QXom!<)L}!ju~b(~DP1p0&kbvQ*29TAZEd-)VJN5zp0LO+b6+0{INdGjABu6E8J< z7m6(4HKq!FxZ7YnoV5y6%b9Z>-GOyUqHt7`0rXnGqf4@8BeXJi%-hK2hC*iJZ<9;yCz?%HW-e!H z3qmk*g~~qo+cE_kWg)~h?Wl7mgy*wD3%X3j`~|LvLkq4bJDTXq^7+bm?gn)^2esg@ zMg9bKyPJhq3mGzoBg0Cn{4sRzsZ^C?BlbD`a1dddW*_7^dzG-Qf$)#G(F%sU#Kf}f z9KoF5#4ptV(^r{owI8p(z=?uT7(hn07TCOBI5wv+3MHbhH^OyKBsRxpP=tdRrg19| z-Cerh*-nYL;M}%`+VmkT57$Q)$N^zkdIO|o*P3KCSlj%+iNH)?DN6`NKgZXD4-$Bh zeNJnIc#w&Q+k7GAIK&|cBC-v@LMDPW7aTyXe+Bc~oUs4BH@|O~amWiEa@0I(D8% zLGav!!EHQdaa0VK>Rf>{fqWPWI5k@aLr!Bc*i?$0_Hr_V3WA)#UdtZYb_pRu-qDC9 zNg)P&-(w`3$uk8-YQw1*v^5&eU3d5BO|JpwB6U=|wmej3WD4KxW@tR+VKl2C#9d`0eU0)5N#IWDk1iuFh_Jg@tEvt{sObF z1_akF*(>&yBLyuPo$rP1Jibv5&@sfXoGwh9WhA^_DSw)xNUIrAU}Ju8&f?`*ogF%d z$qwHE@3C89)Wo4WB{7R!k=o=c<@YT0DFs%vymr(TtZnaR^8S5rt~5F4Yy}1C&Bxfi z6@QlI9vxpNr>-@6yhGL`%trNcwm{a;B8qr*vXBqtu87gy>1tU{sW&_?=fW7C5H3IG z+I{kCM3e{o=(;oGg*o4|ZT)l; z;&Xe&-Hm5ud^>;S{UI{FauN!bc}TR)(^U+ltK0g3!CjMt`^RU#~z$3 z-XfyIbh7wr|K;m2A-{XShJlhnL^td1HZKF>{H3dcwXls`J)Zuqj)ThQ1nNC8EO8v- ztUjfO{-e=Df)XSGZ(7XU6HYNdi^3~>&Ee#_Bo}j{$_9a!ep;uI37_xY>^!bgS!rhYCN;83pj&N}iovDt}F$aj8L92Fb6eH3P^Ergia?>)K zv=Bpt#YY`(_~%|0LM&Q%&E$mti59ZAKyO-qomC}TJ#q=e!08D4L2;L*+PFqW^Q>AVUlV4Du zh){O49bo0N;Mw0e-~p{_p{s`hIe0bkTAp!+2hP>v2I)5yYjfv) z)z3@%{I%Jy$lUGCwAV=d{FSX+-M>AbdsLY#8^+|z^@hA}CZQ5+?PX{(lZS91yLs=s zl3hfq%%M+GZD{#yrUt1tYD9Pk#Lbsc?$2j$cq79!d_@CDZ=EXiH{_GSmP)uoy2Cmy ze>6z^d8M7m`Up1%49~^pmYdi2%nS-TI8J<7Y$KUoi_mH`HgGc%^GX;$dXNECv9rig zbKF;E#J46{wB}ihQGKBIaUI3<`RK&rfqEjqvURqh9P5=7@wXFUZHlhMhNDfwNI zx*C*Iq;~YT7%~+K|A;Y)2&Y>R2ccb9$07dvoK}P36}NOm$ey9M2}V>;q|O5W$Wo&G zs0*z(?o=FN-)a(rZ$1surhx}>1h)J&t|&l~&sWx8i(9`|Qi~+ETITRgvTb!~#+UU^ zUOBOQ+xS$z-xQ|c?1sC3C4GXhF}E{?Ur!j)BTPt~a1)qOtLL{5;X8c&0M^QI9U#9h z`OS#Fo{i9k=ES0l#d#EJflf`n2~I}F=%w?bkX!J8h<|n`c>gZvT4*DZq5C%*hSiW2 zaGG29HsJn@y`r1wmID!C`YSeuuBIQp$nfLhwyZsJ!A-5gk&(vyPziP1g&saw(;YSr znGFVU%^}q#6Yj?zJIQ^`cUg%4ZYZDioHCa2alUqGO-)it2l}&Gh zbv~CfLxXb_UT`lU*KhUw@z0-VSTgx$nRHfV75`4F%&6Ymie5RxEkSKB{$O*58Ii8J zqL6sg{rE~I45JN^Td(3OQryO+W?)Y#}TWXFJa69^6E86YY4qI6HfhtN)8%8Le(sU?y*RIa%N@0NA0s2lt4%kZwp~+qbxXbFZdaM&n{?pDA=v!SIx^^ z@fpYJ4qsWqJVDzY8Qe1awXQUjMvH4W9^wUdEV1OmwlS0!3lJ$lXGeFDQx}jBG#4H& zW21SY7&%2%AtsP!!whV&#~}-tffQ~`QRIO0!~tE%?YX=ouLR~ji$=T%$qm_(`8~xA zK1?ziI9Be7hyEj4^B7pMC2TYCki6~(-1DCo$ZrJ2R|zfeCaEBCzMKA}##bT@yExBK zv1WE&gaD2+Me&$U_@bUU`P}CG2ByK4@Qb!UpSI35GLFYbYCO8HzJ;N=JS}bL`OSsM znmsqBF6$wjl)e&Pj8+sSV2_Y{HMdXs?S-~!=d&JP11laUIWlwpWqO@bI|es;MEJ#xgnbFm|E5wkeit!zx>mG$((DLQ;> zWR|z6cCzw{p8J@0(zj&M~f0`r)p!W zF~*Kh^Bq5)r>t@t#9z4E4lw23#Ig39^}$(uzP*SW-6#0a(XwF^uyOi)Vbalq z*O z0AapuC?3))gU)FA(SY6H)+p0-dOF518$bXYb=(|c-?sz&XnGH>(Qt~F<5s_rAu$eY zAi(x>GY%9Rey4#MSka9`rhB;`pCdZ*QNX=^$7PdS^g69r z)2K8sPx@_I#4g*Jzjst~-0|`;EEi6-k#ZF?F&pjr9l&q^C(s10nP9W0YkD=wb~T{V z(>wrDu48ni_d>Mdfr@yraXPA8R-8rezQSs3jma)M)iSBfJqg<~N#}}U#}-dUL9G+J zhPR}Xha`8|MegayN^Bgz(yI)R2Zq0d8=pM?`UF)3Msz9FD$R6O1RcV6Omv67tnbV- z>=Y&XdCyv%)X0phmoFxM;;Z9I#J@=Sx#ha;rCi02?kMaOnZRxsu$UU+*F4Dg{nIql ztPSHl#&!e;3VuU0jKT|}U){3xnB2@g%o1yE;;8BVkhqz}*4Q#Wh{LTRJX)MECv7dI z*;YBPBq)4lwPnfMQN*?mhwwbmr?d3@H9&JSs7piLRl1ZSnc%W-iD%z}#8#(Dz)l9^ ze?}449Y)@g$j1^2hTILCp5utf#B&LB8%J^G?{Cy77nV)}ZCaw~a+0>SQ#Z8kSR;Pqq#@C7*LJXHHP_7&270DmbDIKN#ghG*i zMPi;~18NiGXT@*hjhWITwGw|$E+FTTj_e-fh2{^NUR@Trc9kQ2Y+0`zi~xM*?^5)^ zyw=B$$bJt(cogX^4TPOrq*@hNm6IC90cAz_xB`}=eOJ*$!2!w7Cfk@$&wXw~ zbZ|Al?gVr=iaR8jsp!AKOEgJHLM z&~Q~UOD|?_-@4KLP{YcgxUSrO?y{V8H^nO4(1}H=<5S^5P8GoML!_SsPUJ<^E0rqmnw>$`YD3h3gM^lqv!$n5h~ITM81Zy#cEG~p?seJszu&76ozr7ZWl@3Pl|t105pg>eW*u^S zxCxd+cH$mC5To8`LM+5W@skx1I)~*e zi)Qe2il>UJ^eYJ>9^w&DV;)rU5kD~3`AjK>qlN025aLw&n}IXQ1ztUmdR4&drVnwY zgD04D28lN;*_bKotlqGQoj;K$&j1uG;_pZZ-87z{u4}nK!)U}k^$`Efnf01DSdMP* zp=D~{?yJGJ-O7&YAL?(phSPf37_8RR!uRwZ*{h<2F;?@%-vX=v5(cGacBEb#!1UZu zr98g4j6DWz4rI+#F0+M3HSUWBjuq&%&Xr@`R0rmu^S&i(vv+Sr{W$icHWnn7Sz|M2Yh zdbENdd}MYMa!e<6skaZyzh|n)#ar;7gy0a1o^Jl;XxpOX@C$~Dz6Soj0LF5-><}m- zRjET}bM9e_2Ny7*!`D?O=q>Oed*>_=4iAs%xrsvz_@zi9IC{nkxQroU(qM7b z^LNmpJg!2n#(qBO@enl#fk-zX&a$;)9}6y;q7yobjxfB+s<8wx|qvo)MwDu(t$qv+e}=VRjlsHA>-qpVxup_kDs4__P$X@CO`R4#@UyU02d zQ7+P!fBWvDJnlQ-G9d%6ccZvK1owx7NP1x-C#vFffs$N|7vXq21@%F>k&J#aOSJ2` zGDh9P{i8IkJ{)>qyTd&Z5Tj2gt|N$zL{c@q;;N~J7IRE>GGU8^kmWlp#?O?z zW9ldOJx*F_I*lM>iSPymr>}Uw;~})a5Id>6BV0@7lYUAmgyRq}>2fa-u3eWV_->bW zd&7G;>cr5QuO*WG$hJW`EiX%I-twZemoWos*#okhpL=VdGEddK@NZFazGy}tVrU_;>41RHKOSr`*VK{e5r)B0sj#n%Bf<_ zLb+S&{g0AMN0WJ0gs?2$g(w9VxWX!iBNPg1g06?&$T1H?SFJ)nrY&FL+9~+Eh_$y@ z@ZKGq2AE05R9_ay0+S*>duH+kS&w<}2hl(mcHdP$t2t<;hR5F#At4s&P@zX#z=9B_ zcQ&}EB=cz-tr;ztz^S1Q(r%3MD$+5uOM)sm8Y{D4p5DC?1sgo8O&gazYrRP(i|qhW zgz~J~2R%LONohvo5{eckZKr+h>tf^&09#i7wH7%4V4GN>pctKixnzT1H&yd6n`ynb z&T}XM36_NNQF)!{5ij9Hmgp0X&KiaaL>nUrf#|e6n1bVNxpo?ztZW1yG|$!Qd@_<# zchuoW6gUReA}@#(KQE=#I*T}5n79{q{vpSvn`YzFyDAvSK%lIUiD*p3g1^v*$zCO* zky*6?vjQ1d8Y$&S=7YYJy<_sY|K2wAE}PoRXcofA-6l84n*gDj)+3DM#na^c#ogUK z-IvsMHW8H~^3j^Zn=Dwau0`yO>K9@ful!R}w4W27ctbvt+?@}kx??f%JKj<+eYEhO z*|6qy_ix+lh5;kd6c`y8*Ut%K{q4MWivpQyss$w z@Yr*-B%~a)lg#h*TKe$W6)9#oG1?U}xvh2UUz+$ew}q=U)t&xO+B1w z4=nwZ-h)~p!eeKKm3GPSKB;(PIOYQ+m=Y>*80o^A@HDkyPT3Nh-R?AwLFKTnySSl$ zD=QVQu@S|O0xHGDvYa<9L?Q|QFQ(oCD30$5*T&u5A-GF|yDbphA-Dt!?kDSR+zVOr9r3 zEoU-HASamG7nqNpben7}uEt`Pr#{-*akTb8Ma95Inl?)l^ljFuDqaP}Hxs`DNm|JG78&D^xZ} zXGqK|&?Gt=QGOWzeB4Z-i;5q1fMQ}P4gUL+HE9WuqNBdA!pD7yNv6BKs!0N zepZcgw$P1whIGs@&6bia+x%909g3Pw3%0rfaCTTDawCr>cH-2EYZ+>pYUhQR4d2eB zbLT7bHm96=G;48Z@+FUeGZ^W!7_G;TnN`NCG%Jy`M(m1a?76Askwlh9ie^WOR{z_A z5B_ia-#bM9jK4m4zY$QW422_RFl3Vd-f-7`{w6JOIZGn1{lFq0IIE8-ggZmcOfj9f zx&hnNaT7zu2H6~4lL94(>m9()i&>4te4NlRpg~4ei<#Uh-D!NqZJM&|7jtZ_t$$T$ zhWka)3K4Nq3-gab&5iAyn6^rrfL7b>)a$<^F*gTpe@xG1!IB%SU*T0Zwr3I{&RPW9 zrM;d!AN(@I?^7{>bO}tkGklVL6=6*tq7ype++p|U1Q~VD#Gy@3OfmQGD1`m}O9{I+ z)`%6G&_RGjovo7wb`K4}SNlZkZLU!~z@CU6h0sMhtNYCef zR@t~_`>IgNtSHfjZrGa-OKlR_}LFi%>JDv*hDD5AS`>{hw8k>}Sb%`>MLB0cLwRin&9_Aa7(FS6<8iqb*d4*E|0c5M?K1&4fRe`)q*y)W?Fw8rzl>g9I1WKN2xI z!meitPCT))vuIoip|W$y$hejG@wEYn+vb6TN!B|-4IPM;$Vfp{;}Ga*hE&0S#GLTq zTFvMRH+{Pg*L5GZDw2%+WhBs@3p#z2>e_sW2N88Dr5 z*%hbFrUy$7B@m*d8`xh&?_h^i{frX^oE|Y1Y4avsO_{5kv zwZ@ZD2xg@i!LxX7?ioSJ?zl!>OqnzNj?xzE97`xTZX8sPzy^-aZGDHE@kEV4kXyW^ zozYj3Job71c?{sqc?3z3#z}o`ky>q|)GW(K7{MXXXOv0vx#XrAsx;;U^iT)u~23zuSn7Z z8FelNh#WcmPboX`s5%@hu6^rE%9v+w4ypE@NL3+dnP4e_HncYa#0gkdqCp01re`>YjFl#4^g2 z5OczbzIun-I|EEjB1dgZOY6y=8To6(!^qXV78;BX)7&JFyC>oEPYy6&k0E{KtUeHP z(WyEzVc?h+?^^|8cqxQ4tsyMrcwqV-_{{^kwnX>ASV;+ah4w$0?U{GLW^(PB|Ecec zix#P*ro_37zaxK$$!6pCcEUhw94P8pVTT4`Q|ktt@mQLLrf?0Oz)O!*U-d!i!sRvv z?_Qa8ysbP#-2>odLn+$N(o7o$O>hiZy*cijR^nk-8c(Sz$wqzK+`|o6iKTxzwWSI4 zouxpQDX+HDu-XT%TMQ|~vPGuvx1g$ufB@+gtI(5MBZtzJ6O#boXsC~}(_ zqFTBL@?AVVlyOIVP#dmqqKnVA*njv41Qy#>i;~&6i)2?C5q_A>07NR(9Blp^$=t@g zP;v37&p-1V0GD}IVO<=}`o@^>3tzM0AKPlhG%rSjhlTOoW(DDQH~53Vy|x`QRTvemG1p5}sua8^(#jKY%bh)@ zLg{1{{IPxq&R4?clF;h5L$KMj8Su0?aC0sfsn}Vn1k@3$8^F zZdIfsa=DzhnN~z=2&0{?jOQ|#Q3$jS%GEl2{9&)vGi2)2(qZzU&?N(5YU3}L(0_Si zXejL+6o^MO=&v+&li!>+O*HxI9&B}?elntw$97C5gzL3`Z-9<6t0>jZ0d{sRON#5fqnT_8{(I|01Fs`3GQYKt}%aXqMPi?rBUlTMZuQ>LO*S%nB=hf)Ho5&iTlZ=jS zO~?i8F{%`&S+y~$JxBBSU0KJ%|8?<#%w2JX{9SR4tp9ac@czFp4nnSFxJtY`+U{l) zu{HR@;pz6#CJyB|Y7o&~fTs1way+v)(BT;O8$e=FmTb5#_Z!d8TkkQl_tB}9+t{)8 zW^Lq`mczhroryg>C?M%du{drTokZJ^3g0#!G#*%P*o#?w#zknpg*}*77~aPa%6bXJHZqPs$Atw*T*lUwh_A@?spbXcWqvlfKWKZ8N11Dhnd)li z-Ss3bOvJpRUaqvYS!LXxu0-KrK{dEg0lPfS)`aV;DRh8ONHR;QvMi}21D?xgZ1P9ifpJZ1E#@|i*aC~o4?SkA3LT@w%04QPl zzz!%Th58&_PbMMHGMc1VT?SZzsOB;XErL0UFOL(k!k*rG1BTH^czTNj0N}{z{<*%t zUPiDD#j}&Ai1QN_x006E^xMLsvAb}x#7j&BERQn$#l8nUF7ih*!JlaT<5B9~bsH*w zZk*-2y+M66DiNJ^(i&wuPQ!xrBiz_zmu={vgFaMru`R)Gjv_+}^G2pduwJ=2_K&T} zeP`Qw53Xv%+k$2@&-_YdE${EYNEz#JmfHq%{5L?k*&`bo8mJe#JtqMY%edOpy#7W6+I@z;H?`u;2uNi^ z5T`r4Ir2@G$;_)Edu+IG-`JKbNYHu=GfP@9X6RS8pAP(w*2yt7G2|<5 z6PH|1SD(1>5U|IP@A%=QQ{QtR9rbQdlA+(PAnQ&6H`3-~B>rf=E}Rb{e6xZes@ z*19mC5Fqzl#DCCCwMZw5D-mc41`2duYnwW^GG6UUZQ{DW)D&|m*E&*xLhzvlf(`0I z65J2|a=f^D>hJiW>E5pP>~%uCZ0sCPajn`vEo{Ky_;h)5(m#z>J~#(XAp~Xi1Iet~ zcA=*z>4iF=Kw(n}n|gOClJI}E?iNB_ya93!9!PmltnQ&5R=LG2566G#Z%({@S_ArT zfMh-nF{&YULIy2>RCW>oC>n5KH zI@if)eeoAcE(T5$J%3ROw%82N&s2G7X#0X+c&`$CG4*7_iLssY`>UX#l) z^%Bqg4yd|&;<0jW)i=z6E6FpB9`3{x_D4X0rKeL&%-}32Vwv=|ntDQ!>dMC)u`e;j zyq@c~ma%Mjk`YfLCf6*~O`6ex?2GU6eKYCpT0Su5bog(c5Ph7@G?q4jgNIPMu+4}_ zK|{W}<*XQB>5ZfJ82D;@8^76`X%zK^b9mUj3sN&$Fu41>Nr2EK^wn)OuYD!QZw3OL zRX!B)VdxH=zI8Lyf}VGdU_nK~ON0dSvgo#{M`r||%<{iXpZznpO635&F&6oWNb59GocWDP|_ViVaOrFzo2 zZ(Y2{=#Tf-yYxWD@NTz(Z0nW@$ zHEonWuwk4C0_3Jk_Z3DM81ha>8aP!ceSZ2qCUM-Go{)UqDZ&dl?w%XHNR9h#TNaPn z9`>DidTF%;-A>fXRp&x#pX(~!`oBIrzKiUQIPDgh<1S_=OxCEIa=Y^#P?+>~lizdkSx0#tq5 z+m)ESS{CTNDOPPpX_&E&yoAQskgH)w>H|(lZklU>Z4^b;2|7xDiqM@kW$;3Qy+C5l zSiL!`7kf}A8q`!fI((x-?No~)AMyS(TcNK~h`00Vl{-mAV2b2Rq+!ofZqoLhrd@&I zhn?)NF?JZ7I3p}(&O+-_xPfT}Mlm~2*-2^cm6izqcjgAa*Va)>Wto#{TpV$$M;!Q4 zC6V$^-OXbtJ=|qnf}fbEcgm7%fJVfJ-x76=$iFcBAG_SdgTUfhz1|-+1hj|G@_!H| zDfTdq3m?qU0mN|3h)O0dW(es&!Pz4rFy}@)j(86ghK_49Yevg_a&C}7+KzxM+O>b8 zS^3;6v~XU)WC8n%ckvi$ZX|aJP;75V?3t{HTLJOwrz#ukaqdg4E8|~Nr@m*hXTCF( z6QfQ(LH`ZR_EPYw=B^gzF_Sw?XB)jd7R4?L5oQ&D;&hKS@K2b!ok(!tuMix zmd0e>4bm+J%@BbdY<{)8z)4?4SUeXp)MUi}t_M?>l?>UeUV^Q@rPJ$PMX&U_f98vk zA0mud3@8Knw)T90jUFv)YkY!cV?5@~#7@w?KOEMI@Dzj5bE$7^1*T8JD5|gyEKfvD z*y_!~Bf0wMhDdlg()`JHz#f0#+X+0|PqpkH;@a7}G1*(no)2|D(@KYfTV>D08m;Bfkt{q)k*$&h<^6oqHrjztm{{Ht9 zT^Clab83=(y%lewmZ7>SK&2V^4ChW?&v4u0jId&0Id_S-ZRe2zEkwF6wUw4=RB^If zi5V{>j6$2>`{iEbKH?BxfkKgOkFx6SF$wnPMZa>0&aALcgQrwuSD}BNyp8b2<u3hq*PQ?(@2A$%Qe%TgkDK&`hDw?w%Ob&bJkHVsTTT9Q6 zUAHv6zfR5r2dVruFt@9F^$u#*b1=9eC-dCNhHkuaBv37ukeVe%?o-A+RG(TnP~^I! z#d@xErnD-D55DCi`-^COJv2T`N+dd&+1eVuyK-Ut;r?~ig}k|&lu)#9$tTsNWZ|#m zv$g1mk*6b!AuJtyh=lZptH8=fSp zN8n^qpA@eM0{WfoB?+Y<-+F~}Nex{81BAOOm{LH;QpY*+fhILhlXQ>J?8cNtlk!3? z)PIq}Si`i8e;1yWQ|^$f%AInA%&kthr}vUCF-!e<%EC~eq6ub-iVm)sG3^3Rp;Z%IAp(U|(y@6-F}ml{oFRKfij+V{6*plc$(59Vh&HyQCKr=P)$hQHmj>v=$u^?%wETjc(iUO5$0rou@~_nhwQ$1O|Y*jRO{k?c9qfNdxy1MT^*99cCFu}Jw+*K;aP zt+yK3TIo1&0^Dos<_hdEh_HgS2j!f^J@}|Ln9Gc{ku<$cM^=ZwIfz_vrJp zjBldrWnG32R!+SfLoStOkw`p$!|q_HTJC*KnGODvm#`UVsW!fJJ7FHo6DER=_Inl_ z*%T~5Z7gp3`KugPpP+3*0jugxD6R1#ky4+)P%DQUjj7tk1KVrZB1#s}ksprQ*P`pk zMYzrK{7^W~;m=(0z$@O^sq;F}`L~2wg!J9y7D_2hKd6D4Poh}bFI2=MwE_XeR|IXV zFum8{RqT>xIY8k_c7z}Ycg;9MOTU{acH@JLsfm&Z(haYj6>B$%WxX$DC1gXFLt{s{ zi2*;Qzn>TU7OJ?3p*=Fb=nT{D77o9{>MRD1R)*0Y`$M6Ywz6Au0_+n>sb~8+zi|RY z-Qw@Lz6DVwE?muJFI+XGQ@MgV4v8TcKeiL6Q8%EgU4rJ;c#Cr9BJ&rG;~i`_S6uNcpfT9|v`U z(s#jt;_$&lEg5x+s_*)(6VXrj%D6FY<`*I^5;#o6DVW3+gf-c#q1Zlh)W6gSW|1oe}9=-`BuetHx5DBOaWyqTy@mOM@g}~Y}XDcRxgK!bdGR{bKFBp^j ziB_-cW|o0t$zGD(PP83etW9zNh3bY^TKPxbQ`>m-FH%x93>sLSDib#>(^^q^D+rtY z+CZN<&N>s7^~!(x6)EUOjYocT2434rTGjX?bmq8yVD8>9^jo{2Jz+zl$qx|inn6IEht<;7inZzFm;59>& zWlF4)d2ooBlncm7*?V<41aVBKbT5^h8*4R(>93^Rx3=%qBFpxWx9}H#moYA8(jtbr z0knSiN*8yJa04fu@f+eE0-*|PLbq3-*JpLurW8oR#Dv;JlXNq_M5jY^K;Z+doeucO z)JSn-4vPwLrcg2io_{0Y%2El!f-mY%VMbZsX&HO7e*xuf9lb~w6VuO< z(Io|EcyL^D&`^{QyH*e)d=v==U?<5XO;SnB#U81WenVfSohc826}rNOkl?sFJQvKD z%;*+aCs~eAZ~MG?1}rAJUbez~q(@pjwRk)ZZgP#!(;rnnHGHEbCG( z*E;Q256Q+JF!m1#-7c_u1fxbKCL71Lj+`nXf4e$2uxvF~VXJc1wWFDLK-a{;24N>< zor9O$Tf<4FhgyS4bw@}{6zZaGMo@Oz(=` zlVdpxb_iU{htyLYTU)qrO>@-_nd&m>Cp40q9XHb`2(@6&{(`IO77>Md51|s-24A}m zgPWFqZuipnUk!QO!K%;Zgg|f$gq9ZA2=pZQ72xl`{b4QUf$T7r)GYPVguh>3lVIVm zpC|j|_Pwk3>oxF<{6PJ#zfQcqf1C$0gJl(WOn_hE~vm^f$j-T(AzW z%f*ZYA*U(z%k&ZrZj*CQb8fO<4Z_jyV~H!uOKb8<8MZ)5L)Y~$@4_hoTf8()TX+Rv z=WbDW24*Htl{30qwa1nhX>;as-b?FF!1k8uo;XAy!>x+dnA4!`qn1o=#uQs9lU;5J zvy;ut+7T@YClz=B$QRQbxC+7DPbPFE4csvgoJB*bktXU4L%)mX%m6=+I&2}~q+b%M z69Mhw?gerA)A85ou6$iMUW}Z>^Mqhd8?PNc#_jF#6o=OWyn^}j*uu?^2=8<=bC zvi%Uy>tIK)714pT^dp zZs{WaBw~5smk#C}XIulgN)#|RLfCw&c&_jRQ^tW7xZPL!*k)oYOHO||P*R1a z{ygCL;VTz30zn!Dl2=%8)onL1c@xyZkK$n~o`B{kz6O&Q$I;kIp%w+bJ55RG1_psF z+Vk4X`Zz%V6s?7|LfUE=S9Ic{u!8|3Z*3r!0ZcPe<&9(U&7d{C|3^w`VZ&Jo?HCV;9FW~P``IY4Xy-(UTP3n?gqWmcnb zi{U4|ZQ@zA&;I_o%n1~jmC*hrrJQ>mDvjxNLSNl02ez^h5X!9EX=5C~=vI9O{3d`P zI-gmucuqPP^J1M$>mQs3vEA{N1s&`Kx>}VR zX@y+$sTjwMGy2Nj`&-Lnw$|(>{S_r6nw8Ozxjj}vXZ`9xMGQ2Mvdii|^s|6D{D~B}1i>2p^ay5kYm>+abakW(JH`o)Pt@2f+3*VWNI0yvN^*Jy%KyKn^X$RIBT z5Q~4y#0PNm0*|&rDMP@TDctcZ;aS}@=Gf_cF`5UNv%-56*(MGo?EoKow5I*3<6t1} z4+-U;3~+6V3cruWc=$s55D@O{tE`fETwa>UKor@2=LBuEv?CXz(uxIUHcVimWHx$f z1`aIhr%hLFNfW30k=i=6A{ExmA+3wJsd>%4HU{?R`0u*v>@1fs#$I-vgYsHoS4F=M zh(6N#{KOXor*+XO)tz|y9P-MFCbfq`t-En(xG(Wh&-kI4 zeGD!G8ECbj^bF^RaFouaax>txk0j3LQZhKIEwXa@N#o{I%dE@eek`P;fxoW2_2npD z3k%U<@9N6M!gaa&E^-q``zRX@>g~jfER};v;PHOxERWRhM>-`ow<2hz-%8}rxmk9Z zfX4g$J-g@&ax>d2-}zU!>xEhG)e`o$`t`VsmKURAK= zbKmr-j2*|r?Q$bKKbw+gkwBaZuPiSf@|y}%XS$lvt%7ra0jG}+Qn09K;G^w$i=(E*_3zz5IE(Ci?iT-Dq@h=V9XhUZV9_}^!-Y^Tz`kOFFq(a6sOkI}-Tm@WT5kyO zrVTNqGE);Wu-Z7H^P0%@f`3?`R5b1g#SP9u*Y=-KCH<>~L@nQ=_xvXCa;@lG45=hc zrUXwMq-*f(^>0C$2?g%-ENkLc>7}6`{+(N?XypCJ7WCgF{q8gZJ%1^C){HuroZ)-DT|Zu)ID5tay2RJ;E<>*`f<1i~KYh%d zKfMY-@LzTpl6WtL8HzH@gR{fwcmtG%d>jC3649cYMJHxK36QfFxxjLp^#)|6$)MW_ zI=o`hfZQ3yTyWt~+EybXnSpTbOfx_5zk@*zwa$A>K&B}kd9)!HExi!Tj9l%#D=7G$ zKtJPsNXGUZsV+c;kViHbZ1*_!dCsp*xWyASX`>{JY!0lL5@vMm*0y?B_XM=!&gOr;f>z*I6E zvZ?#bScPN{sJOY?tFtUUJG9A#Xc<&y2~V`JrfyTB=k+TFx8%b8PT>QqjKeI;eClQp~b-Xa$UrGrA79aejSgy2jWy3;YwGLP{Q zq4}4%Y~d=d2mKY!wqW_Bv6z(ML7$%%+4en6>kfpwpmGgOn2H;s(<74&oa+~IJ;S_C z@>e_(Is49>SMT@O4@{;w7}5LRt@SJr3ZJH`c)AdUx8EvgMld{Lti zh#DmessqYhP*T_#>t`B;yJ_2H8?@g#m%FkXvgWC0=7D1m@&-lHWVJZ;KcK~j{AZ}x zZZdS-m)`E2ikXVyAv|FR1UItDiO#b8YYSwkn4LhPoNO~PAsvucV`<~#l0h7iXZN%M%r8j7Z1XN8_q zCL0M({!q=Kn2tP}feAvX-H&ZFIb-Ue40YGoej|Q-;#T$R{Jx=&IM{0CLhLa|(PR;S z7WfmZ-BGd#poV|p0u5HD^dR!sT{%p<+_Wh0xeh z*h(r^i6SkJiQO?JFBzA;lr9`L8$e3%f!^r#(drxDo-&h=b-%yPUg{X}PJ(vGv2b?@X3vkGx5k2C>N5yFM`n?F-$m&KMB{tHHM-T`5jc2N`X8G{eBVc-oC#P$Fz908s^6#@5st z&c6&#%vEnW4}q>vD9e5?wH>i}?7tW+i4&Z$*yHUlcCVm0@og~Ey1$$~vK^HO&z+Z_&&>XE=`RhF2;54 zc9RrTY-XV{4>RJql0r*OFLHKo1piCE8f}d#htIZ6koTmPLTwmmC`VOxwtem>gk6+_ zinDH$we<$qCxKz31`MhD8OYFyDEov1gDksmwhX-n8`5#*dbxBL<=S#O(xJ8p>t=*E zZzyuMAN1)}5%#0cq8S{S6}q`rt1)3kp}DQ@)dk0=+&8^0XMe)Q%X+xHHllkZA*4j>uza{|w^Yt< z6Iboge`-n85cC-N2xJZsaIf2r=Bm|DHX*RSe&IOA2iUhxikJrC z9WLd0Xh}z`^j}jcz1k^={^d!|WJSTb5(MqD(A%=q(2;G^`V{Ebd6147^b@cTFr*`z z_Kw2@$=FTZ1QTOwzQ7{{3*QYtwu3cwOEZs{2qec6>pt_i0m%|@>eca2ZoPEC!JlXl z0Et;ET|K4VJ`En@Vsr_$G9+OQe64AQ(EwLiMpwL>g%!P(46>Z;;hQUz{_AtveJv|I ztGw;Krd>{kXeE56mq^^6ZSjB6C;Zw zg-|)oAVV!4&;ex+ix(PxkO6=`^-(tbf~JQII1t42HHz`ybXaFQ^X-LlC3tRldSRV@ zJ_Y4C_~YQbMfK%nj>J#ia>I-a@SU-28N25mQTI~p$rj_T`Nodl`W0@-;D%jgTa*&)}RDu zGX!cqOB*53#jbYG!gjco|13x&b@r?YBVoLENN=qR5RBEf?-az0c$S`; zw9nP;GCiq=VR4Uj^(amH0;U)g4`~5GiEj1c=YS8mai0tkX zc^cTJba}R+?7!ic-(i>Q`l+_0NHsHx;lqdd9N3W7ZzRBUdmW8LPZ+UvICrc8E;Lrn zqQn41xK8HkzmEFfUL+3+qZiChYvc?F{>D!SvcK_+H11^>!c*uYvD7ds8{vPf3MKti zO%W4nfdF$R!il2KEf7kZ^VI~bJ#&cQ5i`lsmmVD-_Zr{c)qe1(R6cm& zKsxD^KWf)1p(;=?;u9`%OLDOLbic60cB8Zu$v^^4~z}~mvdqEtTGlPc0&RKV%$+y zu?y8oxZHZUrOACFqMp2MhcrYFZY;d>$gdm%nv1W?E_s$#t{??X01WuxH0XSqr z^yNl*B0Ubmx&!v?^sba`*7XC#PF{wfNE;-SO&If9A|dQ|Zr$*gM^ai-JJLy^I(T(q zEA*rE!R#R#0CC`-2FJkQnYW1>614Q?yHR{R zGHep{N`zL~a2F+KRe)DXhy&PLPJd^ExzHaKwI!|vRNkKMvDNhY*FJ$x9jX03U))Bypi6U5{;%RiVAgokrq z#`HtvsvJ_iyLz-@O3snS13V>e)G;P?EL|fdakRS-T;_nYGBF=kAK`K1{OXH|#fh$cBS@|>iz~jIrWdSWdO{t$Gxx{Ua7!b?4M#fu8>hgS zkmwttVu07!83iPGq+QEEi|r`E!2cv|SSq@&Je0@G26+eqK($5(327swTV$kk_f1

sm^`tksv~LOn zefJJ8h+Eu5LMT*SUyDXVB;5Ec`ZVPH@vI$?$}r2`Rs4aB9NA3Q)rl}o9$McE6K`9S zyFGt@_t*ShNW`|uRQu2%*ZbkwDjj!NkuO) z?6XQ4ymW#PK@;zp-(TA=Y){?vuL=@1&uFIB@so2Q@FQ6bQoFovoo}){KLj@YxR|~7 zWnT){I=i!Jq0^|2LOj3ij@quT zpm=Ti`K@{+{-{Lz>XbE*v3eZivIC*B64G9cQZRT&jjJi-`L$ht+mJWp;4meo$7ofQ zbHz`OU>oz(sm@3KfwC=$wMu0ZA1=^kq(xr~t`%6#1TEHFt10FAC6A7fiBHSFWhX8y z-F+jYF>8|s5|5^D45&+=l3{32tt~W5uy!*r8fn#xFDcy}@vfN*-=9jxELgFwT!-4S z+!R~F*qRT;!^SJ9!%@!pQ9p5TxH6^b!+9N5pA(g%$2|PEWA`uIIKO7gEt_si%gR@v zEAV_h4EU<)cUea^CmwWm$lOZ7cQ#7)ym2JYmWsA&U`3Oz-UHQ0=)Ezi?6F^m%#> zycVm}k+fHi$A>5RV_jT_;w3%*@&0CC-E<_bVgcN?%9HVPuy09qG3rdrSQnZrDq|;X z7VzXGOh28JmR@iiwl62H0CE$9B=wSR6JX46+L{seX=Njf6jh?td|u&TWAJW`(B=tc z6S!TCkgMlFwnwHdW?ZX=R(s_NcbEdL^x?^^k6HO!FbpDy`kSrKm_6Fg9fe?R=#QzI z_7t1hYDNVDU26LdI?w-@!UH1xwk(|i!Q7X!Z>l`TD2=agsmb?#;>(#g{3!0YiqYo? zZ^k$o72RTO9T7^N;l*jWiaqMB-OUwl5NW(mmb~mtjUB-D7K~!WAMC~574^OsfP(c7 z;S!rjpwhiYy0pZt4F77f7~hCjdZaRU8->7T{4biZaxJXhfUF9kr~5;<#`HnURfeSB))klcqij_@?u%={ zH2?eyQV>v9_r=9#2!0X6HV|$}<=_vo&aNvb-LzJ#$%f+fHDOB7$M%A*boo5H7Ho

#v7O8 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�`+~Yb%VqQupW()|3F*2ct)ziX|^DF@C*Mq*pv~H3t zfGm=o9LIx}Ov|3T^bvs2fCH_)GQ3S!Nr-%xn2VF;I1|xEQxlUDlvRFR>d6!*(;ev& zcM!(cS?Q%ajU?1@W7<*3qEz0sbL28kJf90_|VCEcs=OH`{+JLihLk> zjukTSl{TtKRzFJQiflvBWT2g!!HI$x5)efU^8Q}EJca8+jU8c-TSRA2!I#2+c+#qA zI|J66#rHU_tTAimpJz5lb75<#S_M6tGX56UK3-VsO?6ABf`!!PTX^G zku?P)~LD4N$vlP=G;bQjTBH;CtlHic?iSPf^MXduniw@s?$7zbjC z?Bv>S(q`M$E=k?ISTL z!Lc`i|8L_7!-O);>*= zCEuy-A%-{5jnwJeT3+8-Dk!+C(kX_fxr02j4Ixgk7@p3aOtIk#Y|M11yBQx zM+zp`@zQ%H0H7UZn)%Mw;s{`hhT>g=2#IR}?C6!bV8uvu& z?2x!U8(uW%j!;F06(p@BK#BQ~BvRD%UY)8&;02Oh4UI+NG5tPlY2ItQUP1NcN2~QG zjB1hG{?Uxe`>5ZJ;bhdukZ9UmX{-(l&|SoRq&r5-vIU1nLkv?Q+2SX=%gwy`{3sQ) zSGpqWTpH6w0)c(EftON!Ym=+tq2zhiGLMB39RPaxV&%E{ep`;jN4)*Qat2YmM=Peh z(Pf+it;MSc(iVDS#^d@;LU|+h#av>5=81$BT>DrBE$HDJjqB{+YobRaMdA7}L`PMT z?i2@WCv$bnrZ*6G=|^Hq<)g$3H}%d>t!OVRJ!iyazbdap+L5bq#4GyOyB6^P-SVl* zf*X8rVWow Qn5z80#ANc(#A1lO9y_tiyeSTb0RenPWB7~qz3 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.24 diff --git a/research/centre-polynomial-cache-limits/review/ARITHMETIC-BOUNDS.json b/research/centre-polynomial-cache-limits/review/ARITHMETIC-BOUNDS.json new file mode 100644 index 0000000000..c07c7fd0ac --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/ARITHMETIC-BOUNDS.json @@ -0,0 +1,12 @@ +{ + "status": "PASS", + "bounds": { + "producer_R_transpose_sum": 262144, + "producer_R_sum": 3670016, + "review_sparse_row_sum": 14680064, + "moment_sum": 17591917608960, + "field_product": 4294967296, + "Bareiss_absolute_difference": 4294967296 + }, + "reason": "Every vector residue is between 0 and 65536. SHAKE observers are between 0 and 65535. Products in elimination have two nonnegative factors at most 65536; their difference has absolute value at most 65536 squared." +} diff --git a/research/centre-polynomial-cache-limits/review/CHECKED-FILES.json b/research/centre-polynomial-cache-limits/review/CHECKED-FILES.json new file mode 100644 index 0000000000..bbec0bd630 --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/CHECKED-FILES.json @@ -0,0 +1,170 @@ +{ + "package": "work/project-final-cleanup-20261022/campaign-audit/centre-polynomial-cache-limits", + "files": [ + { + "path": "NOTICE.md", + "bytes": 2804, + "sha256": "4dde831dc40b31d0edc23adbcd0aaeec3aa573eef6f4f27fcdb53d24eab173e8" + }, + { + "path": "PACKAGE-MANIFEST.json", + "bytes": 5961, + "sha256": "b0068a23f4a71c700a2b89383225e77070ff2905a60087e04c686355fa5db9aa" + }, + { + "path": "PROOF.md", + "bytes": 5655, + "sha256": "ebcd0912e990c71f3b29b87674c1b5e3efa8f5ea37ed20f4fd06d80ce27f6382" + }, + { + "path": "README.md", + "bytes": 3420, + "sha256": "7569c606042bacf8c36b75fbbd1dfef9a8861d194659c4a93dfa68fddc7c044f" + }, + { + "path": "SOURCES.json", + "bytes": 5809, + "sha256": "b3ad9ed33fda0ffb64d50ed6d026168651b9351a16a21ca0b9821c179b474d3d" + }, + { + "path": "check_phase_cache.py", + "bytes": 5314, + "sha256": "16ed9b27047d065c7a7648ebc8dc46438ec93c7cfbc530f9cc996e878d1ffe5d" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/bounds-review/review_centre_free.py", + "bytes": 8966, + "sha256": "33b6b73303275e481f12cc2f946d1273ca9ac03d9294600016f03e84e6921088" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/circuit-interface/INTERFACE.json", + "bytes": 23232, + "sha256": "5c6c51fbffc07a683e922f17532fd90262ae9e23cc3560a696002073dd234ef3" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE-PROOF.md", + "bytes": 4001, + "sha256": "bc3a72690735230e8d9995df1a343f69fe8afed7dce056a82505efc83a884698" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-DEGREE.json", + "bytes": 10174, + "sha256": "4b198523d498b85b96445681fdcd8020402b1abb31c6a27e7d2a45d5df2217e2" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/BELL-GRAM-INVERSE-COROLLARY.md", + "bytes": 1058, + "sha256": "d1d3011e26d5768edc10ac234aeb9cb80c721addc28f9aabc784f56383ca4fe3" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/history-encoding/certify_bell_gram_degree.py", + "bytes": 5140, + "sha256": "8604d1665862593efc146644fbf47a85c4a2aca88106284096d723853a064e45" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.json", + "bytes": 1996, + "sha256": "4f48be6cfd0f7ab316d1dc957ba18668b56a4feed55ef8cae5c205560e13b16a" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/BELL-GRAM-DEGREE-REVIEW.md", + "bytes": 3113, + "sha256": "3a670ff14be1db7109d12d1fc6c28704543d3a19ad2e9d4ac6431a0a86a57d9f" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/interface-proof/review_bell_gram_degree.py", + "bytes": 9719, + "sha256": "0d9983c288292f568c1f1595b944ca81131f79119855b7ad5c64e28c3cbfd899" + }, + { + "path": "frozen/work/centre-encoding-campaign-20261014/lanes/native-encoding/PHASE-CACHE.md", + "bytes": 7975, + "sha256": "bd53f0c38ac06e20b8361543086bb5f6310bdeb552fb692dc29978434cd4dc84" + }, + { + "path": "frozen/work/five-pr-sprint-20261013/lanes/centre-sharing/CANONICAL-WORD.json.gz", + "bytes": 84805, + "sha256": "16bc0ebb04b4be6c0ade74badc6a0c0cdba4215eda86e4ff9f13abf8ecebd219" + }, + { + "path": "frozen/work/five-pr-sprint-20261013/lanes/centre-sharing/LOCAL-PROGRAMS.json.gz", + "bytes": 209318, + "sha256": "241fde27d4e43f5a9cb6b128f9f76c5131a53d09f0371676163f914d0b0fef3a" + }, + { + "path": "notices/LICENSE", + "bytes": 11357, + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4" + }, + { + "path": "notices/research/gauge44-slots-t16/NOTICE.md", + "bytes": 1964, + "sha256": "7a8d17b04da1e6c9d0ec217fb5bda72faa09d9a21695128722dd1e2827870fcf" + }, + { + "path": "notices/research/gauge44-slots-t16/UPSTREAM-NOTICE.md", + "bytes": 6406, + "sha256": "a75967ebc34e3bf2ff2c25c08e6c7f1a61b0c0d171cfd1b62196ae2caaf2c610" + }, + { + "path": "notices/research/gauge44-slots-t16/construction/NOTICE.md", + "bytes": 950, + "sha256": "defe7e44af610e25a6c50c1c3b2efd0972d0690574995c0c872fc50eebf4c816" + }, + { + "path": "notices/research/gauge44-slots-t16/t16/NOTICE.md", + "bytes": 2245, + "sha256": "902370e6bfcd39dbea2ece474f15fccbcce3b8e966b2b94066bd03e5174591b5" + }, + { + "path": "replay.py", + "bytes": 3216, + "sha256": "20f3436ba77856ba233650bd04a42daad6c597bb19b439e5291cc3226057e98c" + }, + { + "path": "requirements.txt", + "bytes": 12, + "sha256": "a83a2a4ed7ab2e022b9b8a83cfa2b8cf52cc243006c597e8b96f90a8365590ac" + }, + { + "path": "validation/PHASE-CACHE-CHECK.json", + "bytes": 1376, + "sha256": "34386095a77c0aa3008e652fb2dc982a654b17b525dd0f85bf3b72c8867d3556" + }, + { + "path": "validation/REPLAY.json", + "bytes": 2075, + "sha256": "7898245ca60369fcae643ce6f5bec5065e2e2aa0d46c1658b8e5f5ca56253779" + }, + { + "path": "validation/bell-producer-stderr.txt", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "validation/bell-producer-stdout.txt", + "bytes": 200, + "sha256": "b8a03214ced2b88ff097a6a7f5ba55f40dd931299b1fe75cb6d62d2108877b29" + }, + { + "path": "validation/bell-review-stderr.txt", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "validation/bell-review-stdout.txt", + "bytes": 135, + "sha256": "04001332aac6a4120ebb33bc8a6f1946fe96094f7ef6bd2d8ea73ed52f60c1e8" + }, + { + "path": "validation/phase-cache-stderr.txt", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "validation/phase-cache-stdout.txt", + "bytes": 39, + "sha256": "3fad44ed5923785fcc2c7534cd9887c315168ffbcd5d9f1c5935a461585d7622" + } + ] +} diff --git a/research/centre-polynomial-cache-limits/review/EXTRA-REJECTION-CONTROLS.json b/research/centre-polynomial-cache-limits/review/EXTRA-REJECTION-CONTROLS.json new file mode 100644 index 0000000000..54bc72cb54 --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/EXTRA-REJECTION-CONTROLS.json @@ -0,0 +1,5 @@ +{ + "status": "PASS", + "changed_moment_rejected": true, + "changed_interface_bytes_rejected": true +} diff --git a/research/centre-polynomial-cache-limits/review/FORWARD-QUERY-CHECK.json b/research/centre-polynomial-cache-limits/review/FORWARD-QUERY-CHECK.json new file mode 100644 index 0000000000..647f6dc1cc --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/FORWARD-QUERY-CHECK.json @@ -0,0 +1,19 @@ +{ + "status": "PASS_SEPARATE_FORWARD_RATIONAL_QUERY_RECONSTRUCTION", + "method": "Propagate sparse source rows forward through every scalar gate before the centers phase. Set other input coordinates to zero. No producer or retained transpose function imported.", + "scalar_gates": 10851, + "centers": [ + 92, + 57, + 81, + 224, + 11, + 240, + 9, + 256 + ], + "rows": 8, + "columns": 112, + "matches_interface": true, + "all_entries_integers": true +} diff --git a/research/centre-polynomial-cache-limits/review/FORWARD-QUERY-REPRODUCED.json b/research/centre-polynomial-cache-limits/review/FORWARD-QUERY-REPRODUCED.json new file mode 100644 index 0000000000..e787936acd --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/FORWARD-QUERY-REPRODUCED.json @@ -0,0 +1,8 @@ +{ + "status": "PASS", + "scalar_gates": 10851, + "rows": 8, + "columns": 112, + "row_absolute_sum": 56, + "column_absolute_sum": 4 +} diff --git a/research/centre-polynomial-cache-limits/review/MAIN-OVERLAP.json b/research/centre-polynomial-cache-limits/review/MAIN-OVERLAP.json new file mode 100644 index 0000000000..0862bec664 --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/MAIN-OVERLAP.json @@ -0,0 +1,8 @@ +{ + "main": "cef4b52f2a59009865bf8eabde1be3f159063703", + "scope": "Markdown files under research at this exact commit; exact Bell/degree terms and broader fiber-rank/invariant terms", + "pattern": "bell.{0,20}gram|polynomial.{0,20}409|degree.{0,12}409|hankel.{0,20}409|minimal invariant|fiber.{0,20}rank", + "matching_lines": 31, + "raw_sha256": "6be9f62deffffdc1cf3bf962f721ec08210112e31a16141c55a278ea351ec05d", + "note": "Matches concern binary E8 frame-fiber capacity, monomial partition transport, or unrelated matrix-exponent synthesis. No matching degree409 Bell Gram or minimal diagonal invariant scalar-cache theorem was found by this bounded lexical search." +} diff --git a/research/centre-polynomial-cache-limits/review/OPEN-PR-OVERLAP.json b/research/centre-polynomial-cache-limits/review/OPEN-PR-OVERLAP.json new file mode 100644 index 0000000000..23805c68f6 --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/OPEN-PR-OVERLAP.json @@ -0,0 +1,5 @@ +{ + "scope": "315 open PR titles and bodies from parent-fetched OPEN-PRS.json; not all diffs or discussions", + "count": 315, + "matches": [] +} diff --git a/research/centre-polynomial-cache-limits/review/REVIEW.json b/research/centre-polynomial-cache-limits/review/REVIEW.json new file mode 100644 index 0000000000..8b88158758 --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/REVIEW.json @@ -0,0 +1,46 @@ +{ + "status": "PASS_INDEPENDENT_AGENT_REVIEW", + "package_manifest_sha256": "b0068a23f4a71c700a2b89383225e77070ff2905a60087e04c686355fa5db9aa", + "checked_files_json_sha256": "86d068a1af55ff9e0d566cc0a5ecd9eb5abfde61988f8d443a7b41ab1d048896", + "review_md_sha256": "c80393d685f8b48092f341ce6adcadd396a97e9cd2de469ac316e2ca46fc867f", + "package_files": 33, + "manifest_exact_coverage": true, + "approves": [ + "Scalar minimal-polynomial degree at least409 for the defined actual112-port doubled Gram at every positive tensor size", + "Scalar-polynomial inverse degree at least408 when aI+bA is invertible and b is nonzero", + "Least invariant scalar cache dimension equals the sum of joint diagonal fiber ranks", + "Pinned56/112 cache dimensions and512-character rank histogram" + ], + "material_findings": [], + "scope_excludes": [ + "General native/circuit cost lower bounds", + "Complete supplier construction", + "Verified complete kappa improvement", + "Independent human review", + "Formal-kernel verification", + "Universal novelty" + ], + "additional_pinned_sources_read": [ + { + "commit": "3ae9a6f3ac74ded022ab3b4872a7357a621af6fb", + "path": "research/involutive-walsh-lift/NATIVE-PROOF.md", + "sha256": "bbf8b04e06a165d608b4e9201c525eb46462de60a1c9e33930ca5b86cdec42ce" + }, + { + "commit": "3c6a768e5391e6bc8355fe2bc849d2978afef8f6", + "path": "research/phase-coded-callers/annexes/fixed-code-interface/PROOF.md", + "sha256": "c14762025b084a3a54680c8bfd05fdf56b16600eaaebd081f975354564ca9098" + }, + { + "commit": "cb102a57254748651ce16aa4454bb611f6380e53", + "path": "research/actual-query-information-bounds/annexes/source-geometry/frozen/lanes/schur-selection/plane-repair/QUERY-SPAN.md", + "sha256": "785e27fdc6f2bcd83318afee14103f3e021065d32be2265b8afdec3fea3e1081" + } + ], + "fresh_replay": "replay/REPLAY.json", + "extra_checks": "check_review.py", + "extra_checks_script_sha256": "ed5abf91b65ddfb3152210d9ad6692103fbae44a073ca82c42804bf847b86aa9", + "extra_checks_output": "portable-replay", + "extra_checks_portable_paths": true, + "checked_package_unchanged_after_portability_update": true +} diff --git a/research/centre-polynomial-cache-limits/review/REVIEW.md b/research/centre-polynomial-cache-limits/review/REVIEW.md new file mode 100644 index 0000000000..697fc16c98 --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/REVIEW.md @@ -0,0 +1,147 @@ +# Independent agent review: centre polynomial and scalar-cache limits + +Result: PASS for the two claims in the package `PROOF.md`. No material +mathematical or implementation defect was found. This is an independent +OpenAI Codex agent review, not human peer review or a formal-kernel proof. +The package does not give a native encoder, a complete supplier, or an +improved complete kappa value. + +The checked package is +`work/project-final-cleanup-20261022/campaign-audit/centre-polynomial-cache-limits`. +`CHECKED-FILES.json` records the exact file bytes at review completion. +The PR description standard at +`/Users/aliromman/Projects/IntegerMultiplicationBounds/PR-DESCRIPTION-STANDARD.md` +was read. The coordinating agent must still check the final PR description, +GitHub source targets, and rendered Markdown. + +## Bell Gram proof + +The operator has the explicit definition +`A_lambda=(1/4) sum_q r_q r_q^T tensor Gamma_q^tensor(lambda)`. +The root coefficient occurs once. The 112 columns and their order are the +historical query columns, not the completed 120-root table. The scalar +word inputs match the two original archive members byte for byte at +`bce54fb3f895cbe5cd4c0eb477c3afeed100190f`. The complete archive has SHA-256 +`22c3f4dce4b897a1d423d1388801933e288b6a6b1906cb15e1b16a5eb68db754`. +The interface bytes also match the published PR #4720 object at +`cb102a57254748651ce16aa4454bb611f6380e53`. + +The retained sparse reviewer reconstructs R by a transpose calculation. +This review also reconstructs R in the opposite direction: it propagates +sparse rational source rows through all 10,851 scalar gates before the +centres phase. It sets all other inputs to zero. The result equals every +entry of the eight-by-112 interface matrix. This extra check does not +import either retained reconstruction function. It establishes the clean +query matrix only; it is not a new arbitrary-helper supplier check. + +For odd q, the normalized real matrix `(X_q+Z_q)/sqrt(2)` is a symmetric +involution. Conjugation on the Pauli matrix `X^b Z^a` gives the two stated +Bell cases and preserves `c=a+b`. The retained reviewer checks all 57,344 +columns in the selected `c=11` block by four-term Pauli multiplication. +It separately checks that the identity Pauli matrix is fixed by all +112 operators. The normalized doubled port agrees with the exact formula +in PR #1719's pinned `NATIVE-PROOF.md`; no phase is dropped. + +The producer and separate sparse reviewer both give the 817 retained +moments and determinant 2,984 modulo the prime 65,537. The prime check +covers every possible divisor through its square root. The Hankel +determinant lies in `Z[1/2]`. Its nonzero reduction proves a nonzero +characteristic-zero determinant. This proves independence of the first +409 Krylov vectors and hence the degree bound. It does not require a +guessed recurrence or a claim about the exact minimal polynomial. + +Tensoring the selected Bell block with the common fixed identity vector +in the remaining slots gives the same operator on an invariant subspace +at every positive tensor size. This proves the bound at each size, +including size-dependent candidate polynomials. A nonzero rational +minor remains nonzero after a characteristic-zero field extension. +For an invertible `aI+bA_lambda`, with `b != 0`, a polynomial inverse q +would make `(a+bt)q(t)-1` a nonzero annihilator. Thus `degree(q) >= 408`. +This is a representation bound, not a circuit-gate or native-cost bound. + +All NumPy arithmetic used for the certificate is exact signed int64 +arithmetic. The producer's largest absolute inner sum bounds are +262,144 for `R^T value` and 3,670,016 for `R acted`. The independent +sparse row bound is 14,680,064. The moment bound is 17,591,917,608,960, +which is less than `2^44`. Field products and the absolute difference +of the two nonnegative Bareiss products are at most `2^32`. Every bound +is below the signed int64 limit. The residue reduction occurs before +the next field product. + +## Minimal invariant scalar cache + +The theorem assumes a finite complex source space, fixed diagonal update +matrices, and a linear scalar cache that contains the query row space. +It does not give free source-dependent payload maps or source rereads. +Within this class, the proof is correct. A linear combination of the +updates separates the finitely many joint diagonal fibers. Polynomial +interpolation supplies each fiber projector. Every invariant cache that +contains the query must contain its row projections onto all fibers. +Their supports are disjoint, so their dimensions add. Conversely, the +direct sum of these fiber row spaces is invariant and contains the query. +The empty update family also satisfies the statement. + +The rational checker reproduces the normal-direction dimensions +`8,15,28,44,44,56,56,56,56` and coordinate-direction dimensions +`8,16,31,53,85,101,112,112,112,112`. It verifies fourteen final normal +fibers, each with eight columns and rank four. It constructs the 56-row +basis, checks that it contains R, and checks every stated diagonal +update on every basis row. Removal of one necessary row fails a required +projected-row test. The 512 two-demand ranks are two of rank eight, +sixteen of rank fifteen, and 494 of rank sixteen. Exact rational rank +has the same value over C for these rational matrices. + +The 56-row result applies only to the specified normal-character family. +Six specified coordinate characters force the full 112-dimensional +source space in this model. This is a useful exact cache-size criterion; +it does not price cache birth, native access, storage, or restoration. + +## Reproduction and controls + +From the workspace root, this review ran: + +```sh +env OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 work/autonomous-kappa-run/venv/bin/python -I -B work/project-final-cleanup-20261022/campaign-audit/centre-polynomial-cache-limits/replay.py --out work/project-final-cleanup-20261022/reviews/bell-cache/replay +env OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 work/autonomous-kappa-run/venv/bin/python -I -B work/project-final-cleanup-20261022/reviews/bell-cache/check_review.py --package work/project-final-cleanup-20261022/campaign-audit/centre-polynomial-cache-limits --out work/project-final-cleanup-20261022/reviews/bell-cache/portable-replay --repo . +``` + +Both passed, under Python 3.14.7 and NumPy 2.5.4, with one numerical +thread. The first output directory was new. Its Bell producer and +review receipts equal the retained receipts byte for byte. The duplicate +row, duplicate column, and removed-cache-row controls passed. The extra +review script changed one moment and separately changed the interface +bytes in a scratch copy. The independent moment comparison rejected the +first mutation; the interface digest check rejected the second. Original +package sources were unchanged. The extra script accepts explicit `--package`, `--out`, and `--repo` +paths. It creates a new output directory on every run. Its source-history +check needs a Git repository that contains the cited historical objects. +It does not need the old workspace folder layout. + +No full supplier, native decoder, selected-frontier replay, outer kappa +calculation, or formal-kernel proof was run. The all-size and general +cache conclusions follow from the displayed proofs, not finite samples. + +## Credit and bounded overlap check + +All five copied license/notice objects match the pinned Git source. +The new notice identifies the roles of the prior Codex research lanes, +credits the historical supplier notices, and distinguishes AI review from +human review. This review read PR #1719's pinned native lift proof, +PR #4750's fixed-code projector criterion, and PR #4720's QUERY-SPAN +theorem. The first supplies the port representation. The second tests a +given code, rather than its least invariant enlargement. The third gives +a different payload-query source-span bound. These are not claimed again. + +A bounded search of research Markdown at current main +`cef4b52f2a59009865bf8eabde1be3f159063703` found no equivalent Bell +degree-409 or minimal diagonal-invariant cache statement. Broader +fiber/rank matches concern different E8 frame-capacity or partition +results. The parent-fetched list of 315 open PR titles and bodies had no +matching Bell/Hankel/phase-cache/scalar-cache/minimal-polynomial terms. +The search is recorded in the two overlap receipts. It does not cover +every open diff, Discussion, closed PR, or external literature result, +and it does not establish universal novelty. + +The final two documentation edits add scoped open questions and remove +a redundant determinant sentence. They do not change a proof or checker. +No material review finding remains open. diff --git a/research/centre-polynomial-cache-limits/review/SOURCE-BINDING-REPRODUCED.json b/research/centre-polynomial-cache-limits/review/SOURCE-BINDING-REPRODUCED.json new file mode 100644 index 0000000000..b35a3c065c --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/SOURCE-BINDING-REPRODUCED.json @@ -0,0 +1,14 @@ +{ + "status": "PASS", + "archive_sha256": "22c3f4dce4b897a1d423d1388801933e288b6a6b1906cb15e1b16a5eb68db754", + "members": { + "slots/local/CANONICAL-WORD.json.gz": { + "bytes": 84805, + "sha256": "16bc0ebb04b4be6c0ade74badc6a0c0cdba4215eda86e4ff9f13abf8ecebd219" + }, + "slots/local/LOCAL-PROGRAMS.json.gz": { + "bytes": 209318, + "sha256": "241fde27d4e43f5a9cb6b128f9f76c5131a53d09f0371676163f914d0b0fef3a" + } + } +} diff --git a/research/centre-polynomial-cache-limits/review/SOURCE-BINDING.json b/research/centre-polynomial-cache-limits/review/SOURCE-BINDING.json new file mode 100644 index 0000000000..b23a41f315 --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/SOURCE-BINDING.json @@ -0,0 +1,24 @@ +{ + "status": "PASS_EXACT_ORIGINAL_SOURCE_BINDING", + "historical_source_commit": "bce54fb3f895cbe5cd4c0eb477c3afeed100190f", + "archive_sha256": "22c3f4dce4b897a1d423d1388801933e288b6a6b1906cb15e1b16a5eb68db754", + "archive_members": { + "slots/local/CANONICAL-WORD.json.gz": { + "bytes": 84805, + "sha256": "16bc0ebb04b4be6c0ade74badc6a0c0cdba4215eda86e4ff9f13abf8ecebd219" + }, + "slots/local/LOCAL-PROGRAMS.json.gz": { + "bytes": 209318, + "sha256": "241fde27d4e43f5a9cb6b128f9f76c5131a53d09f0371676163f914d0b0fef3a" + } + }, + "notice_source_matches": [ + "notices/LICENSE", + "notices/research/gauge44-slots-t16/NOTICE.md", + "notices/research/gauge44-slots-t16/UPSTREAM-NOTICE.md", + "notices/research/gauge44-slots-t16/t16/NOTICE.md", + "notices/research/gauge44-slots-t16/construction/NOTICE.md" + ], + "interface_publication_commit": "cb102a57254748651ce16aa4454bb611f6380e53", + "interface_publication_exact_byte_match": true +} diff --git a/research/centre-polynomial-cache-limits/review/check_review.py b/research/centre-polynomial-cache-limits/review/check_review.py new file mode 100644 index 0000000000..e45fa7c913 --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/check_review.py @@ -0,0 +1,139 @@ +"""Check source pins, query rows, arithmetic bounds, and rejection controls.""" + +import argparse +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import gzip +import json +import os +import shutil +import subprocess +import sys +import tarfile + + +parser = argparse.ArgumentParser() +parser.add_argument("--package", type=Path, required=True) +parser.add_argument("--out", type=Path, required=True) +parser.add_argument("--repo", type=Path, required=True) +args = parser.parse_args() +PACKAGE = args.package.resolve() +OUT = args.out.resolve() +REPO = args.repo.resolve() +OUT.mkdir(parents=True, exist_ok=False) + + +def require(condition, message): + if not condition: + raise ValueError(message) + + +def save(name, value): + (OUT / name).write_text(json.dumps(value, indent=2) + "\n") + + +def source_check(): + sources = json.loads((PACKAGE / "SOURCES.json").read_text()) + source = sources["historical_source_commit"] + ":" + sources["historical_selected_archive"]["path"] + proc = subprocess.Popen(["git", "show", source], cwd=REPO, stdout=subprocess.PIPE) + digest = sha256() + while chunk := proc.stdout.read(1048576): + digest.update(chunk) + require(proc.wait() == 0, "Read the source archive") + require(digest.hexdigest() == sources["historical_selected_archive"]["sha256"], "Archive digest") + proc = subprocess.Popen(["git", "show", source], cwd=REPO, stdout=subprocess.PIPE) + members = {} + with tarfile.open(fileobj=proc.stdout, mode="r|gz") as archive: + for member in archive: + if member.name not in ["slots/local/CANONICAL-WORD.json.gz", "slots/local/LOCAL-PROGRAMS.json.gz"]: + continue + raw = archive.extractfile(member).read() + local = PACKAGE / "frozen/work/five-pr-sprint-20261013/lanes/centre-sharing" / Path(member.name).name + require(raw == local.read_bytes(), "Exact source member") + members[member.name] = {"bytes": len(raw), "sha256": sha256(raw).hexdigest()} + require(proc.wait() == 0 and len(members) == 2, "Both source members") + for item in sources["files"]: + if item.get("source_commit"): + raw = subprocess.check_output(["git", "show", item["source_commit"] + ":" + item["source_path"]], cwd=REPO) + require(raw == (PACKAGE / item["path"]).read_bytes(), "Exact notice source") + save("SOURCE-BINDING-REPRODUCED.json", {"status": "PASS", "archive_sha256": digest.hexdigest(), "members": members}) + + +def forward_query(): + folder = PACKAGE / "frozen/work/five-pr-sprint-20261013/lanes/centre-sharing" + word = json.loads(gzip.decompress((folder / "CANONICAL-WORD.json.gz").read_bytes())) + events = json.loads(gzip.decompress((folder / "LOCAL-PROGRAMS.json.gz").read_bytes()))["forward"] + state = [{j: Q(1)} if j < 112 else {} for j in range(712)] + def index(register): + return register[1] + (704 if register[0] == "C" else 0) + count = 0 + for event in events: + if event == ["phase", "centers"]: + break + if event[0] != "scalar": + continue + count += 1 + gate = event[1] + target = index(gate[1]) + if gate[0] == "clear": + state[target] = {} + elif gate[0] == "scale": + scale = Q(gate[2], gate[3]) + state[target] = {j: scale * value for j, value in state[target].items() if scale * value} + elif gate[0] == "copy": + state[target] = state[index(gate[2])].copy() + elif gate[0] == "add": + scale = Q(gate[3], gate[4]) + for j, value in state[index(gate[2])].copy().items(): + total = state[target].get(j, Q(0)) + scale * value + if total: + state[target][j] = total + else: + state[target].pop(j, None) + else: + raise ValueError("Unknown scalar gate") + rows = [[state[c].get(j, Q(0)) for j in range(112)] for c in word["centers"]] + interface = json.loads((PACKAGE / "frozen/work/centre-encoding-campaign-20261014/lanes/circuit-interface/INTERFACE.json").read_text()) + expected = [[Q(row.get(str(j), "0")) for j in range(112)] for row in interface["R"]] + require(rows == expected, "Forward rational query reconstruction") + row_weights = [sum(abs(value) for value in row) for row in rows] + column_weights = [sum(abs(row[j]) for row in rows) for j in range(112)] + require(max(row_weights) == 56 and max(column_weights) == 4, "Root coefficient bounds") + save("FORWARD-QUERY-REPRODUCED.json", {"status": "PASS", "scalar_gates": count, "rows": 8, "columns": 112, "row_absolute_sum": 56, "column_absolute_sum": 4}) + bounds = { + "producer_R_transpose_sum": 4 * 65536, + "producer_R_sum": 56 * 65536, + "review_sparse_row_sum": 224 * 65536, + "moment_sum": 4096 * 65535 * 65536, + "field_product": 65536 ** 2, + "Bareiss_absolute_difference": 65536 ** 2, + } + require(max(bounds.values()) < 2 ** 44 < 2 ** 63, "Signed int64 operations fit") + save("ARITHMETIC-BOUNDS.json", {"status": "PASS", "bounds": bounds, "reason": "Every vector residue is between 0 and 65536. SHAKE observers are between 0 and 65535. Products in elimination have two nonnegative factors at most 65536; their difference has absolute value at most 65536 squared."}) + + +def rejection_controls(): + copied = OUT / "controls-frozen" + shutil.copytree(PACKAGE / "frozen", copied) + lanes = copied / "work/centre-encoding-campaign-20261014/lanes" + env = dict(os.environ, OPENBLAS_NUM_THREADS="1", OMP_NUM_THREADS="1") + certificate = lanes / "history-encoding/BELL-GRAM-DEGREE.json" + value = json.loads(certificate.read_text()) + value["moments"][0] = (value["moments"][0] + 1) % 65537 + certificate.write_text(json.dumps(value)) + result = subprocess.run([sys.executable, "-I", "-B", str(lanes / "interface-proof/review_bell_gram_degree.py")], capture_output=True, text=True, env=env) + (OUT / "corrupt-moment-stderr.txt").write_text(result.stderr) + require(result.returncode != 0 and "All817 independent sparse moments agree" in result.stderr, "Corrupt moment must fail") + interface = lanes / "circuit-interface/INTERFACE.json" + interface.write_bytes(interface.read_bytes() + b"\n") + result = subprocess.run([sys.executable, "-I", "-B", str(lanes / "history-encoding/certify_bell_gram_degree.py"), "--interface", str(interface), "--out", str(OUT / "invalid.json")], capture_output=True, text=True, env=env) + (OUT / "corrupt-interface-stderr.txt").write_text(result.stderr) + require(result.returncode != 0 and "Actual supplier interface pin" in result.stderr, "Corrupt interface must fail") + save("EXTRA-REJECTION-CONTROLS.json", {"status": "PASS", "changed_moment_rejected": True, "changed_interface_bytes_rejected": True}) + + +source_check() +forward_query() +rejection_controls() +print("PASS_BELL_CACHE_INDEPENDENT_REVIEW_CHECKS") diff --git a/research/centre-polynomial-cache-limits/review/replay/ARITHMETIC-BOUNDS.json b/research/centre-polynomial-cache-limits/review/replay/ARITHMETIC-BOUNDS.json new file mode 100644 index 0000000000..c07c7fd0ac --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/replay/ARITHMETIC-BOUNDS.json @@ -0,0 +1,12 @@ +{ + "status": "PASS", + "bounds": { + "producer_R_transpose_sum": 262144, + "producer_R_sum": 3670016, + "review_sparse_row_sum": 14680064, + "moment_sum": 17591917608960, + "field_product": 4294967296, + "Bareiss_absolute_difference": 4294967296 + }, + "reason": "Every vector residue is between 0 and 65536. SHAKE observers are between 0 and 65535. Products in elimination have two nonnegative factors at most 65536; their difference has absolute value at most 65536 squared." +} diff --git a/research/centre-polynomial-cache-limits/review/replay/EXTRA-REJECTION-CONTROLS.json b/research/centre-polynomial-cache-limits/review/replay/EXTRA-REJECTION-CONTROLS.json new file mode 100644 index 0000000000..54bc72cb54 --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/replay/EXTRA-REJECTION-CONTROLS.json @@ -0,0 +1,5 @@ +{ + "status": "PASS", + "changed_moment_rejected": true, + "changed_interface_bytes_rejected": true +} diff --git a/research/centre-polynomial-cache-limits/review/replay/FORWARD-QUERY-REPRODUCED.json b/research/centre-polynomial-cache-limits/review/replay/FORWARD-QUERY-REPRODUCED.json new file mode 100644 index 0000000000..e787936acd --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/replay/FORWARD-QUERY-REPRODUCED.json @@ -0,0 +1,8 @@ +{ + "status": "PASS", + "scalar_gates": 10851, + "rows": 8, + "columns": 112, + "row_absolute_sum": 56, + "column_absolute_sum": 4 +} diff --git a/research/centre-polynomial-cache-limits/review/replay/SOURCE-BINDING-REPRODUCED.json b/research/centre-polynomial-cache-limits/review/replay/SOURCE-BINDING-REPRODUCED.json new file mode 100644 index 0000000000..b35a3c065c --- /dev/null +++ b/research/centre-polynomial-cache-limits/review/replay/SOURCE-BINDING-REPRODUCED.json @@ -0,0 +1,14 @@ +{ + "status": "PASS", + "archive_sha256": "22c3f4dce4b897a1d423d1388801933e288b6a6b1906cb15e1b16a5eb68db754", + "members": { + "slots/local/CANONICAL-WORD.json.gz": { + "bytes": 84805, + "sha256": "16bc0ebb04b4be6c0ade74badc6a0c0cdba4215eda86e4ff9f13abf8ecebd219" + }, + "slots/local/LOCAL-PROGRAMS.json.gz": { + "bytes": 209318, + "sha256": "241fde27d4e43f5a9cb6b128f9f76c5131a53d09f0371676163f914d0b0fef3a" + } + } +} diff --git a/research/centre-polynomial-cache-limits/validation/PHASE-CACHE-CHECK.json b/research/centre-polynomial-cache-limits/validation/PHASE-CACHE-CHECK.json new file mode 100644 index 0000000000..3abadcc749 --- /dev/null +++ b/research/centre-polynomial-cache-limits/validation/PHASE-CACHE-CHECK.json @@ -0,0 +1,107 @@ +{ + "arithmetic": "fractions.Fraction over Q", + "cache_invariant_under_all_normal_directions": true, + "coordinate_dimensions": [ + 8, + 16, + 31, + 53, + 85, + 101, + 112, + 112, + 112, + 112 + ], + "explicit_cache_rank": 56, + "interface_sha256": "5c6c51fbffc07a683e922f17532fd90262ae9e23cc3560a696002073dd234ef3", + "missing_projection_index": 0, + "normal_dimensions": [ + 8, + 15, + 28, + 44, + 44, + 56, + 56, + 56, + 56 + ], + "normal_directions": [ + 42, + 7, + 25, + 52, + 82, + 127, + 97, + 76 + ], + "normal_fiber_sizes_and_ranks": [ + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ] + ], + "query_rows_in_cache": true, + "removed_row_control_rejected": true, + "scope": "Finite counts and a basis construction for the pinned query. The written proof gives the general theorem. No native cost or kappa claim.", + "stacked_rank_histogram": { + "8": 2, + "15": 16, + "16": 494 + }, + "status": "PASS_EXACT_MINIMAL_SCALAR_CACHE_COUNTS" +} diff --git a/research/centre-polynomial-cache-limits/validation/REPLAY.json b/research/centre-polynomial-cache-limits/validation/REPLAY.json new file mode 100644 index 0000000000..81e014e9a1 --- /dev/null +++ b/research/centre-polynomial-cache-limits/validation/REPLAY.json @@ -0,0 +1,123 @@ +{ + "bell_independent_review_receipt_equal": true, + "bell_producer_receipt_equal": true, + "historical_source_commit": "bce54fb3f895cbe5cd4c0eb477c3afeed100190f", + "not_run": [ + "Full supplier replay", + "Native decoder", + "Selected frontier replay", + "Outer kappa calculation", + "Formal-kernel proof" + ], + "numpy_version": "2.5.4", + "phase_cache_check": { + "arithmetic": "fractions.Fraction over Q", + "cache_invariant_under_all_normal_directions": true, + "coordinate_dimensions": [ + 8, + 16, + 31, + 53, + 85, + 101, + 112, + 112, + 112, + 112 + ], + "explicit_cache_rank": 56, + "interface_sha256": "5c6c51fbffc07a683e922f17532fd90262ae9e23cc3560a696002073dd234ef3", + "missing_projection_index": 0, + "normal_dimensions": [ + 8, + 15, + 28, + 44, + 44, + 56, + 56, + 56, + 56 + ], + "normal_directions": [ + 42, + 7, + 25, + 52, + 82, + 127, + 97, + 76 + ], + "normal_fiber_sizes_and_ranks": [ + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ], + [ + 8, + 4 + ] + ], + "query_rows_in_cache": true, + "removed_row_control_rejected": true, + "scope": "Finite counts and a basis construction for the pinned query. The written proof gives the general theorem. No native cost or kappa claim.", + "stacked_rank_histogram": { + "15": 16, + "16": 494, + "8": 2 + }, + "status": "PASS_EXACT_MINIMAL_SCALAR_CACHE_COUNTS" + }, + "python_version": "3.14.7", + "source_files_checked": 17, + "status": "PASS_CENTRE_POLYNOMIAL_CACHE_LIMITS" +} diff --git a/research/centre-polynomial-cache-limits/validation/bell-producer-stderr.txt b/research/centre-polynomial-cache-limits/validation/bell-producer-stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/centre-polynomial-cache-limits/validation/bell-producer-stdout.txt b/research/centre-polynomial-cache-limits/validation/bell-producer-stdout.txt new file mode 100644 index 0000000000..7bfeefede7 --- /dev/null +++ b/research/centre-polynomial-cache-limits/validation/bell-producer-stdout.txt @@ -0,0 +1,2 @@ +PASS_EXACT_CHARACTERISTIC_ZERO_GRAM_DEGREE_LOWER_BOUND +{"hankel_determinant_mod_prime": 2984, "hankel_size": 409, "moments_sha256": "a438880f142ea5c0a53120246fa5aed60c36db1d8052c911b485345fcb332150"} diff --git a/research/centre-polynomial-cache-limits/validation/bell-review-stderr.txt b/research/centre-polynomial-cache-limits/validation/bell-review-stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/centre-polynomial-cache-limits/validation/bell-review-stdout.txt b/research/centre-polynomial-cache-limits/validation/bell-review-stdout.txt new file mode 100644 index 0000000000..17efc32524 --- /dev/null +++ b/research/centre-polynomial-cache-limits/validation/bell-review-stdout.txt @@ -0,0 +1,2 @@ +PASS_INDEPENDENT_EXACT_BELL_GRAM_DEGREE_CERTIFICATE +{"hankel_determinant_mod_prime": 2984, "integer_operator_nonzero_entries": 499072} diff --git a/research/centre-polynomial-cache-limits/validation/phase-cache-stderr.txt b/research/centre-polynomial-cache-limits/validation/phase-cache-stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/centre-polynomial-cache-limits/validation/phase-cache-stdout.txt b/research/centre-polynomial-cache-limits/validation/phase-cache-stdout.txt new file mode 100644 index 0000000000..5e6d1b4426 --- /dev/null +++ b/research/centre-polynomial-cache-limits/validation/phase-cache-stdout.txt @@ -0,0 +1 @@ +PASS_EXACT_MINIMAL_SCALAR_CACHE_COUNTS