From 35a28377547cc2f558f9ec53ca599c37dd2d4b4d Mon Sep 17 00:00:00 2001 From: d3lerium Date: Sat, 24 Oct 2026 07:44:46 +1100 Subject: [PATCH 1/4] Independently validate PR5377 owned relation and conditional kappa --- .../.gitattributes | 2 + .../CAPSULE.json | 765 ++ .../README.md | 60 + .../REGISTERED-REPLAY.stderr.log | 0 .../REGISTERED-REPLAY.stdout.log | 85 + .../REPLAY.json | 97 + .../SOURCE-GUARDS.json | 384 + .../SOURCES.json | 18 + .../TASK.json | 106 + .../VERIFY.json | 28 + .../capsule/certificates/selected-result.json | 85 + .../docs/research/agent-task-catalog.json | 1242 +++ .../free-word-tensor-lift-audit/PROOF.md | 174 + .../higher-moment-strictification/verify.py | 421 + .../joint-helper-lattice/CONTROLLER.json | 5224 ++++++++++++ .../buffer-borrowing/verify_buffers.py | 351 + .../price_profile.py | 147 + .../kappa-owned-relation-20261023/README.md | 249 + .../kappa-owned-relation-20261023/RESULT.json | 373 + .../SOURCES.json | 90 + .../kappa-owned-relation-20261023/TASK.json | 80 + .../kappa-owned-relation-20261023/VERIFY.json | 38 + .../WORD.json.gz | Bin 0 -> 206987 bytes .../kappa-owned-relation-20261023/native.py | 299 + .../kappa-owned-relation-20261023/price.py | 196 + .../kappa-owned-relation-20261023/verify.py | 64 + .../architecture/mixed_target_probe.py | 291 + .../complex/native_extensions.py | 233 + .../ACTUAL-WORD.json.gz | Bin 0 -> 207673 bytes .../PHASE-VALIDATION.json.gz | Bin 0 -> 23356 bytes .../ARITHMETIC.json | 241 + .../dependencies/compiler-refill/endpoint.py | 240 + .../query-thinned-controllers/RESULT.json | 356 + .../capsule/scripts/check_research_commit.py | 149 + .../capsule/scripts/research_package.py | 1022 +++ .../engines/cost/check_cost.py | 127 + .../cost/frozen/4610-round6-ARITHMETIC.json | 241 + .../engines/cost/frozen/4610review-pinned.txt | 137 + .../cost/frozen/4610validation-pinned.txt | 71 + .../engines/cost/frozen/ACTUAL-WORD.json.gz | Bin 0 -> 207673 bytes .../cost/frozen/FINITE-TEMPLATE-CLOSURE.md | 339 + .../engines/cost/frozen/README.md | 249 + .../engines/cost/frozen/RESULT.json | 373 + .../engines/cost/frozen/SOURCES.json | 90 + .../engines/cost/frozen/SPECIALIZATION.md | 130 + .../engines/cost/frozen/TASK.json | 80 + .../engines/cost/frozen/VERIFY.json | 38 + .../engines/cost/frozen/WORD.json.gz | Bin 0 -> 206987 bytes .../engines/cost/frozen/agents-initial.txt | 86 + .../cost/frozen/autoresearch-initial.txt | 104 + .../engines/cost/frozen/compiler.py | 138 + .../cost/frozen/contributing-initial.txt | 101 + .../cost/frozen/controller-CONTROLLER.json | 5224 ++++++++++++ .../engines/cost/frozen/mixed_target_probe.py | 291 + .../engines/cost/frozen/native.py | 299 + .../engines/cost/frozen/price.py | 196 + .../engines/cost/frozen/priorities-pinned.txt | 164 + .../cost/frozen/query-thinned-RESULT.json | 356 + .../engines/cost/frozen/selected-initial.txt | 92 + .../engines/cost/frozen/verify.py | 64 + .../physical/independent_physical_check.py | 192 + .../physical/pinned/ACTUAL-WORD.json.gz | Bin 0 -> 207673 bytes .../physical/pinned/PHASE-VALIDATION.json.gz | Bin 0 -> 23356 bytes .../engines/physical/pinned/PROOF.md | 174 + .../engines/physical/pinned/README.md | 249 + .../engines/physical/pinned/RESULT.json | 373 + .../engines/physical/pinned/SOURCES.json | 90 + .../engines/physical/pinned/WORD.json.gz | Bin 0 -> 206987 bytes .../pinned/controller-CONTROLLER.json | 5224 ++++++++++++ .../physical/pinned/controller-PROOF.md | 102 + .../physical/pinned/controller-README.md | 46 + .../engines/physical/pinned/native.py | 299 + .../engines/physical/pinned/price.py | 196 + .../physical/pinned/selected-current.json | 92 + .../pinned/source4610-SPECIALIZATION.md | 130 + .../engines/physical/pinned/verify.py | 64 + .../engines/physical/pinned/verify_buffers.py | 351 + .../evidence/cold/BOUNDED-REGISTERED-RUN.json | 7533 +++++++++++++++++ .../cold/CAPSULE-PREFLIGHT-INITIAL.json | 119 + .../evidence/cold/EXACT-COMMIT.raw | 6 + .../cold/HEAD-WORKING-BLOB-BINDINGS.json | 92 + .../cold/PHYSICAL-EXTENSION-REVIEW.md | 51 + .../evidence/cold/POST-RUN-HASHES.json | 26 + .../evidence/cold/PRE-RUN-HASHES.json | 26 + .../evidence/cold/REGISTERED-COLD.stderr.log | 0 .../evidence/cold/REGISTERED-COLD.stdout.log | 5 + ...REGISTERED-COMMIT-PREFLIGHT-CORRECTED.json | 16 + .../evidence/cold/REGISTERED-PREFLIGHT.json | 32 + .../cold/SOURCE-HISTORY-PREFLIGHT.json | 16 + .../evidence/cold/VALIDATION.json | 142 + .../evidence/cold/run_guarded_registered.py | 89 + .../evidence/cost/FREEZE.json | 135 + .../evidence/cost/REPORT.md | 94 + .../evidence/cost/RESULT.json | 144 + .../evidence/cost/pr-pinned.json | 55 + .../evidence/physical/CONNECTOR-PINS.json | 99 + .../evidence/physical/PHYSICAL-REVIEW.md | 106 + .../evidence/physical/VERIFIED-PINS.json | 177 + .../evidence/physical/independent-result.json | 192 + .../evidence/physical/pr-pinned.json | 55 + .../1ec1119972c9aefe42525172d07b332fcff81cb4 | 6 + .../7c472563474e60185e6ca101a17622133d047e56 | 6 + .../c448d13c71908647f968b06cddb795ce7d288139 | 6 + .../02fdbbad293e674b3e2300ee89b37ed4dc623f6f | Bin 0 -> 9907 bytes .../19b1abce68e32239bd8ad6abf979584eb93ad269 | Bin 0 -> 575 bytes .../258aaa876ecb530c4c173c8e3ef93ccf87c81673 | Bin 0 -> 639 bytes .../2a0a5f9bd6dd582395a80e7e79938728f9a2848a | Bin 0 -> 639 bytes .../2e031598313cbec16dc20f87d6fbf5cee01c65d0 | Bin 0 -> 14080 bytes .../2f781f177482200db6432209f21d8e7d662fbba3 | Bin 0 -> 707 bytes .../32f0a466021c5f549d7a538a0807b30c7ca9f25a | Bin 0 -> 969 bytes .../33bac32f5e5cef7bfd90295ddaf387a692c0b13b | Bin 0 -> 1264 bytes .../368780035287bad0b8e9cd1a9f7da73223dfa456 | Bin 0 -> 445 bytes .../3e58974508669b0b52f53c56371b5f9c253ece4b | Bin 0 -> 797 bytes .../5eb7366e5276e445e0298498d2115d8302a17dee | Bin 0 -> 662 bytes .../665cbf769f1a354fc6d5f0472d838d6167db6052 | Bin 0 -> 641 bytes .../6d000ab094737cb47cdd98d07bd06d19d13dda52 | Bin 0 -> 1527 bytes .../74c4ba5ee249a16c2dfa2f82925166545463855a | Bin 0 -> 80 bytes .../8bed1ecc75af648c4b5fbf888b902e89ea94de00 | Bin 0 -> 663 bytes .../92bd281a274191242f183544f5ebab24b7f61127 | Bin 0 -> 6799 bytes .../93c3da5da0a527baf42dbbe76e7af010384def87 | Bin 0 -> 599 bytes .../9b4af599b5540b1ddd45c85e37a42823ea293948 | Bin 0 -> 85 bytes .../9e6b7e5211cb17e7f0ede269269af71e115ad5ef | Bin 0 -> 342 bytes .../a197205550f7cf2fb4e47301f3dac6f6f7939b5a | Bin 0 -> 84 bytes .../a45bf9b51639925a97e26e9cbd987044b588b383 | Bin 0 -> 91 bytes .../a9b40c52daf304d6a3276b101d53b307a99b4275 | Bin 0 -> 6708 bytes .../aa1dcd2b4b0a2d5c26940ad29e76603ef1827099 | Bin 0 -> 382 bytes .../bfb420045d2bc04dd026b5020aea84d547873ef4 | Bin 0 -> 969 bytes .../c17001801c6fe1884bad5a2fec92d7f004490db1 | Bin 0 -> 219674 bytes .../c211d4eb07730865bffd69a35a85a0642acc333d | Bin 0 -> 219618 bytes .../c9e8162787e0e6ac9d3da8c5b388fcda8e7b5fd8 | Bin 0 -> 915 bytes .../ca6f51bb3b6474cfa4111ebafa02b1913a807446 | Bin 0 -> 526 bytes .../db06c76a46083783b675e5a5ce418c52a400d350 | Bin 0 -> 1307 bytes .../e4370e0bff125a6575ed3c073d24aa1a984323d1 | Bin 0 -> 969 bytes .../e6ae7fb7f6eee1465b54989e937f0bc80b1c3a76 | Bin 0 -> 740 bytes .../e9c70b9927d6e9233633e4e88108f831e7c5c5d9 | Bin 0 -> 14144 bytes .../verify.py | 172 + 136 files changed, 39082 insertions(+) create mode 100644 research/owned-relation-independent-validation/.gitattributes create mode 100644 research/owned-relation-independent-validation/CAPSULE.json create mode 100644 research/owned-relation-independent-validation/README.md create mode 100644 research/owned-relation-independent-validation/REGISTERED-REPLAY.stderr.log create mode 100644 research/owned-relation-independent-validation/REGISTERED-REPLAY.stdout.log create mode 100644 research/owned-relation-independent-validation/REPLAY.json create mode 100644 research/owned-relation-independent-validation/SOURCE-GUARDS.json create mode 100644 research/owned-relation-independent-validation/SOURCES.json create mode 100644 research/owned-relation-independent-validation/TASK.json create mode 100644 research/owned-relation-independent-validation/VERIFY.json create mode 100644 research/owned-relation-independent-validation/capsule/certificates/selected-result.json create mode 100644 research/owned-relation-independent-validation/capsule/docs/research/agent-task-catalog.json create mode 100644 research/owned-relation-independent-validation/capsule/research/free-word-tensor-lift-audit/PROOF.md create mode 100644 research/owned-relation-independent-validation/capsule/research/higher-moment-strictification/verify.py create mode 100644 research/owned-relation-independent-validation/capsule/research/joint-helper-lattice/CONTROLLER.json create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-interface-round2-20261022/price_profile.py create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/README.md create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/RESULT.json create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/SOURCES.json create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/TASK.json create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/VERIFY.json create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/WORD.json.gz create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/native.py create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/price.py create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/verify.py create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-rebuild/architecture/mixed_target_probe.py create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-rebuild/complex/native_extensions.py create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz create mode 100644 research/owned-relation-independent-validation/capsule/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json create mode 100644 research/owned-relation-independent-validation/capsule/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py create mode 100644 research/owned-relation-independent-validation/capsule/research/query-thinned-controllers/RESULT.json create mode 100644 research/owned-relation-independent-validation/capsule/scripts/check_research_commit.py create mode 100644 research/owned-relation-independent-validation/capsule/scripts/research_package.py create mode 100644 research/owned-relation-independent-validation/engines/cost/check_cost.py create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/4610-round6-ARITHMETIC.json create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/4610review-pinned.txt create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/4610validation-pinned.txt create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/ACTUAL-WORD.json.gz create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/FINITE-TEMPLATE-CLOSURE.md create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/README.md create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/RESULT.json create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/SOURCES.json create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/SPECIALIZATION.md create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/TASK.json create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/VERIFY.json create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/WORD.json.gz create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/agents-initial.txt create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/autoresearch-initial.txt create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/compiler.py create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/contributing-initial.txt create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/controller-CONTROLLER.json create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/mixed_target_probe.py create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/native.py create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/price.py create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/priorities-pinned.txt create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/query-thinned-RESULT.json create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/selected-initial.txt create mode 100644 research/owned-relation-independent-validation/engines/cost/frozen/verify.py create mode 100644 research/owned-relation-independent-validation/engines/physical/independent_physical_check.py create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/ACTUAL-WORD.json.gz create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/PHASE-VALIDATION.json.gz create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/PROOF.md create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/README.md create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/RESULT.json create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/SOURCES.json create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/WORD.json.gz create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/controller-CONTROLLER.json create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/controller-PROOF.md create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/controller-README.md create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/native.py create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/price.py create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/selected-current.json create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/source4610-SPECIALIZATION.md create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/verify.py create mode 100644 research/owned-relation-independent-validation/engines/physical/pinned/verify_buffers.py create mode 100644 research/owned-relation-independent-validation/evidence/cold/BOUNDED-REGISTERED-RUN.json create mode 100644 research/owned-relation-independent-validation/evidence/cold/CAPSULE-PREFLIGHT-INITIAL.json create mode 100644 research/owned-relation-independent-validation/evidence/cold/EXACT-COMMIT.raw create mode 100644 research/owned-relation-independent-validation/evidence/cold/HEAD-WORKING-BLOB-BINDINGS.json create mode 100644 research/owned-relation-independent-validation/evidence/cold/PHYSICAL-EXTENSION-REVIEW.md create mode 100644 research/owned-relation-independent-validation/evidence/cold/POST-RUN-HASHES.json create mode 100644 research/owned-relation-independent-validation/evidence/cold/PRE-RUN-HASHES.json create mode 100644 research/owned-relation-independent-validation/evidence/cold/REGISTERED-COLD.stderr.log create mode 100644 research/owned-relation-independent-validation/evidence/cold/REGISTERED-COLD.stdout.log create mode 100644 research/owned-relation-independent-validation/evidence/cold/REGISTERED-COMMIT-PREFLIGHT-CORRECTED.json create mode 100644 research/owned-relation-independent-validation/evidence/cold/REGISTERED-PREFLIGHT.json create mode 100644 research/owned-relation-independent-validation/evidence/cold/SOURCE-HISTORY-PREFLIGHT.json create mode 100644 research/owned-relation-independent-validation/evidence/cold/VALIDATION.json create mode 100644 research/owned-relation-independent-validation/evidence/cold/run_guarded_registered.py create mode 100644 research/owned-relation-independent-validation/evidence/cost/FREEZE.json create mode 100644 research/owned-relation-independent-validation/evidence/cost/REPORT.md create mode 100644 research/owned-relation-independent-validation/evidence/cost/RESULT.json create mode 100644 research/owned-relation-independent-validation/evidence/cost/pr-pinned.json create mode 100644 research/owned-relation-independent-validation/evidence/physical/CONNECTOR-PINS.json create mode 100644 research/owned-relation-independent-validation/evidence/physical/PHYSICAL-REVIEW.md create mode 100644 research/owned-relation-independent-validation/evidence/physical/VERIFIED-PINS.json create mode 100644 research/owned-relation-independent-validation/evidence/physical/independent-result.json create mode 100644 research/owned-relation-independent-validation/evidence/physical/pr-pinned.json create mode 100644 research/owned-relation-independent-validation/git-evidence/commit/1ec1119972c9aefe42525172d07b332fcff81cb4 create mode 100644 research/owned-relation-independent-validation/git-evidence/commit/7c472563474e60185e6ca101a17622133d047e56 create mode 100644 research/owned-relation-independent-validation/git-evidence/commit/c448d13c71908647f968b06cddb795ce7d288139 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/02fdbbad293e674b3e2300ee89b37ed4dc623f6f create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/19b1abce68e32239bd8ad6abf979584eb93ad269 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/258aaa876ecb530c4c173c8e3ef93ccf87c81673 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/2a0a5f9bd6dd582395a80e7e79938728f9a2848a create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/2e031598313cbec16dc20f87d6fbf5cee01c65d0 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/2f781f177482200db6432209f21d8e7d662fbba3 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/32f0a466021c5f549d7a538a0807b30c7ca9f25a create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/33bac32f5e5cef7bfd90295ddaf387a692c0b13b create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/368780035287bad0b8e9cd1a9f7da73223dfa456 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/3e58974508669b0b52f53c56371b5f9c253ece4b create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/5eb7366e5276e445e0298498d2115d8302a17dee create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/665cbf769f1a354fc6d5f0472d838d6167db6052 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/6d000ab094737cb47cdd98d07bd06d19d13dda52 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/74c4ba5ee249a16c2dfa2f82925166545463855a create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/8bed1ecc75af648c4b5fbf888b902e89ea94de00 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/92bd281a274191242f183544f5ebab24b7f61127 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/93c3da5da0a527baf42dbbe76e7af010384def87 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/9b4af599b5540b1ddd45c85e37a42823ea293948 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/9e6b7e5211cb17e7f0ede269269af71e115ad5ef create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/a197205550f7cf2fb4e47301f3dac6f6f7939b5a create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/a45bf9b51639925a97e26e9cbd987044b588b383 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/a9b40c52daf304d6a3276b101d53b307a99b4275 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/aa1dcd2b4b0a2d5c26940ad29e76603ef1827099 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/bfb420045d2bc04dd026b5020aea84d547873ef4 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/c17001801c6fe1884bad5a2fec92d7f004490db1 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/c211d4eb07730865bffd69a35a85a0642acc333d create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/c9e8162787e0e6ac9d3da8c5b388fcda8e7b5fd8 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/ca6f51bb3b6474cfa4111ebafa02b1913a807446 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/db06c76a46083783b675e5a5ce418c52a400d350 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/e4370e0bff125a6575ed3c073d24aa1a984323d1 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/e6ae7fb7f6eee1465b54989e937f0bc80b1c3a76 create mode 100644 research/owned-relation-independent-validation/git-evidence/tree/e9c70b9927d6e9233633e4e88108f831e7c5c5d9 create mode 100644 research/owned-relation-independent-validation/verify.py diff --git a/research/owned-relation-independent-validation/.gitattributes b/research/owned-relation-independent-validation/.gitattributes new file mode 100644 index 0000000000..fc5763a274 --- /dev/null +++ b/research/owned-relation-independent-validation/.gitattributes @@ -0,0 +1,2 @@ +# Preserve every retained source/report byte, including original CRLF. +* -text diff --git a/research/owned-relation-independent-validation/CAPSULE.json b/research/owned-relation-independent-validation/CAPSULE.json new file mode 100644 index 0000000000..5251a72a9c --- /dev/null +++ b/research/owned-relation-independent-validation/CAPSULE.json @@ -0,0 +1,765 @@ +{ + "schema_version": 1, + "canonical_base": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "author_head": "c448d13c71908647f968b06cddb795ce7d288139", + "author_base": "7c472563474e60185e6ca101a17622133d047e56", + "frozen_cold_complete": true, + "files": [ + { + "path": "capsule/certificates/selected-result.json", + "bytes": 4922, + "sha256": "6fe0a099b89aa2aed796a13c3a21dafc63f3388ebf397464e44e0451893b9375", + "git_blob": "c35482cd9035843b15a634cc8276a7e1e40e8395" + }, + { + "path": "capsule/docs/research/agent-task-catalog.json", + "bytes": 77545, + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602" + }, + { + "path": "capsule/research/free-word-tensor-lift-audit/PROOF.md", + "bytes": 9907, + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e" + }, + { + "path": "capsule/research/higher-moment-strictification/verify.py", + "bytes": 17152, + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699" + }, + { + "path": "capsule/research/joint-helper-lattice/CONTROLLER.json", + "bytes": 57924, + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5" + }, + { + "path": "capsule/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "bytes": 17028, + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb" + }, + { + "path": "capsule/research/kappa-interface-round2-20261022/price_profile.py", + "bytes": 9107, + "sha256": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb", + "git_blob": "1d93e43d1cb888d128c2faa2be83a96d85b84295" + }, + { + "path": "capsule/research/kappa-owned-relation-20261023/README.md", + "bytes": 14031, + "sha256": "eb853337dfaf306808d77538e448a78f16021a2e73295078b4b2f4ff6ea835c4", + "git_blob": "777f4e1d5114e35ba6de2a8e818b790b16aca655" + }, + { + "path": "capsule/research/kappa-owned-relation-20261023/RESULT.json", + "bytes": 12680, + "sha256": "1937b2e1fb4bec0fa1b0d2428a52734c554152538ac8930605bd46704f1c7320", + "git_blob": "27b4e5470812c2b9feaa54fbfe867b3fb68def68" + }, + { + "path": "capsule/research/kappa-owned-relation-20261023/SOURCES.json", + "bytes": 3665, + "sha256": "eca6dd5ac3028a72e016e0c8a265be702dd6c4daf481bc009524577ff5e7c831", + "git_blob": "9854abbb4f66f20aad8ab5016ede8319cd47519c" + }, + { + "path": "capsule/research/kappa-owned-relation-20261023/TASK.json", + "bytes": 5873, + "sha256": "b9a9ace02d10791b49cf113dd6a19501b297920a29b9a4d5585e25ef4e8ef92f", + "git_blob": "f5df24ffe3bc51288ab57d55494b1db8684d7de9" + }, + { + "path": "capsule/research/kappa-owned-relation-20261023/VERIFY.json", + "bytes": 1298, + "sha256": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8", + "git_blob": "8098df4c806a6c6e9e2be7253ba4101744dab08d" + }, + { + "path": "capsule/research/kappa-owned-relation-20261023/WORD.json.gz", + "bytes": 206987, + "sha256": "8d913767ad773839995e54e4d80aeff692a86687d0f78153311c8ad62b7ba1bc", + "git_blob": "5e79bd826c6ca1e782766ea0ae28a61d136303d1" + }, + { + "path": "capsule/research/kappa-owned-relation-20261023/native.py", + "bytes": 14132, + "sha256": "85d994fc5661bfa53c4b42f79955ff74ffe70072163cb02fa76cd79efbcc0c97", + "git_blob": "b8249ed7ba981a798ba282a6aeabd81a600bda36" + }, + { + "path": "capsule/research/kappa-owned-relation-20261023/price.py", + "bytes": 13084, + "sha256": "e228a48de6138257da7520bb57567a275c402289c90fe7e94f0ef2ad6371f836", + "git_blob": "6077adf74c1a154e5f790411f774a52745eb5281" + }, + { + "path": "capsule/research/kappa-owned-relation-20261023/verify.py", + "bytes": 3443, + "sha256": "c4d4fe9b74db1d47fbbfc0c602315d8256a15f0ad0e50b9fcfe2249bf65916f1", + "git_blob": "b19f7d0ca4a6e61a0a75595bbc413f9341e84717" + }, + { + "path": "capsule/research/kappa-rebuild/architecture/mixed_target_probe.py", + "bytes": 12298, + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e" + }, + { + "path": "capsule/research/kappa-rebuild/complex/native_extensions.py", + "bytes": 12470, + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3", + "git_blob": "7f84894efc309546a903d314c7ac1473e7f594a8" + }, + { + "path": "capsule/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "bytes": 207673, + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e" + }, + { + "path": "capsule/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "bytes": 23356, + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88" + }, + { + "path": "capsule/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "bytes": 10555, + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3" + }, + { + "path": "capsule/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "bytes": 11603, + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59" + }, + { + "path": "capsule/research/query-thinned-controllers/RESULT.json", + "bytes": 10237, + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c" + }, + { + "path": "capsule/scripts/check_research_commit.py", + "bytes": 7048, + "sha256": "28fed1e156fe8601633ed453f682a158cb15e94981e6c89ed96ae72ffc9d0c6f", + "git_blob": "7ab20e1487b5075ba8642505e6c75035e2885cc0" + }, + { + "path": "capsule/scripts/research_package.py", + "bytes": 50854, + "sha256": "8e07ddee4d8e1c70a278538b2758d423a298b96d5d1a18233dc29925696fc96f", + "git_blob": "ef9b52c392323362621baf6ee188a26fc5122bf9" + }, + { + "path": "engines/cost/check_cost.py", + "bytes": 9370, + "sha256": "eb66bad5d584ab29d29dd3e9f2fa7b2e71405fc1b05a659eb299c428c1332443", + "git_blob": "5e89428037b5662ec9c9c5bfb3ce2c181ad1f59b" + }, + { + "path": "engines/cost/frozen/4610-round6-ARITHMETIC.json", + "bytes": 10555, + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3" + }, + { + "path": "engines/cost/frozen/4610review-pinned.txt", + "bytes": 8277, + "sha256": "b84f833e3072cbab372fbda2ece98fbc031c15e590cf73003ddea35a5222e148", + "git_blob": "bf5ff049da5fa07f9bf71176dfafe3343b7ac93d" + }, + { + "path": "engines/cost/frozen/4610validation-pinned.txt", + "bytes": 3281, + "sha256": "dac94ab6a32b5b8ab21282ecb25ce50e3e936196a0dfcae3d71717ceb99f3319", + "git_blob": "98fa64f2795dc9ba7fda012b723b6b620b153e70" + }, + { + "path": "engines/cost/frozen/ACTUAL-WORD.json.gz", + "bytes": 207673, + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e" + }, + { + "path": "engines/cost/frozen/FINITE-TEMPLATE-CLOSURE.md", + "bytes": 15369, + "sha256": "3f8508c63862dd83968bd30df91b08ba5afcee1e10db15ca546cdff0caef95d9", + "git_blob": "9917ac5543608047fd368e5e75f0851310f53584" + }, + { + "path": "engines/cost/frozen/README.md", + "bytes": 14031, + "sha256": "eb853337dfaf306808d77538e448a78f16021a2e73295078b4b2f4ff6ea835c4", + "git_blob": "777f4e1d5114e35ba6de2a8e818b790b16aca655" + }, + { + "path": "engines/cost/frozen/RESULT.json", + "bytes": 12680, + "sha256": "1937b2e1fb4bec0fa1b0d2428a52734c554152538ac8930605bd46704f1c7320", + "git_blob": "27b4e5470812c2b9feaa54fbfe867b3fb68def68" + }, + { + "path": "engines/cost/frozen/SOURCES.json", + "bytes": 3665, + "sha256": "eca6dd5ac3028a72e016e0c8a265be702dd6c4daf481bc009524577ff5e7c831", + "git_blob": "9854abbb4f66f20aad8ab5016ede8319cd47519c" + }, + { + "path": "engines/cost/frozen/SPECIALIZATION.md", + "bytes": 19802, + "sha256": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c", + "git_blob": "7ee84b30892f7354e1c36611f1a5e9b082dc6147" + }, + { + "path": "engines/cost/frozen/TASK.json", + "bytes": 5873, + "sha256": "b9a9ace02d10791b49cf113dd6a19501b297920a29b9a4d5585e25ef4e8ef92f", + "git_blob": "f5df24ffe3bc51288ab57d55494b1db8684d7de9" + }, + { + "path": "engines/cost/frozen/VERIFY.json", + "bytes": 1298, + "sha256": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8", + "git_blob": "8098df4c806a6c6e9e2be7253ba4101744dab08d" + }, + { + "path": "engines/cost/frozen/WORD.json.gz", + "bytes": 206987, + "sha256": "8d913767ad773839995e54e4d80aeff692a86687d0f78153311c8ad62b7ba1bc", + "git_blob": "5e79bd826c6ca1e782766ea0ae28a61d136303d1" + }, + { + "path": "engines/cost/frozen/agents-initial.txt", + "bytes": 5580, + "sha256": "eb25d8ec495b80190a4b1a634710819bb74f0fae88d5203285c2b75b6f147347", + "git_blob": "aea5573d1b65cef7d9e08ced46d869e75da8145b" + }, + { + "path": "engines/cost/frozen/autoresearch-initial.txt", + "bytes": 5986, + "sha256": "d16f0d3bb4d4b213d06c128db6d6460b0fe9ec1ac5a6c1ea1febf1db40e7b60d", + "git_blob": "2fe84a7b30b1e26e60ce0ec4775894eb1831c5d6" + }, + { + "path": "engines/cost/frozen/compiler.py", + "bytes": 10669, + "sha256": "4ec862afb1b0c18cecebec9b04d692be37083da64814da79ad692da96fd62bb5", + "git_blob": "6a6f9373fe33d20e6aa7588ddcf86dde6a33a26a" + }, + { + "path": "engines/cost/frozen/contributing-initial.txt", + "bytes": 7143, + "sha256": "8a49fe97e2ad088a2b2e0c5b222aaab08752783b1f9c1260790d7dd13011d215", + "git_blob": "fe54f23f19b082a9f8df3da9b2e205f7e230acf3" + }, + { + "path": "engines/cost/frozen/controller-CONTROLLER.json", + "bytes": 57924, + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5" + }, + { + "path": "engines/cost/frozen/mixed_target_probe.py", + "bytes": 12298, + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e" + }, + { + "path": "engines/cost/frozen/native.py", + "bytes": 14132, + "sha256": "85d994fc5661bfa53c4b42f79955ff74ffe70072163cb02fa76cd79efbcc0c97", + "git_blob": "b8249ed7ba981a798ba282a6aeabd81a600bda36" + }, + { + "path": "engines/cost/frozen/price.py", + "bytes": 13084, + "sha256": "e228a48de6138257da7520bb57567a275c402289c90fe7e94f0ef2ad6371f836", + "git_blob": "6077adf74c1a154e5f790411f774a52745eb5281" + }, + { + "path": "engines/cost/frozen/priorities-pinned.txt", + "bytes": 11950, + "sha256": "7ea971a336bf526719ae1f21617038301ab95d9853a38b92c332a9ffb968297a", + "git_blob": "b4ece97a60dcc3a33b04d83e9f1093e60326ac4a" + }, + { + "path": "engines/cost/frozen/query-thinned-RESULT.json", + "bytes": 10237, + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c" + }, + { + "path": "engines/cost/frozen/selected-initial.txt", + "bytes": 5495, + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e" + }, + { + "path": "engines/cost/frozen/verify.py", + "bytes": 3443, + "sha256": "c4d4fe9b74db1d47fbbfc0c602315d8256a15f0ad0e50b9fcfe2249bf65916f1", + "git_blob": "b19f7d0ca4a6e61a0a75595bbc413f9341e84717" + }, + { + "path": "engines/physical/independent_physical_check.py", + "bytes": 10400, + "sha256": "1844fdce0be7c089da96007d6506bcbf14a1c2824b1557ad30541b6fc26e76ae", + "git_blob": "26a51ca92093d5e46855f61d5a7b6c42b774b7dc" + }, + { + "path": "engines/physical/pinned/ACTUAL-WORD.json.gz", + "bytes": 207673, + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e" + }, + { + "path": "engines/physical/pinned/PHASE-VALIDATION.json.gz", + "bytes": 23356, + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88" + }, + { + "path": "engines/physical/pinned/PROOF.md", + "bytes": 9907, + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e" + }, + { + "path": "engines/physical/pinned/README.md", + "bytes": 14031, + "sha256": "eb853337dfaf306808d77538e448a78f16021a2e73295078b4b2f4ff6ea835c4", + "git_blob": "777f4e1d5114e35ba6de2a8e818b790b16aca655" + }, + { + "path": "engines/physical/pinned/RESULT.json", + "bytes": 12680, + "sha256": "1937b2e1fb4bec0fa1b0d2428a52734c554152538ac8930605bd46704f1c7320", + "git_blob": "27b4e5470812c2b9feaa54fbfe867b3fb68def68" + }, + { + "path": "engines/physical/pinned/SOURCES.json", + "bytes": 3665, + "sha256": "eca6dd5ac3028a72e016e0c8a265be702dd6c4daf481bc009524577ff5e7c831", + "git_blob": "9854abbb4f66f20aad8ab5016ede8319cd47519c" + }, + { + "path": "engines/physical/pinned/WORD.json.gz", + "bytes": 206987, + "sha256": "8d913767ad773839995e54e4d80aeff692a86687d0f78153311c8ad62b7ba1bc", + "git_blob": "5e79bd826c6ca1e782766ea0ae28a61d136303d1" + }, + { + "path": "engines/physical/pinned/controller-CONTROLLER.json", + "bytes": 57924, + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5" + }, + { + "path": "engines/physical/pinned/controller-PROOF.md", + "bytes": 11063, + "sha256": "43ef4251cc300f1b18cbe8cdb060f96f95748e6797d2478b4c04b79a8373ef91", + "git_blob": "e41106031da41fade7a7419c17a32c1bd9aa103b" + }, + { + "path": "engines/physical/pinned/controller-README.md", + "bytes": 5433, + "sha256": "e5e1a3a11d97fa771e0ec3a4e3e596714f7f3c036fed8c97f395f4c6637317cb", + "git_blob": "8c9bd69cd445bd05f18ffcf86d6feb556d634b14" + }, + { + "path": "engines/physical/pinned/native.py", + "bytes": 14132, + "sha256": "85d994fc5661bfa53c4b42f79955ff74ffe70072163cb02fa76cd79efbcc0c97", + "git_blob": "b8249ed7ba981a798ba282a6aeabd81a600bda36" + }, + { + "path": "engines/physical/pinned/price.py", + "bytes": 13084, + "sha256": "e228a48de6138257da7520bb57567a275c402289c90fe7e94f0ef2ad6371f836", + "git_blob": "6077adf74c1a154e5f790411f774a52745eb5281" + }, + { + "path": "engines/physical/pinned/selected-current.json", + "bytes": 5495, + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e" + }, + { + "path": "engines/physical/pinned/source4610-SPECIALIZATION.md", + "bytes": 19802, + "sha256": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c", + "git_blob": "7ee84b30892f7354e1c36611f1a5e9b082dc6147" + }, + { + "path": "engines/physical/pinned/verify.py", + "bytes": 3443, + "sha256": "c4d4fe9b74db1d47fbbfc0c602315d8256a15f0ad0e50b9fcfe2249bf65916f1", + "git_blob": "b19f7d0ca4a6e61a0a75595bbc413f9341e84717" + }, + { + "path": "engines/physical/pinned/verify_buffers.py", + "bytes": 17028, + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb" + }, + { + "path": "evidence/cold/BOUNDED-REGISTERED-RUN.json", + "bytes": 113632, + "sha256": "93a2b28e5a7b0b2720d8eefc2273925db60b5b4bd8af500b0308c92bc7607a39", + "git_blob": "769e26fd3a52e9ba5b994b2fbc7bc9fc935a7f46" + }, + { + "path": "evidence/cold/CAPSULE-PREFLIGHT-INITIAL.json", + "bytes": 6279, + "sha256": "064f030c12d59ad4494fc9c4b6bd3462dc2466fe882b5e704e59f9f52a1160a0", + "git_blob": "83031cecf5cdd2b48d42d1b1410e1e0d93d4cfd0" + }, + { + "path": "evidence/cold/EXACT-COMMIT.raw", + "bytes": 333, + "sha256": "6148e9de7767e18548fe1cc5a89d4a1aa8ab0059cd29f98c8a44df8f1e7d80e5", + "git_blob": "4d1d1ea199d03b09053887780740cd6a46ce47f0" + }, + { + "path": "evidence/cold/HEAD-WORKING-BLOB-BINDINGS.json", + "bytes": 3945, + "sha256": "04d465c90bd9ccc4299f762c12c1e599cad6d29db23a5df81e5c4a29fac3de26", + "git_blob": "3c182ef9d15c45b3194003442ab9d352e8cd0a3e" + }, + { + "path": "evidence/cold/PHYSICAL-EXTENSION-REVIEW.md", + "bytes": 8373, + "sha256": "1f386f91d57e349762a0e474c67997d653ff27a48a17eeab8c2e49bcd9f6a142", + "git_blob": "cdb05cf9efbd7efce85b13c5b5fe192d575edd31" + }, + { + "path": "evidence/cold/POST-RUN-HASHES.json", + "bytes": 2982, + "sha256": "35aa2409a422a0f9ba3fdedca6971a88f3bc6da1a9ec83634686a3b8e0e02206", + "git_blob": "8f98db63cf77300c2fed0303ee4008b37eeee83d" + }, + { + "path": "evidence/cold/PRE-RUN-HASHES.json", + "bytes": 2982, + "sha256": "35aa2409a422a0f9ba3fdedca6971a88f3bc6da1a9ec83634686a3b8e0e02206", + "git_blob": "8f98db63cf77300c2fed0303ee4008b37eeee83d" + }, + { + "path": "evidence/cold/REGISTERED-COLD.stderr.log", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391" + }, + { + "path": "evidence/cold/REGISTERED-COLD.stdout.log", + "bytes": 904, + "sha256": "47d795c51b65d124fd2667d42d2fe49fa51facac026e0529a7ab81b07d8b2477", + "git_blob": "bff6a67edf7655e26837b1370a1035fcbb1ad67c" + }, + { + "path": "evidence/cold/REGISTERED-COMMIT-PREFLIGHT-CORRECTED.json", + "bytes": 814, + "sha256": "b99af9e62e506640a766a5d9d83a02732c1a8126593ca8ea1b06fb0847215eaf", + "git_blob": "494ff2a17fc023d302404d2ca1a8a62a16fd0799" + }, + { + "path": "evidence/cold/REGISTERED-PREFLIGHT.json", + "bytes": 1019, + "sha256": "cf0111b1ff06b166e0435c1587c0e9001d7d761401da9d7c1cfef84d90b01336", + "git_blob": "fe9f374830cafe351e08ff9729ddb27cddb6fae5" + }, + { + "path": "evidence/cold/SOURCE-HISTORY-PREFLIGHT.json", + "bytes": 539, + "sha256": "b4f01b807f1a53bccf542e96d526d683a721e0e5848abd3a02d83d7681d1f12a", + "git_blob": "061088ea94501ce71b02abccbb4dd1e0adae53c4" + }, + { + "path": "evidence/cold/VALIDATION.json", + "bytes": 6557, + "sha256": "1bf5e1c1376361259cbf68032938790527a36266d824674bb33a77379a80a7ff", + "git_blob": "c34bfcdb95abb41ab73a614fe08d4f0486abd637" + }, + { + "path": "evidence/cold/run_guarded_registered.py", + "bytes": 4306, + "sha256": "4963d73e43a1cd78df5aff3457bf3286244608629724e4d42763e29c87a66988", + "git_blob": "c2ba986e0dd8bbabd5c1223158014321f8cd69d4" + }, + { + "path": "evidence/cost/FREEZE.json", + "bytes": 5576, + "sha256": "e5a484b24e8e19aa02faaeeeea68d9a00e7013016d9ac390fafa867b81392aa9", + "git_blob": "abef8086b97acd2550070bc968e39d3761b5fb64" + }, + { + "path": "evidence/cost/REPORT.md", + "bytes": 14642, + "sha256": "6c97edcbd69ffab608f6dd743071043ea53bc83687dabb82eb474229056eea03", + "git_blob": "aa855c967bd8583e98d65fa63bae2aa81d67f5ea" + }, + { + "path": "evidence/cost/RESULT.json", + "bytes": 5314, + "sha256": "c35e972b649f6004fd5706d22efa4206f29240f1569b512e4c422b54cd3cae65", + "git_blob": "59754588890a4c6de6fd3e92cd411e354bddc6d4" + }, + { + "path": "evidence/cost/pr-pinned.json", + "bytes": 153767, + "sha256": "ccf364a7218f7bdf90e4048171ce3b031afd4eb708a1697f79805e3a36e74f7d", + "git_blob": "17bf5dc372acaa2df478b38162c4a19c4fe4f98f" + }, + { + "path": "evidence/physical/CONNECTOR-PINS.json", + "bytes": 5200, + "sha256": "b5b29522d7ba93f345517ecfa00ed27b6eb3e24c6aed044eea574a500b06d614", + "git_blob": "28c84c15fa25fefa69891f3c7b652d43ed951c79" + }, + { + "path": "evidence/physical/PHYSICAL-REVIEW.md", + "bytes": 13787, + "sha256": "16dd6ba497b65acaf1d2772f56e6c7287641a86308895014259cf9db90c059ae", + "git_blob": "8c0d8f0965dfdf5fd6f3a748767c02f28a1c84dd" + }, + { + "path": "evidence/physical/VERIFIED-PINS.json", + "bytes": 8965, + "sha256": "bdb2573959498d869b240050ce30f4b0c9e402cc7e83b4a536fab25e2d86c667", + "git_blob": "af8d7ff8408b8124bc2ccedb8d79bdddac36d6fd" + }, + { + "path": "evidence/physical/independent-result.json", + "bytes": 3182, + "sha256": "ea1f513c9288b8eb8c379158d4088d1612e2472f1f075426d324ef435abe2601", + "git_blob": "10594c5d2f8c9f079c1c86d3a0e55bbcd3fdeebe" + }, + { + "path": "evidence/physical/pr-pinned.json", + "bytes": 153767, + "sha256": "ccf364a7218f7bdf90e4048171ce3b031afd4eb708a1697f79805e3a36e74f7d", + "git_blob": "17bf5dc372acaa2df478b38162c4a19c4fe4f98f" + }, + { + "path": "git-evidence/commit/1ec1119972c9aefe42525172d07b332fcff81cb4", + "bytes": 317, + "sha256": "8fc74b8fe0be2ef8075db0f654579721bcaf73fa7f1744cb23fe086edc553716", + "git_blob": "87c53f7af1142419df6216ff12b025c1a9623d57" + }, + { + "path": "git-evidence/commit/7c472563474e60185e6ca101a17622133d047e56", + "bytes": 307, + "sha256": "a01c2009baf760d4470ca92cc4641b51b200d83073cd3dd3ea2fa9868946ea32", + "git_blob": "644749f746b33e8851812afb198347cc26f07646" + }, + { + "path": "git-evidence/commit/c448d13c71908647f968b06cddb795ce7d288139", + "bytes": 333, + "sha256": "6148e9de7767e18548fe1cc5a89d4a1aa8ab0059cd29f98c8a44df8f1e7d80e5", + "git_blob": "4d1d1ea199d03b09053887780740cd6a46ce47f0" + }, + { + "path": "git-evidence/tree/02fdbbad293e674b3e2300ee89b37ed4dc623f6f", + "bytes": 9907, + "sha256": "9f5e14586bed06cd212709f9c6152e61417f4607a8905c941637fc68a79e857f", + "git_blob": "3636690bc87a774c8a9ef24eb5722ef76490420a" + }, + { + "path": "git-evidence/tree/19b1abce68e32239bd8ad6abf979584eb93ad269", + "bytes": 575, + "sha256": "b86777926b23d06339e922e520bb9d2aaa7eed869025b290ce7d8c046e013979", + "git_blob": "623cd2c5465369cfa995a91a2b0a7f8146043921" + }, + { + "path": "git-evidence/tree/258aaa876ecb530c4c173c8e3ef93ccf87c81673", + "bytes": 639, + "sha256": "32b88db989aaae9adf124ed59a8f391b8c7cc55175b3f191937c6d422b1e036a", + "git_blob": "8b24a7991ecfb62ced4315f45914928b0897102d" + }, + { + "path": "git-evidence/tree/2a0a5f9bd6dd582395a80e7e79938728f9a2848a", + "bytes": 639, + "sha256": "120fe002ef15545ac3d84ceca71d250910d8cc5fa38497fe9507b7cbcd29cb8b", + "git_blob": "28e03338fd596e5a9327f3e746a0b17e024cdff6" + }, + { + "path": "git-evidence/tree/2e031598313cbec16dc20f87d6fbf5cee01c65d0", + "bytes": 14080, + "sha256": "80b1f7f9361c1ca1b274d53a7505e9bad4d7bef9133c5ebbd7efa8eb4db2abba", + "git_blob": "d97d910555dcb6a62af091f1d73d3abb9bae23b8" + }, + { + "path": "git-evidence/tree/2f781f177482200db6432209f21d8e7d662fbba3", + "bytes": 707, + "sha256": "9bb093aa1ad199128bce47b6f958cd19db7df0b8fce36070b184d4e9eeff2341", + "git_blob": "4bcefb562a3f4877ff88fd6924a89264e7a903e1" + }, + { + "path": "git-evidence/tree/32f0a466021c5f549d7a538a0807b30c7ca9f25a", + "bytes": 969, + "sha256": "bddc86228590b0582a6400e1e2fe21ae88ef1209501d1ab2753a65b453324be7", + "git_blob": "a348b589f7c15b822a82f387823539271da2bc34" + }, + { + "path": "git-evidence/tree/33bac32f5e5cef7bfd90295ddaf387a692c0b13b", + "bytes": 1264, + "sha256": "4b28ce3448f21e4425dae0d9f55dedd67b6fcccada332e08e964b9129c122a50", + "git_blob": "846d43f54d3940b47ab126502b61a9e5ad1d5f38" + }, + { + "path": "git-evidence/tree/368780035287bad0b8e9cd1a9f7da73223dfa456", + "bytes": 445, + "sha256": "ab3e8e7e9ac2eb4668ad34f9b2f31cec0303f2de62162728128be1cb02c4f78a", + "git_blob": "2f56069423edc381bdaacf843aad9e04001cca32" + }, + { + "path": "git-evidence/tree/3e58974508669b0b52f53c56371b5f9c253ece4b", + "bytes": 797, + "sha256": "4785a00e3abd23489c2368faf23ff1a6d16a9713b8e08bd36c47e5af99022645", + "git_blob": "23ace975155e64094a8f5b58de2d8f6b7fec6842" + }, + { + "path": "git-evidence/tree/5eb7366e5276e445e0298498d2115d8302a17dee", + "bytes": 662, + "sha256": "af7fa9f859128b840067475d194ce562c10094558965f8726430d5d36fb8fcb9", + "git_blob": "8efaa4a725b0a7ed4e051b9a7338be95cbf9ce3a" + }, + { + "path": "git-evidence/tree/665cbf769f1a354fc6d5f0472d838d6167db6052", + "bytes": 641, + "sha256": "c2f7f800ecb29b5e6bf57890a28be0f977fec84acbf1bc35d982f2238816f85b", + "git_blob": "a3603b5e9c50d8e00cbbf3f22dd856677d6cf1b2" + }, + { + "path": "git-evidence/tree/6d000ab094737cb47cdd98d07bd06d19d13dda52", + "bytes": 1527, + "sha256": "8013fe33ef03f1adf893c1cfbeaba46737a6fadeadf48ad579a6dd88c850e2eb", + "git_blob": "35794f6bf257ce79c8586c44963fd068b3632ea2" + }, + { + "path": "git-evidence/tree/74c4ba5ee249a16c2dfa2f82925166545463855a", + "bytes": 80, + "sha256": "d063cd3b8df50170de3fe6d7c11df419245339f8d4c085688158185dac73e995", + "git_blob": "6380d47b261f03d955217c829b82d9eb726792e6" + }, + { + "path": "git-evidence/tree/8bed1ecc75af648c4b5fbf888b902e89ea94de00", + "bytes": 663, + "sha256": "29c18dc1e2792ca110b97790a9153826994ab4e2af59cf9f2e8e1ec8dd04bb86", + "git_blob": "f79421aac557e1f852a513a9f073b35825cc0d0f" + }, + { + "path": "git-evidence/tree/92bd281a274191242f183544f5ebab24b7f61127", + "bytes": 6799, + "sha256": "9925ce9ff27d85508b1493dad6f33b38a03350bb6985f17b55f58ecf0966313b", + "git_blob": "d979de00ce5ee3cbabc36ca317e18a4adeae5c53" + }, + { + "path": "git-evidence/tree/93c3da5da0a527baf42dbbe76e7af010384def87", + "bytes": 599, + "sha256": "3764da0e59c2829d0e8b560feac19e71051d92411598a8abd46fa95b6f8fd7b9", + "git_blob": "d29cf9cf8e24fcd83625c50e4e08745463bf783b" + }, + { + "path": "git-evidence/tree/9b4af599b5540b1ddd45c85e37a42823ea293948", + "bytes": 85, + "sha256": "3b3694fbd59f5c99542c126452518240f41a804a10d9dbf46b1e5121a6f7672b", + "git_blob": "a33328b0324e151a7be91a4ec7bf50e69d619522" + }, + { + "path": "git-evidence/tree/9e6b7e5211cb17e7f0ede269269af71e115ad5ef", + "bytes": 342, + "sha256": "f12fae7d70e069a9d55fdc26c53f406a675c6620cb84f2c36843cfd632ca66e0", + "git_blob": "af460b5f598712e2943c927d9850227ded8c5f08" + }, + { + "path": "git-evidence/tree/a197205550f7cf2fb4e47301f3dac6f6f7939b5a", + "bytes": 84, + "sha256": "db651c7d739649a2a4db81291a06155dc8ca4700f94cbaddebbc4a690debc665", + "git_blob": "50791e3c4cbf8f3661fa445ffa32e9bc23b0edac" + }, + { + "path": "git-evidence/tree/a45bf9b51639925a97e26e9cbd987044b588b383", + "bytes": 91, + "sha256": "0e58a889de916c8dec32ce82a9f6b802e317709c871e375112effcaf7a4a283a", + "git_blob": "0fe3299b40dbbaa6512db4484f64938fc24cbed4" + }, + { + "path": "git-evidence/tree/a9b40c52daf304d6a3276b101d53b307a99b4275", + "bytes": 6708, + "sha256": "7cf87a4313e462774f7e4f73985bf701a88f93eebda757b3fd079bb15dd11649", + "git_blob": "2383559de19bb1d5c68d464e1135f4d83453dae7" + }, + { + "path": "git-evidence/tree/aa1dcd2b4b0a2d5c26940ad29e76603ef1827099", + "bytes": 382, + "sha256": "9e84a79e1d7405c4fb9fc6e8aa64130d7c6cef321430b99160d5006de3adccab", + "git_blob": "31d92283ef1e66ed4233e3e633b6a1090a55e943" + }, + { + "path": "git-evidence/tree/bfb420045d2bc04dd026b5020aea84d547873ef4", + "bytes": 969, + "sha256": "aee24b16e5fb24053b230ed4a9b375251da522404f93402e7deacceeb9289b4c", + "git_blob": "b8ad0c43bedba1338062187789919d67e7874505" + }, + { + "path": "git-evidence/tree/c17001801c6fe1884bad5a2fec92d7f004490db1", + "bytes": 219674, + "sha256": "f4e717e1400664efc861504c31d9c48d77cac24f07f36226ccbd2abad17f0c18", + "git_blob": "57990879a04a470cafe818d2f998208799f97d61" + }, + { + "path": "git-evidence/tree/c211d4eb07730865bffd69a35a85a0642acc333d", + "bytes": 219618, + "sha256": "dbfd9e35527f18d2342c82bccd407d99d7222e6ebd8f0db4cdb469b05b745d49", + "git_blob": "f799f732a4dccf01bd588bcf5b26a17e3d472531" + }, + { + "path": "git-evidence/tree/c9e8162787e0e6ac9d3da8c5b388fcda8e7b5fd8", + "bytes": 915, + "sha256": "aedc475ca8480b563eb190afb3a6f61cc000333dc4c1aaa04fa22c8e3a2ce83e", + "git_blob": "195f97639aa5d3735650f10c80a40f7bf934f2b7" + }, + { + "path": "git-evidence/tree/ca6f51bb3b6474cfa4111ebafa02b1913a807446", + "bytes": 526, + "sha256": "10d55a065b955681775731817a9619242ea69137125b88be1be2fd8b130e005d", + "git_blob": "f07ce901bc1c4088f69bd8381f77a894525a39a4" + }, + { + "path": "git-evidence/tree/db06c76a46083783b675e5a5ce418c52a400d350", + "bytes": 1307, + "sha256": "727b0999f3afd17b8756efdc2eec96e5d76f9fcab111db9031814b7fbfbd0d54", + "git_blob": "8c3ce2187fd20e3d470d42181f2b9850278af8f1" + }, + { + "path": "git-evidence/tree/e4370e0bff125a6575ed3c073d24aa1a984323d1", + "bytes": 969, + "sha256": "b706afd4ac83f0df442f7da0cc70b26e3d8da71d5e1c343731e5d2d90f2bd44a", + "git_blob": "0e9fcca56e932b4b6f13b46965456346b2fc57ed" + }, + { + "path": "git-evidence/tree/e6ae7fb7f6eee1465b54989e937f0bc80b1c3a76", + "bytes": 740, + "sha256": "238db5571e898c6db4c20eb31642a341a1c02eaa11dd232663959608263252f5", + "git_blob": "3ff895b2ed63c2db6159fa47071b6d7ff382bbb7" + }, + { + "path": "git-evidence/tree/e9c70b9927d6e9233633e4e88108f831e7c5c5d9", + "bytes": 14144, + "sha256": "22369b51a2b61cb47fb424394c7a9fac4f8ef81a1e29f4e9a6805892dbbba7e9", + "git_blob": "df81143d27491882d65cf288ba2fc4f783727669" + }, + { + "path": "SOURCE-GUARDS.json", + "bytes": 17029, + "sha256": "7b9b7817296dafd13a0a57d1df5727479522d9392802ca715f2a1430eff14cd1", + "git_blob": "cac9ce93ab8d476f20c9dfbd4e24cb6c762a1a0d" + } + ] +} diff --git a/research/owned-relation-independent-validation/README.md b/research/owned-relation-independent-validation/README.md new file mode 100644 index 0000000000..b09347bab7 --- /dev/null +++ b/research/owned-relation-independent-validation/README.md @@ -0,0 +1,60 @@ +# Independent conditional validation of PR5377 + +Exact Ali Romman [PR5377](https://github.com/CrocSwap/integer-mult-bounds/pull/5377) head `c448d13c71908647f968b06cddb795ce7d288139` supports **κ = 60447/20000000 = .00302235**, an exact conditional gain `2871/5000000000 = .0000005742` over selected PR4610's `.0030217758`. This package supplies independent physical and cost checks, a constructive extension of the selected precision/storage prescription, and the complete frozen registered author cold receipt. It preserves the same five framework assumptions and changes no selected record. No unconditional or formal-kernel theorem is claimed. + +This is an independent audit. Construction credit remains with Ali Romman and the predecessors below. The physical engine uses reverse free-word propagation plus a separate all-column forward check. The cost engine reconstructs the literal controller invoice and uses newly written directed rational logarithm/exponential enclosures. It imports no submitted interval or native evaluator. It explicitly reuses the pinned independently transcribed PR5241 outer ledger function. + +## Result and evidence + +The author makes L230 private in each of 16 backward LOCAL calls and prepares `h230 = h324 - h326 - h328 + h333`. A same-frame snapshot replaces one rank-eight center; a proved zero row permits physical identity in place of one rank-one paid transition. One rank-nine productive helper is surrendered per such call. The two forward calls retain the original 408-helper contract. All retained arbitrary main/helper columns and the complete owned return are checked. The controller proof supplies separate helper banks for all 18 calls. + +The complete invoice has 64,372 paid jobs and 10,912 productive fields, with target/paid rank masses 239,742/238,990. Its changed terms are minus 16 H1 and minus 16 H8 paid jobs and minus 16 H9 productive targets. The moment gain is `16*(1 + 8^t - 9^t)>0` for `0 (x,y+x,h,b)`. + +The dual contract is `(x,y,h,b) -> (x-y,y,h,b)`. In particular every private +buffer is an independent input, returns identically, and has no leakage into +live outputs. Neither contract assumes zero private inputs or a product state. + +## What the retained checker actually computes + +In `audit_core.py`, lines 297–391, a register value is a sparse dictionary + +`(initial_input, reduced_signed_operator_word) -> Fraction`. + +`program` includes every declared initial correction, precondition, +compensation, A and cut gate, chronologically inserted B warp, B gate, +restoration and cleanup gate. `_left` and `_right` cancel only adjacent inverse +letters; `_axpy` adds exact rational coefficients and removes exact zeros. +There is no commutation, finite-order relation, numerical operator matrix, +Fourier-character evaluation or univariate minimal-polynomial reduction. + +`audit_verify.semantics` runs all 723 independent symbols forward and dual, +compares an independent direction of pullback, and checks both cleanup-boundary +contracts. Every emitted provider passes. Each endpoint consists of exactly +835 nonzero terms: the 723 diagonal terms and 112 intended shear terms. Every +surviving operator word is empty. + +That is a universal algebraic identity, rather than an identity inferred from +one operator realization. The source's use of the word “symbolic” is justified +by these actual data structures, reductions and endpoint predicates. + +## All positive tensor multiplicities + +Let `F` be the free group on symbols `g_1,...,g_72`, and let `A=Q[F]` be its +rational group algebra. The finite word program is a product of elementary +723-by-723 matrices over `A`. A correction `c*g_word*x_source` is an off-diagonal +entry of one such elementary matrix. Scalar ADD and SCALE entries belong to +`Q*1_A`. + +Let `K` be any characteristic-zero field (in particular `Q[i]`) and let `V` +be any finite-dimensional vector space over `K`. Choose arbitrary invertible `K`-linear operators +`G_k` on `V`. All tensor products below are over `K`. For every positive integer `f`, define + +`rho_f(g_k) = G_k tensor ... tensor G_k` (f factors). + +The assignment of free generators extends uniquely to a group homomorphism +`F -> GL(V tensor f)`: inverses map to tensor products of inverses, and + +`(G H) tensor f = (G tensor f)(H tensor f)`. + +Extend this map rationally from `A` into the `K`-linear endomorphisms of +`V tensor f`. This extension is a unital rational algebra +homomorphism because multiplication of finite formal sums distributes and +because the group map preserves products. In particular + +`rho_f(sum_w c_w*w) = sum_w c_w*rho_f(w)`. + +Apply this homomorphism entrywise to the certified elementary-matrix product. +It preserves each elementary action, the order of events and the product. +Since the certified endpoint has only rational multiples of empty words, its +image is exactly the same register-level shear with each scalar multiplied +by the identity of `V tensor f`. This proves the endpoint for every positive +`f` and every input in the 723-register direct sum of `V tensor f`, including +arbitrarily correlated live/private data. + +The number of register roles remains 723. We are changing the internal space +of each role; we are not taking a tensor power of the 723-by-723 register matrix. +The latter operation would create a different program with 723^f roles. + +The dual pass treats `d_k=G_k^(-T)` as separate free generators. The same +argument applies, and `(G_k^(-T)) tensor f = (G_k tensor f)^(-T)` in the product +basis. Native frame labels can be replaced by their tensor powers if the +separately supplied directed native recipe identities are exact. This audit +does not reprove or rerun those native recipe identities. + +## The distinction that must be retained + +This algebra homomorphism is linear on formal sums. Therefore + +`rho_f(g-I) = G tensor f - I`, + +not `(G-I) tensor f`. Likewise `rho_f(c*g)=c*(G tensor f)`, not +`(c*G) tensor f = c^f*(G tensor f)`. A role SCALE or bridge coefficient must +remain scalar, while a constant phase already inside a unary generator is +part of that generator and therefore occurs in every tensor factor. + +For an exact small counterexample, take `G=[[1,1],[0,1]]` and `f=2`. +Then `(G tensor G-I)` sends `e_2 tensor e_2` to +`e_1 tensor e_1 + e_1 tensor e_2 + e_2 tensor e_1`; whereas +`(G-I) tensor (G-I)` sends it only to `e_1 tensor e_1`. Their difference is +nonzero over `Q` (and over the supplemental field F101). +The code checks a distinct noncommuting 72-generator family as well, and rejects +both the whole-difference and whole-scalar tensorization rules. + +## Independent evidence and its scope + +`independent.py` imports or executes no retained implementation. It reconstructs +the literal sequence from the four exported words and, for each of the 723 +outputs separately, pulls the output functional backward through that sequence +over exact `Q[F_72]`. The reverse traversal appends words on the right; a stack +reduces only adjacent inverse letters. All four forward and all four dual +contracts match exactly: 5784 output-functional checks, 6680 endpoint terms and +zero surviving nonempty words. Its controls preserve a nontrivial commutator, +a fourth power and the two distinct terms of `g-I`. + +This implementation is independent of the source engine; the format and +endpoint contract were read from the same credited source. Agreement is +supplemental to inspection of the finite exact computations, not a substitute +for proving what the reductions mean. + +`verify.py` also reconstructs and executes the literal events directly on dense +vectors over F101, with 72 distinct invertible 2-by-2 matrices. The first two do +not commute. It substitutes their tensor powers at `f=1,2,3` in both orientations +of all four providers, yielding 24 direct fixtures; all 723 registers are given +deterministic dirty values. These finite-field experiments are controls, not +the proof for every rational input or unbounded f. Erasing the actual listed +correction generators fails at 20 registers; tensorizing the actual role SCALE +coefficients fails at the reported registers. Exact inverse and product +compatibility controls also pass. + +## Remaining obligations and credit + +This positive result discharges only the source's formal free-operator premise +and its algebraic implication to per-role tensor multiplicity. The physical +lowering of native monomials, directed native recipes, placement, common cover, +hosted slices, analytic bounds, coefficient precision, fixed-tape inventory, +recovery and complete ordinary/outer release are outside this audit. The source +construction makes additional written claims about these interfaces; this audit +neither verifies nor refutes those claims. +No paid-rank saving, all-size multiplication theorem, independent human +acceptance or new kappa is claimed. + +The tensor-lift proposal and current construction are credited to Cinna Davis, +the PR4100 author; this audit does not claim to invent the representation argument. +Cinna Davis's PR4088 supplies the four literal providers and source integration. +Sagar Thakrar's PR3687 exact free-operator engine and roger-sato's PR3693 +all-dirty/reverse audit are reused explicitly. Retained lineage includes Rohan +Arun/PR4076, Dugongue/David Ganz/PR4085 and PR3945, Nick Petalas, Ross +Richardson/PR3605, dataisfire/PR3734, ChaloupeMusic/Erwan Secousses, Marius-Paul +Dumitrean, zxv and the earlier geometry/native/compiler/owner contributors. +The byte-identical source notice and source-file notices remain in `source/`. + +The formal and F101 implementations were separately written by one Codex agent. A second Codex agent independently reviewed them and supplied the exact rational signed-permutation oracle in `independent_real.py`; see `INDEPENDENT-REVIEW.md`. None is a human or formal-kernel acceptance. + +`mutation_controls.py` also produces exact actual-program counterexamples in `MUTATIONS.json`: erasing the first correction generator yields `(I-G59)x273` in output115; dropping the first nonidentity scale yields `-3*x119` in output119. Both baseline output functionals pass first. Every actual correction word has length one, so a multi-letter correction reorder is inapplicable rather than counted as an executed control. diff --git a/research/owned-relation-independent-validation/capsule/research/higher-moment-strictification/verify.py b/research/owned-relation-independent-validation/capsule/research/higher-moment-strictification/verify.py new file mode 100644 index 0000000000..4b24a50961 --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/higher-moment-strictification/verify.py @@ -0,0 +1,421 @@ +#!/usr/bin/env python3 +"""Higher-moment strictification and a polynomial-logarithm compiler bound. + +New arithmetic is independent of predecessor interval code. The unchanged +invoice replay and two outer ledgers are credited, byte-pinned oracles. +zxv with substantial OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import ast +from collections import Counter +from contextlib import redirect_stdout +from fractions import Fraction as Q +from functools import lru_cache +from hashlib import sha256, sha1 +import io +import json +from pathlib import Path + +HERE = Path(__file__).resolve().parent +GRID = 2**192 +C = Q('0.00268648') +KAPPA = Q('0.00268647') +T = {5:420, 6:270, 7:840, 8:1395, 9:3195, + 25:448, 41:448, 57:448, 121:224} +P = {1:37305, 2:10695, 3:3360, 4:1530, 5:300, + 8:1464, 16:448, 32:448, 48:448} + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def down(x): + return Q((x*GRID).__floor__(), GRID) + + +def up(x): + return Q(-((-x*GRID).__floor__()), GRID) + + +def rounded(lo, hi): + return down(lo), up(hi) + + +def mul(a, b): + products = [x*y for x in a for y in b] + return rounded(min(products), max(products)) + + +def scale(a, x): + return mul(a, (x, x)) + + +def divide(a, b): + need(b[0] > 0, 'positive interval denominator') + return mul(a, rounded(1/b[1], 1/b[0])) + + +@lru_cache(None) +def log_bounds(n): + """Exact atanh series, binary reduction; round only the final interval.""" + need(isinstance(n, int) and n >= 1, 'positive integer logarithm') + + def series(x): + u = (x-1)/(x+1) + term, total = u, Q(0) + for j in range(80): + total += 2*term/(2*j+1) + term *= u*u + tail = 2*term/(161*(1-u*u)) + return total, total+tail + + k = n.bit_length()-1 + a, b = series(Q(2)) + c, d = series(Q(n, 2**k)) + return rounded(k*a+c, k*b+d) + + +def exp_point(x): + """Outward fixed-point Taylor enclosure, with binary scaling/squaring.""" + need(abs(x) < 16, 'bounded exponential argument') + if x < 0: + a, b = exp_point(-x) + return rounded(1/b, 1/a) + divisions = 0 + while x > Q(1, 2): + x /= 2 + divisions += 1 + term = total = (Q(1), Q(1)) + for j in range(1, 65): + term = scale(term, x/j) + total = rounded(total[0]+term[0], total[1]+term[1]) + following = scale(term, x/65) + # Every remaining ratio is <= 1/132. Twice the next term is safe. + result = rounded(total[0], total[1]+2*following[1]) + for _ in range(divisions): + result = mul(result, result) + return result + + +def exp_interval(a): + return exp_point(a[0])[0], exp_point(a[1])[1] + + +@lru_cache(None) +def power(n, exponent): + return exp_interval(scale(log_bounds(n), exponent)) + + +def moment(histogram, exponent): + low = high = Q(0) + for n, count in histogram.items(): + a, b = power(n, exponent) + low += count*a + high += count*b + return rounded(low, high) + + +def display(a): + unit = 10**30 + + def fixed(n): + sign = '-' if n < 0 else '' + s = str(abs(n)).rjust(31, '0') + return sign+s[:-30]+'.'+s[-30:] + + return {'lower': fixed((a[0]*unit).__floor__()), + 'upper': fixed(-((-a[1]*unit).__floor__()))} + + +def encoded(x): + if isinstance(x, Q): + return str(x) + if isinstance(x, dict): + return {str(k): encoded(v) for k, v in x.items()} + if isinstance(x, (list, tuple)): + return [encoded(v) for v in x] + return x + + +def source_environment(path): + env = {'__file__': str(path), '__name__': 'pinned_source_oracle'} + exec(compile(path.read_bytes(), str(path), 'exec'), env) + return env + + +def authenticate(): + result = {} + for row in json.loads((HERE/'VENDOR.json').read_text())['files']: + path = HERE/'vendor'/Path(row['path']).relative_to( + 'research/higher-moment-strictification/vendor') + digest = sha256(path.read_bytes()).hexdigest() + need(digest == row['sha256'], 'changed source: '+row['path']) + raw = path.read_bytes() + need(sha1(b'blob '+str(len(raw)).encode()+b'\0'+raw).hexdigest() + == row['git_blob'], 'changed Git source blob') + result[row['path']] = digest + return result + + +def invoice_oracle(): + """Run #4426 unchanged, rebinding only its two file-location globals.""" + path = HERE/'vendor/invoice-review/verify.py' + env = source_environment(path) + env.update(ROOT=path.parent, PHASES='DATA-PHASES.json') + output = io.StringIO() + with redirect_stdout(output): + env['main']() + result = json.loads(output.getvalue()) + need(result['status'] == 'PASS_PR4416_INVOICE_REBUILD', 'source invoice oracle') + need({int(k): v for k, v in result['targets'].items()} == T + and {int(k): v for k, v in result['paid'].items()} == P, + 'exact literal-word invoice') + return result + + +def tail_certificate(v=150, cutoff=10, floor=15, u=Q(3, 10)): + t = 1-C + need(v >= 1 and 1 < cutoff < floor < 121, 'strict finite ranks') + need(t+u >= 1, 'tail moment exponent at least one') + target, paid = moment(T, t), moment(P, t) + alpha = divide(paid, target) + gamma = divide(moment(P, t+u), mul(power(cutoff, u), target)) + delta = divide((Q(sum(T.values())*floor),)*2, + mul(power(cutoff, C), target)) + limits = (1-Q(1, 10**8), Q(181, 200), Q(439, 500)) + for name, bounds, limit in zip(('alpha', 'gamma', 'delta'), + (alpha, gamma, delta), limits): + need(0 < bounds[0] <= bounds[1] < limit < 1, name+' certified limit') + a, g, d = limits + bound = 1/(1+v*(1-a))+2*g**v+2*d**v + need(bound < 1, 'complete charged normalized moment') + old_gamma = divide((Q(sum(k*n for k, n in P.items())),)*2, + mul(power(cutoff, C), target)) + old_lower = alpha[0]**v+2*old_gamma[0]**v + need(old_lower > 1, 'rank-one-tail estimate fails at this tensor power') + return {'tensor_power': v, 'cutoff_base': cutoff, 'floor_base': floor, + 'paid_moment_exponent': t+u, 'tail_offset_u': u, + 'tested_saving': C, 'alpha': display(alpha), 'gamma': display(gamma), + 'delta': display(delta), 'rational_upper_limits': limits, + 'normalized_paid_upper': bound, 'strict_moment_gap': display((1-bound,)*2), + 'old_rank_one_gamma': display(old_gamma), + 'old_rank_one_bound_lower': display((old_lower, old_lower)), + 'ambient': '121^'+str(v), 'minimum_target': str(floor)+'^'+str(v), + 'maximum_paid': str(cutoff)+'^'+str(v), + 'productive_fields_before_uniform_compiler': '7688^'+str(v), + 'rank_one_surplus': '131723^'+str(v)+'-131115^'+str(v), + 'materialized_product_or_uniform_word': False} + + +def uniform_rank(v): + t, p, theta = 1-C, 13, Q(6, 7) + gap = (C-KAPPA)/7 + uniform_saving = C-gap + need(10**7 < 15**6, 'theta upper bound') + need(2*(10**v)**7 <= (121**v)**6, 'shifted logarithm inequality') + eta = scale(exp_interval(scale(log_bounds(121), -v*C)), t) + need(eta[0] > theta**p, 'exit contraction below complement capacity') + base = exp_interval(scale(log_bounds(121), v*C)) + need(base[1] < 2**p, 'entire ordinary base range fits') + # Integer grid: gap*H is integral, avoiding enormous rational powers. + step = gap.denominator + need(gap.numerator == 1, 'chosen rational gap grid') + + def passes(j): + H = step*j + return (H+1)**p < 2**j + + lo, hi = 1, 2 + while not passes(hi): + lo, hi = hi, 2*hi + while hi-lo > 1: + mid = (lo+hi)//2 + if passes(mid): + hi = mid + else: + lo = mid + H = step*hi + need(H > 7*v and passes(hi) and not passes(hi-1), 'final integer comparison') + need(eta[1] < theta**(p-1), 'one smaller logarithmic power fails') + return {'t': t, 'uniform_saving': uniform_saving, 'gap': gap, + 'logarithm_power': p, 'theta_upper': theta, 'eta': display(eta), + 'eta_minus_theta_to_p': display((eta[0]-theta**p, eta[1]-theta**p)), + 'm_to_saving': display(base), 'H': H, 'N': '2^'+str(H), + 'integer_test': {'left_base': H+1, 'left_exponent': p, + 'right_base': 2, 'right_exponent': hi}, + 'grid_step': step, 'previous_grid_point_rejected': True, + 'smaller_logarithmic_power_rejected': True} + + +def power_majorant_comparison(v, uniform_saving): + """Retain #4416's older power proof, changing only the new unit's ranks.""" + t, z, h = 1-C, 1-uniform_saving, Q(1, 7) + z0 = (t+z)/2 + delta = z0-t + B, debt = (4+7*h)*v, 1+7*v*(1-z0) + ratio = (delta*B+debt)/(h*delta) + H0 = -((-ratio.numerator)//ratio.denominator) + ratio = H0*(1-z0)/(z-z0) + H1 = ratio.numerator//ratio.denominator+1 + need(H0 >= 7*v and H0*h*delta >= delta*B+debt, 'power majorant threshold') + need((H0-1)*h*delta < delta*B+debt, 'previous power threshold rejected') + need(H1*(z-z0) > H0*(1-z0) >= (H1-1)*(z-z0), + 'strict power-majorant comparison and previous-rank control') + return {'H0': H0, 'H1': H1, 'N': '2^'+str(H1), 'theta_upper': 1-h, + 'scope': 'Tail transformation alone, retaining the older power majorant.'} + + +def outer_ledger(uniform_saving): + d = (C-KAPPA)/7 + params = {'kappa': KAPPA, 'tested_saving': C, + 'complex_uniform_saving': uniform_saving, 'b': KAPPA+5*d, + 'a': KAPPA+4*d, 'q': KAPPA+3*d, 'bit_saving': Q('0.0027'), + 'epsilon': 1-d, 'beta': 1-3*d, 'r0': d/10, + 'stop': d, 'layout': d, 'd': d} + env = source_environment(HERE/'vendor/outer_endpoint.py') + row = env['ledger'](params) + need(len(row['strict_checks']) == 54 and len(row['functional_checks']) == 3, + 'complete first outer ledger') + need(all(v > 0 for group in ('strict_checks', 'functional_checks') + for v in row[group].values()), 'all outer predicates') + frozen = json.loads((HERE/'vendor/p7-RESULT.json').read_text())['endpoint']['outer'] + need(encoded(row) == frozen, 'unchanged full p7 endpoint ledger') + parsed = ast.parse((HERE/'vendor/check_ledger.py').read_bytes()) + function = next(n for n in parsed.body + if isinstance(n, ast.FunctionDef) and n.name == 'ledger') + constants = [n for n in parsed.body if isinstance(n, ast.Assign) + and any(isinstance(t, ast.Name) and t.id.startswith('KAPPA_') + for t in n.targets)] + eps, beta, q, a = (params[k] for k in ('epsilon', 'beta', 'q', 'a')) + grid = 10**10 + backoff = Q((eps*q*grid).__floor__(), grid)-KAPPA + need(backoff > 0, 'strict derived oracle grid backoff') + oracle = {'Q': Q, 'R0': params['r0'], 'ZETA': Q(1, 10**8), + 'SLACK': d, 'STOP': d, 'FLOOR': grid, 'BACKOFF': backoff, + 'EPS': eps, 'BETA': beta, 'THETA_POWER': Q(2), + 'HALO_POWER': 48, 'CORE_POWER': 128, 'STRASSEN_TAU': Q(45, 16), + 'b': params['b'], 'q': q, 'a': a, 'bit': params['bit_saving'], + 'online': Q('0.001730970419199163702738'), + 'old': Q('0.001730970419199163702738')} + code = ast.fix_missing_locations(ast.Module(body=constants+[function], type_ignores=[])) + exec(compile(code, 'pinned 63-predicate ledger', 'exec'), oracle) + second = oracle['ledger']('higher_moment_smaller_ranks') + need(second['kappa'] == KAPPA and second['margins'] == row['margins'], + 'all nine rows match both ledgers') + need(len(second['strict_checks']) == 63 and + all(v > 0 for v in second['strict_checks'].values()), 'all 63 legacy predicates') + controls = {} + for name, updates in [('closed_epsilon', {'epsilon': Q(1)}), + ('missing_layout', {'layout': Q(0)}), + ('unfunded_kappa', {'kappa': C}), + ('closed_uniform_gap', {'complex_uniform_saving': params['b']}), + ('insufficient_BIT', {'bit_saving': Q('0.0023')})]: + bad = env['ledger'](dict(params, **updates)) + failed = sorted(k for k, v in bad['strict_checks'].items() if v <= 0) + need(failed, 'outer control rejected: '+name) + controls[name] = failed + for name, options in [('old_per_axis_scan', {'old_scan': True}), + ('group_equals_dimension', {'beta_': eps})]: + bad = oracle['ledger']('reject_'+name, **options) + failed = sorted(k for k, v in bad['strict_checks'].items() if v <= 0) + need(failed, 'legacy control rejected: '+name) + controls[name] = failed + return {'ledger': row, 'legacy_63_checks': second['strict_checks'], + 'legacy_grid': grid, 'legacy_backoff': backoff, + 'minimum_margin_minus_kappa': min(row['margins'].values())-KAPPA, + 'rejected_controls': controls} + + +def finite_controls(): + def tensor(histogram): + out = Counter() + for k, n in histogram.items(): + for h, b in histogram.items(): + out[k*h] += n*b + return out + + def split(histogram, cutoff): + out = Counter() + for k, n in histogram.items(): + q, r = divmod(k, cutoff) + out[cutoff] += q*n + if r: + out[r] += n + return +out + + target, paid = tensor({2:1, 5:1}), tensor({1:2, 4:1}) + padded, completion = Counter(), Counter() + for k, n in target.items(): + padded[max(k, 9)] += n + if k < 9: + completion[9-k] += n + final = split(paid+completion, 4) + mass = lambda x: sum(k*n for k, n in x.items()) + need(mass(padded)-mass(final) == 7**2-6**2 == 13, 'exact paid padding mass') + need(min(padded) > max(final), 'exact toy separation') + need(final == Counter({1:5, 4:9}), 'literal toy expanded inventory') + # t=1/2, sigma=3/4, R=100, J=1 refutes a sublinear tail extension. + invalid = power(100, Q(1, 2))[1]+2*power(100, Q(3, 4))[1] + need(invalid < 100, 'sublinear upper-tail moment cannot bound splitting') + return {'toy_targets': padded, 'toy_paid': final, 'rank_one_surplus': 13, + 'sublinear_tail_counterexample': {'R': 100, 'J': 1, 't': '1/2', + 'sigma': '3/4', 'actual_charge': 100, + 'invalid_upper': display((invalid, invalid))}} + + +def verify(): + sources = authenticate() + invoice = invoice_oracle() + tail = tail_certificate() + rank = uniform_rank(tail['tensor_power']) + endpoint = outer_ledger(rank['uniform_saving']) + controls = finite_controls() + rejected = [] + for name, updates, expected in [ + ('too_short_product', {'v': 100}, 'complete charged normalized moment'), + ('sublinear_tail', {'u': C/2}, 'tail moment exponent at least one'), + ('lost_separation', {'floor': 10}, 'strict finite ranks'), + ]: + try: + tail_certificate(**updates) + except ValueError as error: + need(str(error) == expected, 'wrong rejection: '+name) + rejected.append({'mutation': name, 'failed_at': str(error)}) + else: + raise ValueError('accepted mutation: '+name) + old = json.loads((HERE/'vendor/p7-RESULT.json').read_text())['endpoint']['compiler'] + return encoded({'schema': 'higher-moment-native-strictification/1', + 'status': 'PASS_HIGHER_MOMENT_STRICTIFICATION', 'kappa': KAPPA, + 'invoice_oracle': invoice, 'strictification': tail, + 'uniform_rank': rank, 'outer': endpoint, + 'tail_only_power_majorant': power_majorant_comparison( + tail['tensor_power'], rank['uniform_saving']), + 'finite_controls': controls, 'rejected_mutations': rejected, + 'predecessor_H': old['H1'], + 'rank_exponent_reduction_factor': Q(old['H1'], rank['H']), + 'tensor_power_reduction_factor': Q(6240, tail['tensor_power']), + 'source_sha256': sources, + 'verifier_sha256': sha256(Path(__file__).read_bytes()).hexdigest(), + 'scope': 'Conditional charged transformation and finite compiler rank. Native all-column, physical, analytic, precision, storage, fixed-tape and recovery premises remain inherited. No new kappa, selected frontier or practical word.'}) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--out', type=Path) + args = parser.parse_args() + result = verify() + if args.out: + need(not args.out.exists(), 'new output path required') + args.out.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + else: + need(json.loads((HERE/'RESULT.json').read_text()) == result, 'changed saved receipt') + print(json.dumps({'status': result['status'], 'tensor_power': result['strictification']['tensor_power'], + 'uniform_rank': result['uniform_rank']['N'], + 'strict_moment_gap': result['strictification']['strict_moment_gap'], + 'kappa': result['kappa']})) + + +if __name__ == '__main__': + main() diff --git a/research/owned-relation-independent-validation/capsule/research/joint-helper-lattice/CONTROLLER.json b/research/owned-relation-independent-validation/capsule/research/joint-helper-lattice/CONTROLLER.json new file mode 100644 index 0000000000..49a2f06758 --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/joint-helper-lattice/CONTROLLER.json @@ -0,0 +1,5224 @@ +{ + "ambient_rank": 145, + "boundaries": { + "left": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "left_program": [ + [ + "SWAP", + 30, + 31 + ], + [ + "SWAP", + 29, + 30 + ], + [ + "SWAP", + 28, + 30 + ], + [ + "SWAP", + 27, + 29 + ], + [ + "SWAP", + 26, + 28 + ], + [ + "SWAP", + 25, + 30 + ], + [ + "SWAP", + 24, + 25 + ], + [ + "SWAP", + 23, + 26 + ], + [ + "SWAP", + 22, + 30 + ], + [ + "SWAP", + 20, + 26 + ], + [ + "SWAP", + 19, + 22 + ], + [ + "SWAP", + 18, + 29 + ], + [ + "SWAP", + 17, + 23 + ], + [ + "SWAP", + 16, + 27 + ], + [ + "SCALE", + 15, + "-1" + ], + [ + "SWAP", + 15, + 31 + ], + [ + "ADD", + 12, + 14, + "1" + ], + [ + "ADD", + 10, + 14, + "-1" + ], + [ + "ADD", + 8, + 14, + "1" + ], + [ + "ADD", + 6, + 14, + "-1" + ], + [ + "ADD", + 4, + 14, + "1" + ], + [ + "ADD", + 2, + 14, + "-1" + ], + [ + "ADD", + 0, + 14, + "1" + ], + [ + "SWAP", + 14, + 15 + ], + [ + "ADD", + 31, + 13, + "1" + ], + [ + "SWAP", + 13, + 30 + ], + [ + "ADD", + 10, + 12, + "1" + ], + [ + "ADD", + 8, + 12, + "-1" + ], + [ + "ADD", + 6, + 12, + "1" + ], + [ + "ADD", + 4, + 12, + "-1" + ], + [ + "ADD", + 2, + 12, + "1" + ], + [ + "ADD", + 0, + 12, + "-1" + ], + [ + "SWAP", + 12, + 14 + ], + [ + "ADD", + 31, + 11, + "-1" + ], + [ + "ADD", + 30, + 11, + "-1" + ], + [ + "SCALE", + 11, + "-1" + ], + [ + "SWAP", + 11, + 29 + ], + [ + "ADD", + 8, + 10, + "1" + ], + [ + "ADD", + 6, + 10, + "-1" + ], + [ + "ADD", + 4, + 10, + "1" + ], + [ + "ADD", + 2, + 10, + "-1" + ], + [ + "ADD", + 0, + 10, + "1" + ], + [ + "SWAP", + 10, + 13 + ], + [ + "ADD", + 31, + 9, + "1" + ], + [ + "ADD", + 30, + 9, + "1" + ], + [ + "ADD", + 29, + 9, + "1" + ], + [ + "SWAP", + 9, + 28 + ], + [ + "ADD", + 6, + 8, + "1" + ], + [ + "ADD", + 4, + 8, + "-1" + ], + [ + "ADD", + 2, + 8, + "1" + ], + [ + "ADD", + 0, + 8, + "-1" + ], + [ + "SWAP", + 8, + 12 + ], + [ + "ADD", + 31, + 7, + "-1" + ], + [ + "ADD", + 30, + 7, + "-1" + ], + [ + "ADD", + 29, + 7, + "-1" + ], + [ + "ADD", + 28, + 7, + "-1" + ], + [ + "SCALE", + 7, + "-1" + ], + [ + "SWAP", + 7, + 27 + ], + [ + "ADD", + 4, + 6, + "1" + ], + [ + "ADD", + 2, + 6, + "-1" + ], + [ + "ADD", + 0, + 6, + "1" + ], + [ + "SWAP", + 6, + 11 + ], + [ + "ADD", + 31, + 5, + "1" + ], + [ + "ADD", + 30, + 5, + "1" + ], + [ + "ADD", + 29, + 5, + "1" + ], + [ + "ADD", + 28, + 5, + "1" + ], + [ + "ADD", + 27, + 5, + "1" + ], + [ + "SWAP", + 5, + 26 + ], + [ + "ADD", + 2, + 4, + "1" + ], + [ + "ADD", + 0, + 4, + "-1" + ], + [ + "SWAP", + 4, + 10 + ], + [ + "ADD", + 31, + 3, + "-1" + ], + [ + "ADD", + 30, + 3, + "-1" + ], + [ + "ADD", + 29, + 3, + "-1" + ], + [ + "ADD", + 28, + 3, + "-1" + ], + [ + "ADD", + 27, + 3, + "-1" + ], + [ + "ADD", + 26, + 3, + "-1" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "SWAP", + 3, + 25 + ], + [ + "ADD", + 0, + 2, + "1" + ], + [ + "SWAP", + 2, + 9 + ], + [ + "ADD", + 31, + 1, + "1" + ], + [ + "ADD", + 30, + 1, + "1" + ], + [ + "ADD", + 29, + 1, + "1" + ], + [ + "ADD", + 28, + 1, + "1" + ], + [ + "ADD", + 27, + 1, + "1" + ], + [ + "ADD", + 26, + 1, + "1" + ], + [ + "ADD", + 25, + 1, + "1" + ], + [ + "SWAP", + 1, + 24 + ], + [ + "SWAP", + 0, + 8 + ] + ], + "right": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "right_program": [ + [ + "ADD", + 30, + 31, + "-1" + ], + [ + "ADD", + 29, + 31, + "-1" + ], + [ + "ADD", + 28, + 31, + "-1" + ], + [ + "ADD", + 27, + 31, + "-1" + ], + [ + "SCALE", + 31, + "-1" + ], + [ + "ADD", + 31, + 30, + "-1" + ], + [ + "ADD", + 29, + 30, + "-1" + ], + [ + "ADD", + 28, + 30, + "-1" + ], + [ + "ADD", + 27, + 30, + "-1" + ], + [ + "ADD", + 31, + 29, + "-1" + ], + [ + "ADD", + 28, + 29, + "-1" + ], + [ + "ADD", + 27, + 29, + "-1" + ], + [ + "SCALE", + 29, + "-1" + ], + [ + "ADD", + 31, + 28, + "-1" + ], + [ + "ADD", + 27, + 28, + "-1" + ], + [ + "SWAP", + 28, + 29 + ], + [ + "ADD", + 31, + 27, + "-1" + ], + [ + "SCALE", + 27, + "-1" + ], + [ + "SWAP", + 27, + 29 + ], + [ + "ADD", + 31, + 26, + "1" + ], + [ + "SWAP", + 26, + 29 + ], + [ + "ADD", + 29, + 25, + "-1" + ], + [ + "ADD", + 24, + 25, + "-1" + ], + [ + "SWAP", + 25, + 28 + ], + [ + "ADD", + 28, + 24, + "1" + ], + [ + "SWAP", + 23, + 29 + ], + [ + "SWAP", + 22, + 25 + ], + [ + "SWAP", + 20, + 23 + ], + [ + "SWAP", + 19, + 25 + ], + [ + "SWAP", + 18, + 27 + ], + [ + "SWAP", + 17, + 29 + ], + [ + "SWAP", + 16, + 31 + ], + [ + "ADD", + 14, + 15, + "-1" + ], + [ + "SWAP", + 15, + 30 + ], + [ + "ADD", + 13, + 14, + "-1" + ], + [ + "SWAP", + 14, + 30 + ], + [ + "ADD", + 12, + 13, + "-1" + ], + [ + "SWAP", + 13, + 22 + ], + [ + "ADD", + 11, + 12, + "-1" + ], + [ + "SWAP", + 12, + 30 + ], + [ + "ADD", + 10, + 11, + "-1" + ], + [ + "SWAP", + 11, + 18 + ], + [ + "ADD", + 9, + 10, + "-1" + ], + [ + "SWAP", + 10, + 22 + ], + [ + "ADD", + 8, + 9, + "-1" + ], + [ + "SWAP", + 9, + 26 + ], + [ + "SWAP", + 8, + 30 + ], + [ + "SWAP", + 7, + 16 + ], + [ + "SWAP", + 6, + 18 + ], + [ + "SWAP", + 5, + 20 + ], + [ + "SWAP", + 4, + 22 + ], + [ + "SWAP", + 3, + 24 + ], + [ + "SWAP", + 2, + 26 + ], + [ + "SWAP", + 1, + 28 + ], + [ + "SWAP", + 0, + 30 + ] + ] + }, + "diagonal": [ + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ] + ], + "invoice": { + "main": { + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224, + "145": 224 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 46446, + "2": 12834, + "3": 4032, + "4": 1836, + "5": 360, + "8": 144, + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + }, + "paid_calls": 69012, + "productive_fields": 10928, + "rank_surplus": 752, + "raw_scalar_record_bound": 1000000000, + "targets": { + "5": 504, + "6": 324, + "7": 1008, + "8": 1674, + "9": 3834, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224, + "145": 224 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1680, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + } + }, + "keep_mask": 35047648968703, + "kind": "complex", + "pairs": 16, + "physical_events": [ + [ + "LOCAL", + 0, + 0, + false + ], + [ + "LOCAL", + 1, + 0, + true + ], + [ + "IDLE", + 1, + [ + 0, + 1 + ] + ], + [ + "ADD", + 0, + 2, + 1 + ], + [ + "ADD", + 3, + 1, + -1 + ], + [ + "QUERY_SHEAR", + 2, + 0, + false + ], + [ + "ADD", + 0, + 2, + -1 + ], + [ + "ADD", + 3, + 1, + 1 + ], + [ + "LOCAL", + 3, + 1, + true + ], + [ + "IDLE", + 2, + [ + 0, + 1, + 3 + ] + ], + [ + "ADD", + 2, + 4, + 1 + ], + [ + "ADD", + 5, + 3, + -1 + ], + [ + "QUERY_SHEAR", + 4, + 1, + false + ], + [ + "ADD", + 2, + 4, + -1 + ], + [ + "ADD", + 5, + 3, + 1 + ], + [ + "LOCAL", + 5, + 2, + true + ], + [ + "IDLE", + 3, + [ + 0, + 1, + 3, + 5 + ] + ], + [ + "ADD", + 4, + 6, + 1 + ], + [ + "ADD", + 7, + 5, + -1 + ], + [ + "QUERY_SHEAR", + 6, + 2, + false + ], + [ + "ADD", + 4, + 6, + -1 + ], + [ + "ADD", + 7, + 5, + 1 + ], + [ + "LOCAL", + 7, + 3, + true + ], + [ + "IDLE", + 4, + [ + 0, + 1, + 3, + 5, + 7 + ] + ], + [ + "ADD", + 6, + 8, + 1 + ], + [ + "ADD", + 9, + 7, + -1 + ], + [ + "QUERY_SHEAR", + 8, + 3, + false + ], + [ + "ADD", + 6, + 8, + -1 + ], + [ + "ADD", + 9, + 7, + 1 + ], + [ + "LOCAL", + 9, + 4, + true + ], + [ + "IDLE", + 5, + [ + 0, + 1, + 3, + 5, + 7, + 9 + ] + ], + [ + "ADD", + 8, + 10, + 1 + ], + [ + "ADD", + 11, + 9, + -1 + ], + [ + "QUERY_SHEAR", + 10, + 4, + false + ], + [ + "ADD", + 8, + 10, + -1 + ], + [ + "ADD", + 11, + 9, + 1 + ], + [ + "LOCAL", + 11, + 5, + true + ], + [ + "IDLE", + 6, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11 + ] + ], + [ + "ADD", + 10, + 12, + 1 + ], + [ + "ADD", + 13, + 11, + -1 + ], + [ + "QUERY_SHEAR", + 12, + 5, + false + ], + [ + "ADD", + 10, + 12, + -1 + ], + [ + "ADD", + 13, + 11, + 1 + ], + [ + "LOCAL", + 13, + 6, + true + ], + [ + "IDLE", + 7, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13 + ] + ], + [ + "ADD", + 12, + 14, + 1 + ], + [ + "ADD", + 15, + 13, + -1 + ], + [ + "QUERY_SHEAR", + 14, + 6, + false + ], + [ + "ADD", + 12, + 14, + -1 + ], + [ + "ADD", + 15, + 13, + 1 + ], + [ + "LOCAL", + 15, + 7, + true + ], + [ + "ADD", + 14, + 16, + 1 + ], + [ + "ADD", + 17, + 15, + -1 + ], + [ + "QUERY_SHEAR", + 16, + 7, + false + ], + [ + "ADD", + 14, + 16, + -1 + ], + [ + "ADD", + 17, + 15, + 1 + ], + [ + "LOCAL", + 17, + 8, + true + ], + [ + "ADD", + 16, + 18, + 1 + ], + [ + "ADD", + 19, + 17, + -1 + ], + [ + "QUERY_SHEAR", + 18, + 8, + false + ], + [ + "ADD", + 16, + 18, + -1 + ], + [ + "ADD", + 19, + 17, + 1 + ], + [ + "LOCAL", + 19, + 9, + true + ], + [ + "ADD", + 18, + 20, + 1 + ], + [ + "ADD", + 21, + 19, + -1 + ], + [ + "QUERY_SHEAR", + 20, + 9, + false + ], + [ + "ADD", + 18, + 20, + -1 + ], + [ + "ADD", + 21, + 19, + 1 + ], + [ + "LOCAL", + 21, + 10, + true + ], + [ + "ADD", + 20, + 22, + 1 + ], + [ + "ADD", + 23, + 21, + -1 + ], + [ + "QUERY_SHEAR", + 22, + 10, + false + ], + [ + "ADD", + 20, + 22, + -1 + ], + [ + "ADD", + 23, + 21, + 1 + ], + [ + "LOCAL", + 23, + 11, + true + ], + [ + "ADD", + 22, + 24, + 1 + ], + [ + "ADD", + 25, + 23, + -1 + ], + [ + "QUERY_SHEAR", + 24, + 11, + false + ], + [ + "ADD", + 22, + 24, + -1 + ], + [ + "ADD", + 25, + 23, + 1 + ], + [ + "LOCAL", + 25, + 12, + true + ], + [ + "ADD", + 24, + 26, + 1 + ], + [ + "ADD", + 27, + 25, + -1 + ], + [ + "QUERY_SHEAR", + 26, + 12, + false + ], + [ + "ADD", + 24, + 26, + -1 + ], + [ + "ADD", + 27, + 25, + 1 + ], + [ + "LOCAL", + 27, + 13, + true + ], + [ + "ADD", + 26, + 28, + 1 + ], + [ + "ADD", + 29, + 27, + -1 + ], + [ + "QUERY_SHEAR", + 28, + 13, + false + ], + [ + "ADD", + 26, + 28, + -1 + ], + [ + "ADD", + 29, + 27, + 1 + ], + [ + "LOCAL", + 29, + 14, + true + ], + [ + "ADD", + 28, + 30, + 1 + ], + [ + "ADD", + 31, + 29, + -1 + ], + [ + "QUERY_SHEAR", + 30, + 14, + false + ], + [ + "ADD", + 28, + 30, + -1 + ], + [ + "ADD", + 31, + 29, + 1 + ], + [ + "LOCAL", + 31, + 15, + true + ], + [ + "LOCAL", + 32, + 15, + false + ], + [ + "IDLE", + 7, + [ + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 8, + [ + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 9, + [ + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 10, + [ + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 11, + [ + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 12, + [ + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 13, + [ + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 14, + [ + 31, + 32 + ] + ], + [ + "ADD", + 30, + 28, + 1 + ], + [ + "ADD", + 29, + 31, + -1 + ], + [ + "ADD", + 28, + 26, + 1 + ], + [ + "ADD", + 27, + 29, + -1 + ], + [ + "ADD", + 26, + 24, + 1 + ], + [ + "ADD", + 25, + 27, + -1 + ], + [ + "ADD", + 24, + 22, + 1 + ], + [ + "ADD", + 23, + 25, + -1 + ], + [ + "ADD", + 22, + 20, + 1 + ], + [ + "ADD", + 21, + 23, + -1 + ], + [ + "ADD", + 20, + 18, + 1 + ], + [ + "ADD", + 19, + 21, + -1 + ], + [ + "ADD", + 18, + 16, + 1 + ], + [ + "ADD", + 17, + 19, + -1 + ], + [ + "ADD", + 16, + 14, + 1 + ], + [ + "ADD", + 15, + 17, + -1 + ], + [ + "ADD", + 14, + 12, + 1 + ], + [ + "ADD", + 13, + 15, + -1 + ], + [ + "ADD", + 12, + 10, + 1 + ], + [ + "ADD", + 11, + 13, + -1 + ], + [ + "ADD", + 10, + 8, + 1 + ], + [ + "ADD", + 9, + 11, + -1 + ], + [ + "ADD", + 8, + 6, + 1 + ], + [ + "ADD", + 7, + 9, + -1 + ], + [ + "ADD", + 6, + 4, + 1 + ], + [ + "ADD", + 5, + 7, + -1 + ], + [ + "ADD", + 4, + 2, + 1 + ], + [ + "ADD", + 3, + 5, + -1 + ], + [ + "ADD", + 2, + 0, + 1 + ], + [ + "ADD", + 1, + 3, + -1 + ], + [ + "SIGNED_SWAP", + 0, + 1 + ], + [ + "SIGNED_SWAP", + 2, + 3 + ], + [ + "SIGNED_SWAP", + 4, + 5 + ], + [ + "SIGNED_SWAP", + 6, + 7 + ], + [ + "SIGNED_SWAP", + 8, + 9 + ], + [ + "SIGNED_SWAP", + 10, + 11 + ], + [ + "SIGNED_SWAP", + 12, + 13 + ], + [ + "SIGNED_SWAP", + 14, + 15 + ], + [ + "SIGNED_SWAP", + 16, + 17 + ], + [ + "SIGNED_SWAP", + 18, + 19 + ], + [ + "SIGNED_SWAP", + 20, + 21 + ], + [ + "SIGNED_SWAP", + 22, + 23 + ], + [ + "SIGNED_SWAP", + 24, + 25 + ], + [ + "SIGNED_SWAP", + 26, + 27 + ], + [ + "SIGNED_SWAP", + 28, + 29 + ], + [ + "SIGNED_SWAP", + 30, + 31 + ] + ], + "prefix_pairs": 7 +} diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py b/research/owned-relation-independent-validation/capsule/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py new file mode 100644 index 0000000000..5a55034ec9 --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py @@ -0,0 +1,351 @@ +#!/usr/bin/env python3 +"""Independent literal native replay with arbitrary dirty cleanup buffers. + +The retained emitter supplies words; this module imports no retained evaluator. +Free warp symbols distinguish primal and inverse-transpose operators. Physical +phase receipts are authenticated inherited evidence, not regenerated here. +Apache-2.0. Substantial OpenAI assistance. +""" +from collections import Counter, defaultdict +from fractions import Fraction +from hashlib import sha256 +from pathlib import Path +import argparse +import ast +import gzip +import json + + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[2] +CORE = ROOT / "research/kappa-native-resume/native-source/rebased-core" +PACKET = ROOT / "research/kappa-native-resume/causal-controller/sources/research/joint-query/certificate.json.gz" +TAGS = ("THREE-base", "THREE-extra", "FOUR-base", "FOUR-extra") +Q = Fraction + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == ".gz" else raw) + + +def digest(path): + return sha256(path.read_bytes()).hexdigest() + + +def authenticate(): + pins = read(HERE / "SOURCES.json") + for relative, expected in pins.items(): + need(digest(ROOT / relative) == expected, "Changed retained source: " + relative) + return pins + + +def emit_original(canonical): + """Reuse only the pinned source's pure writer; no source verifier executes.""" + source = CORE / "sources/bw_emit.py" + names = {"basis", "reg", "dual", "scalar", "lregs", "expand", "emit", "primitive_bound"} + tree = ast.parse(source.read_text()) + functions = [n for n in tree.body if isinstance(n, ast.FunctionDef) and n.name in names] + need({n.name for n in functions} == names, "Exact writer function inventory") + context = dict(c=canonical, frames=canonical["frames"], v=112, R=408, h=9, n=632, Q=Q) + exec(compile(ast.Module(body=functions, type_ignores=[]), str(source), "exec"), context) + return {"forward": context["emit"](False), "backward": context["emit"](True)} + + +def span(basis): + points = {0} + for vector in basis: + need(isinstance(vector, int) and 0 <= vector < 512, "Nine-dimensional frame") + points |= {v ^ vector for v in tuple(points)} + return frozenset(points) + + +def identity(role): + return {(role, ()): Q(1)} + + +def add(destination, source, coefficient): + for key, value in tuple(source.items()): + value = destination.get(key, Q(0)) + coefficient * value + if value: + destination[key] = value + else: + destination.pop(key, None) + + +def warp(row, operator, backward): + symbol = (1 if operator > 0 else -1) * (abs(operator) + (10**6 if backward else 0)) + out = {} + for (variable, word), coefficient in row.items(): + moved = word[1:] if word and word[0] == -symbol else (symbol,) + word + key = variable, moved + out[key] = out.get(key, Q(0)) + coefficient + return {k: v for k, v in out.items() if v} + + +def expected(role, R, backward, clean): + out = identity(role) + name, i = role + if name != "L": + return out + target = i < 112 if backward else 112 <= i < 224 + if not target: + return out + port = i if backward else i - 112 + source_offset = 112 if backward else 0 + sign = -1 if backward else 1 + add(out, identity(("L", source_offset + port)), Q(sign)) + if clean: + for query in R: + if port in query: + for j, value in query.items(): + add(out, identity(("L", source_offset + j)), -sign * query[port] * value / 4) + return out + + +def replay(program, canonical, R, backward, clean, omit_cleanup_last=False): + """All L inputs and all Z inputs are independent, including dirty outputs.""" + n = 2 * canonical["v"] + canonical["R"] + need(n == 632, "Retained compact width") + rows = {("L", i): identity(("L", i)) for i in range(n)} + current = {("L", i): frame for i, frame in enumerate(canonical["start"])} + center_indices = set() + for event in program: + if event[0] == "scalar": + op = event[1] + for register in op[1:3] if op[0] in ("add", "copy") else op[1:2]: + if register[0] == "C": + center_indices.add(register[1]) + elif event[0] == "center": + center_indices.add(event[1]) + need(center_indices <= set(range(8)), "Known center workspace indices") + for i in center_indices: + rows["C", i] = identity(("C", i)) + current["C", i] = None + spaces = [span(vectors) for vectors in canonical["frames"]] + dimensions = [len(s).bit_length() - 1 for s in spaces] + need(dimensions[1] == 9, "Cleanup uses the full native frame") + live = set() + profile = Counter() + counts = Counter() + scalar_primitives = 0 + cleanup_start = next(i for i, event in enumerate(program) if event == ["phase", "full_frame_cleanup"]) + last_scalar = max(i for i, event in enumerate(program) if event[0] == "scalar" and i > cleanup_start) + for position, event in enumerate(program): + kind = event[0] + counts[kind] += 1 + if kind in ("climb", "center"): + if kind == "climb": + _, part, index, old, new, rank = event + role = "L", index + need(spaces[old] < spaces[new], "Non-nested or empty paid climb") + else: + _, index, old, new, rank = event + role = "C", index + need(spaces[old] < spaces[new] or spaces[new] < spaces[old], "Center residual is not nested") + need(current[role] == old and rank == abs(dimensions[new] - dimensions[old]), "Paid edge source/rank") + current[role] = new + profile[rank] += 1 + elif kind == "zero_buffer": + _, action, index = event + role = "Z", index + if action == "alloc": + need(role not in rows and role not in live, "Cleanup buffer duplicate") + rows[role] = identity(role) + current[role] = 1 + live.add(role) + else: + need(action == "free" and role in live and current[role] == 1, "Cleanup buffer retirement") + live.remove(role) + elif kind == "warp": + _, role, operator, old, new = event + role = tuple(role) + need(current[role] == old, "Warp entrance frame") + rows[role] = warp(rows[role], operator, backward) + current[role] = new + elif kind == "scalar": + op, frame = event[1:] + target = tuple(op[1]) + if op[0] == "clear": + need(target[0] == "C", "A borrowed input was cleared") + rows[target] = {} + current[target] = frame + scalar_primitives += 1 + continue + need(current[target] == frame, "Scalar target frame") + if op[0] in ("add", "copy"): + source = tuple(op[2]) + need(current[source] == frame, "Scalar source frame") + if op[0] == "copy": + need(target[0] == "C", "Copy overwrites borrowed state") + rows[target] = dict(rows[source]) + scalar_primitives += 1 + continue + coefficient = Q(op[3], op[4]) + need(target != source, "Self-ADD is not a reversible shear") + numerator, denominator = abs(coefficient.numerator), coefficient.denominator + need(numerator and denominator & (denominator - 1) == 0, "Non-dyadic ADD") + scalar_primitives += 3 + numerator.bit_length() - 1 + numerator.bit_count() + denominator.bit_length() - 1 + if not (omit_cleanup_last and position == last_scalar): + add(rows[target], rows[source], coefficient) + else: + need(op[0] == "scale", "Unknown scalar event") + coefficient = Q(op[2], op[3]) + numerator, denominator = abs(coefficient.numerator), coefficient.denominator + need(numerator and numerator & (numerator - 1) == 0 and denominator & (denominator - 1) == 0, + "Nonunit dyadic SCALE") + scalar_primitives += abs(numerator.bit_length() - denominator.bit_length()) + int(coefficient < 0) + if not (omit_cleanup_last and position == last_scalar): + rows[target] = {k: coefficient * v for k, v in rows[target].items()} + else: + need(kind in ("phase", "adapter", "residual_adapter"), "Unknown native event") + need(not live and [current["L", i] for i in range(n)] == canonical["final"], "Retired fields/final frames") + need(dict(profile) == {int(k): v for k, v in canonical["local_profile"].items()}, "Complete paid profile") + mismatches = [] + for role, actual in rows.items(): + wanted = {} if role[0] == "C" else expected(role, R, backward, clean) + if actual != wanted: + mismatches.append({"role": list(role), "unequal_coefficients": sum(actual.get(k, 0) != wanted.get(k, 0) for k in set(actual) | set(wanted))}) + if not omit_cleanup_last: + need(not mismatches, "Native dirty-buffer operator mismatch: " + repr(mismatches[:3])) + else: + need(mismatches, "Missing-cleanup negative control unexpectedly accepted") + buffer_count = sum(role[0] == "Z" for role in rows) + return dict(direction="backward" if backward else "forward", clean_J=clean, + independent_borrowed_input_fields=632+buffer_count, original_data_fields=224, + expected_restored_helpers=408, expected_restored_arbitrary_cleanup_buffers=buffer_count, + explicitly_owned_C_fields_cleared=len(center_indices), event_counts=dict(counts), + paid_profile=dict(sorted(profile.items())), paid_rank_mass=sum(k*v for k,v in profile.items()), + conservative_real_scalar_primitive_allowance=2*scalar_primitives, + all_scalar_frames_checked=True, dyadic_coefficients_and_unit_scales_checked=True, + free_warp_operator_endpoint_matches=not mismatches, + negative_control_omitted_last_cleanup_scalar=omit_cleanup_last, + mismatch_examples=mismatches[:3]) + + +def liveness(canonical): + times = defaultdict(list) + for i, event in enumerate(canonical["cleanup"]): + for role in event[1:3] if event[0] == "add" else event[1:2]: + role = tuple(role) if isinstance(role, list) else ("L", role) + times[role].append(i) + full = [i for i, f in enumerate(canonical["final"]) if f == 1] + candidates = [] + for z in canonical["zero_buffers"]: + begin, end = min(times["Z", z]), max(times["Z", z]) + possible = [i for i in range(112) if all(t < begin or t > end for t in times["L", i])] + candidates.append(dict(buffer=z, first_use=begin, last_use=end, + noninterfering_same_call_X_candidates=possible, + noninterfering_full_frame_L_candidates=[i for i in full if all(t < begin or t > end for t in times["L", i])])) + return dict(full_frame_live_roles=len(full), full_frame_roles_unused_in_cleanup=[i for i in full if not times["L", i]], + same_call_X_outputs_touched=sum(bool(times["L", i]) for i in range(112)), + buffers_with_no_noninterfering_same_call_X=sum(not row["noninterfering_same_call_X_candidates"] for row in candidates), + buffers_with_no_noninterfering_full_frame_L=sum(not row["noninterfering_full_frame_L_candidates"] for row in candidates), + intervals=candidates, + conclusion="Arbitrary-buffer restoration does not establish a legal same-call completed-output alias.", + external_same_frame_bank_requirement=91, + external_bank_hosting_constructed=False) + + +def find_aliases(canonical): + """Injective lifetime-safe matching; no native L access during its Z span.""" + options = {row["buffer"]: row["noninterfering_full_frame_L_candidates"] + for row in liveness(canonical)["intervals"]} + owner = {} + + def augment(z, seen): + for role in options[z]: + if role in seen: + continue + seen.add(role) + if role not in owner or augment(owner[role], seen): + owner[role] = z + return True + return False + + for z in sorted(options, key=lambda z: (len(options[z]), z)): + augment(z, set()) + bindings = {z: role for role, z in owner.items()} + need(len(set(bindings.values())) == len(bindings), "Alias must be injective") + need(all(role in options[z] for z, role in bindings.items()), "Interfering alias") + return bindings + + +def alias_program(program, bindings): + """Replace only Z register operands, retaining every native/scalar event.""" + out = [] + + def mapped(role): + return ["L", bindings[role[1]]] if role[0] == "Z" and role[1] in bindings else list(role) + + for event in program: + if event[0] == "zero_buffer" and event[2] in bindings: + continue + if event[0] == "scalar": + op = event[1].copy() + op[1] = mapped(op[1]) + if op[0] in ("add", "copy"): + op[2] = mapped(op[2]) + out.append(["scalar", op, event[2]]) + elif event[0] == "warp": + out.append([event[0], mapped(event[1]), *event[2:]]) + else: + out.append(event) + return out + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--output", type=Path, default=HERE / "RESULT.json") + args = parser.parse_args() + pins = authenticate() + R = [{int(k): Q(v) for k, v in row.items()} for row in read(PACKET)["R_rows"]] + providers = {} + for tag in TAGS: + providers[tag] = {} + for clean in (False, True): + folder = "converted" if clean else "sources" + canonical = read(CORE / folder / (tag + "-CANONICAL.json.gz")) + programs = read(CORE / folder / (tag + "-NATIVE-WORD.json.gz")) if clean else emit_original(canonical) + checks = [replay(programs[direction], canonical, R, direction == "backward", clean) + for direction in ("forward", "backward")] + bindings = find_aliases(canonical) + aliases = {direction: alias_program(program, bindings) for direction, program in programs.items()} + aliased_checks = [replay(aliases[direction], canonical, R, direction == "backward", clean) + for direction in ("forward", "backward")] + need(len(bindings) == 53, "Expected source-bound 53-field lifetime match") + for original, aliased in zip(checks, aliased_checks): + need(original["paid_profile"] == aliased["paid_profile"] and + original["conservative_real_scalar_primitive_allowance"] == aliased["conservative_real_scalar_primitive_allowance"], + "Aliasing changes the charged operation list") + providers[tag]["clean_J" if clean else "ordinary"] = dict(checks=checks, liveness=liveness(canonical), + lifetime_alias_bindings={str(z): role for z, role in sorted(bindings.items())}, + aliased_checks=aliased_checks, + eliminated_cleanup_fields=len(bindings), remaining_cleanup_fields=91-len(bindings), + aliased_word_sha256={direction: sha256(json.dumps(program, sort_keys=True, separators=(",", ":")).encode()).hexdigest() + for direction, program in aliases.items()}) + print("PASS all arbitrary cleanup inputs", tag, flush=True) + canonical = read(CORE / "converted/THREE-base-CANONICAL.json.gz") + programs = read(CORE / "converted/THREE-base-NATIVE-WORD.json.gz") + controls = [replay(programs[direction], canonical, R, direction == "backward", True, True) + for direction in ("forward", "backward")] + result = dict(schema="literal-native-dirty-buffers/1", status="PASS_NATIVE_ARBITRARY_DIRTY_BUFFER_REPLAY", + new_multiplication_kappa=False, physical_phase_generation_rerun=False, + phase_evidence="Pinned inherited exact native phase receipts; unchanged native edges.", + source_hashes=pins, verifier_sha256=digest(Path(__file__)), providers=providers, + negative_controls=controls, + lifetime_safe_local_full_frame_aliases_per_word=53, + remaining_external_bank_fields_per_word=38, + all_91_local_output_alias_claim=False, external_bank_placement_and_cost_closed=False) + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(json.dumps(result, indent=2) + "\n") + print(result["status"], flush=True) + + +if __name__ == "__main__": + main() diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-interface-round2-20261022/price_profile.py b/research/owned-relation-independent-validation/capsule/research/kappa-interface-round2-20261022/price_profile.py new file mode 100644 index 0000000000..1d93e43d1c --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/kappa-interface-round2-20261022/price_profile.py @@ -0,0 +1,147 @@ +"""Complete p16 price and finite compiler for a changed native profile. + +Adapted from Cinna Davis's PR4470 arithmetic, retaining zxv's paid tensor +completion/logarithmic majorant and Jacob Alan Sussman's mixed-job flow. +Apache-2.0. Substantial OpenAI Codex assistance. Native admission is separate. +""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import argparse +import importlib.util +import json +import math +import sys +sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +ROOT=HERE.parents[1] + +def need(ok,why): + if not ok:raise ValueError(why) + +def load(path,name): + spec=importlib.util.spec_from_file_location(name,path) + m=importlib.util.module_from_spec(spec);sys.modules[name]=m;spec.loader.exec_module(m) + return m + +def encode(x): + if isinstance(x,Q):return str(x) + if isinstance(x,dict):return {str(k):encode(v) for k,v in x.items()} + if isinstance(x,(list,tuple)):return [encode(v) for v in x] + return x + +def read(path): + import gzip + b=path.read_bytes();return json.loads(gzip.decompress(b) if path.suffix=='.gz' else b) + +def assemble(local): + H={int(k):v for k,v in local['helpers'].items()};N={int(k):v for k,v in local['paid'].items()} + sys.path.insert(0,str(ROOT/'research/joint-helper-lattice')) + J=load(ROOT/'research/joint-helper-lattice/verify.py','round2_pinned_controller') + sys.path.insert(0,str(ROOT/'research/query-thinned-controllers')) + C=load(ROOT/'research/query-thinned-controllers/controller.py','round2_controller_engine') + word=J.controller16(C) + T,P=Counter(),Counter();full=thin=0 + for e in word['physical_events']: + if e[0]=='LOCAL':full+=1;T.update(H);P.update(N) + elif e[0]=='QUERY_SHEAR':thin+=1;P[1]+=112 + elif e[0]=='IDLE':P[8*len(e[2])]+=224 + for term in word['diagonal']:T[1+8*sum(term[1:])]+=112 + need(full==18 and thin==15 and sum(H.values())==408,'Complete retained p16 call and input inventory') + return H,N,T,P,word + +def run(local,kappa=None): + H,N,T,P,word=assemble(local) + E=load(ROOT/'research/higher-moment-strictification/verify.py','round2_exact_intervals') + other=load(ROOT/'research/kappa-rebuild/architecture/mixed_target_probe.py','round2_second_intervals') + def margin(c): + t,p=E.moment(T,1-c),E.moment(P,1-c) + return t[0]-p[1],t[1]-p[0] + old_upper=Q('.0030201659771') + need(margin(old_upper)[0]>0,'Changed complete invoice strictly beats old raw root upper endpoint') + # Binary search on a fixed rational grid; all final signs use exact intervals. + lo,hi=0,100000000 + grid=10**10 + while hi-lo>1: + mid=(lo+hi)//2 + if margin(Q(mid,grid))[0]>0:lo=mid + else:hi=mid + root_low,root_high=Q(lo,grid),Q(hi,grid) + need(margin(root_low)[0]>0 and margin(root_high)[1]<0,'Strict changed-profile rational root enclosure') + if kappa is None:kappa=Q((root_low*10**8).__floor__()-3,10**8) + tested=kappa+Q(1,10**8) + need(Q('.003020165')ph and max(tl,target[0])<=min(th,target[1]) and max(pl,paid[0])<=min(ph,paid[1]),'Two independently implemented rational moment engines agree') + alpha=E.divide(paid,target) + gamma=E.divide(E.moment(P,t+u),E.mul(E.power(c,u),target)) + delta=E.divide((Q(sum(T.values())*b),)*2,E.mul(E.power(c,tested),target)) + alpha_gap=Q(1,10**9);g=d=Q(97,100) + need(alpha[1]<1-alpha_gap and gamma[1]theta**power,'Shifted exits and complement capacity') + need(E.power(145,v*tested)[1]<2**power,'Compiler initial range') + gap=(tested-kappa)/7;need(gap.numerator==1,'Explicit finite integer grid') + step=gap.denominator + def wins(j):return (step*j+1)**power<2**j + left,right=1,2 + while not wins(right):left,right=right,2*right + while right-left>1: + mid=(left+right)//2 + if wins(mid):right=mid + else:left=mid + height=step*right + need(height>8*v and wins(right) and not wins(right-1),'Strict finite uniform-rank integer bound') + local_scalar=max(x['real_scalar_allowance'] for x in local['native'].values()) + routes=(sum(N.values())+2*408+688)*1000 + need(local_scalar+routes<10**7,'Complete scalar and fixed monomial routing bound') + scalar_upper=18*10**7+15*1792+32*112*(len(word['physical_events'])+sum(len(word['boundaries'][k+'_program']) for k in ('left','right'))) + need(scalar_upper<10**9,'Raw controller scalar bound') + bit=read(ROOT/'research/query-thinned-controllers/RESULT.json')['ordinary_BIT'] + atom=Q(bit['atom']);ordinary=(1-atom)*Q(bit['after_cover'])+atom*Q('.0000384599');admitted=Q(bit['admitted']) + need(atom==Q('.004') and atom>ordinary>admitted>tested and atom<1-ordinary,'Source ordinary BIT admission and stock') + L=load(ROOT/'research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py','round2_outer_ledger') + params={'kappa':kappa,'tested_saving':tested,'complex_uniform_saving':kappa+6*gap, + 'b':kappa+5*gap,'a':kappa+4*gap,'q':kappa+3*gap,'bit_saving':admitted, + 'epsilon':1-gap,'beta':1-3*gap,'r0':gap/10,'stop':gap,'layout':gap,'d':gap} + outer=L.ledger(params);outer['functional_checks']['actual_new_BIT_stock_sublinear']=params['beta']*(1-atom) + need(len(outer['strict_checks'])==54 and len(outer['functional_checks'])==4,'Whole outer predicate inventory') + need(all(x>0 for key in ('strict_checks','functional_checks') for x in outer[key].values()),'All outer inequalities strictly positive') + controls={} + for name,patch in [('old_BIT',{'bit_saving':Q('.0027')}),('closed_uniform',{'complex_uniform_saving':params['b']}),('unfunded_endpoint',{'kappa':tested}),('closed_epsilon',{'epsilon':Q(1)})]: + bad=L.ledger(dict(params,**patch));failed=[k for k,x in bad['strict_checks'].items() if x<=0] + need(failed,'Reject unsupported outer patch '+name);controls[name]=failed + return encode({'status':'PASS_CHANGED_PROFILE_ARITHMETIC_NATIVE_ADMISSION_SEPARATE','kappa':kappa, + 'gain_over_PR4535':kappa-Q('.003020165'),'raw_root_interval':[root_low,root_high], + 'margin_at_old_root_upper':margin(old_upper),'local_helpers':H,'local_paid':N,'targets':T,'paid':P, + 'productive_fields':sum(T.values()),'paid_calls':sum(P.values()),'rank_mass_surplus':sum(r*n for r,n in T.items())-sum(r*n for r,n in P.items()), + 'strictification':{'tested':tested,'power':v,'cutoff':c,'floor':b,'tail_offset':u,'alpha':E.display(alpha),'gamma':E.display(gamma),'delta':E.display(delta),'normalized_paid_upper':normalized}, + 'compiler':{'theta':theta,'logarithm_power':power,'eta':E.display(eta),'gap':gap,'uniform_saving':params['complex_uniform_saving'],'H':height,'N':'2^'+str(height),'integer_test_exponent':right,'word_materialized':False}, + 'nonrecursive':{'local_scalar':local_scalar,'local_routes':routes,'raw_scalar_upper':scalar_upper}, + 'ordinary_BIT':bit,'outer':outer,'negative_controls':controls, + 'scope':'Exact changed-profile arithmetic only. Requires separately admitted changed native programs, paid transports and absolute phases. Retained compiler/native/precision/tape/analytic/recovery assumptions.'}) + +if __name__=='__main__': + ap=argparse.ArgumentParser();ap.add_argument('--native',type=Path,required=True);ap.add_argument('--kappa');ap.add_argument('--out',type=Path,default=HERE/'ARITHMETIC.json');args=ap.parse_args() + result=run(read(args.native),Q(args.kappa) if args.kappa else None) + result['native_receipt_sha256']=sha256(args.native.read_bytes()).hexdigest() + # Pin all loaded project source modules and the non-module controller/stock + # records read by the inherited engines. Standard-library files are outside + # the repository and are recorded instead by the replay's Python version. + paths={Path(__file__).resolve(),ROOT/'research/joint-helper-lattice/CONTROLLER.json', + ROOT/'research/query-thinned-controllers/RESULT.json'} + for module in tuple(sys.modules.values()): + name=getattr(module,'__file__',None) + if name: + path=Path(name).resolve() + if path.is_relative_to(ROOT) and path.is_file():paths.add(path) + result['source_sha256']={p.relative_to(ROOT).as_posix():sha256(p.read_bytes()).hexdigest() for p in sorted(paths)} + args.out.write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + print(json.dumps({k:result[k] for k in ('status','kappa','gain_over_PR4535','raw_root_interval','paid_calls','compiler')},indent=2)) diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/README.md b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/README.md new file mode 100644 index 0000000000..777f4e1d51 --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/README.md @@ -0,0 +1,249 @@ +# Conditional kappa 0.00302235 from one owned helper relation + +This construction gives **conditional kappa = 60447/20000000 = 0.00302235**. +The gain over Cao Yifan's final +[PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610) +value, 0.0030217758, is **2871/5000000000 = 0.0000005742**. +The construction changes the complete paid profile. It does not obtain the +gain by taking more digits of the old root. + +One helper becomes owned storage in each backward call. A prepared relation +then makes one paid rank-eight center equal to an earlier saved value. The same +relation makes one later rank-one job act on zero. Both jobs can be removed, +with the rank-nine helper credit also removed. All other independent outputs +and all main interfaces keep their source operators. + +[WORD.json.gz](WORD.json.gz) is the complete emitted word. +[RESULT.json](RESULT.json) records the exact native checks, the two source +identities, both full profiles, completion, compiler and outer calculations. +[SOURCES.json](SOURCES.json) pins every external input by Git blob and SHA256. +The proof below explains why the changed word has the stated contract. + +## Source and scope + +The base is canonical main +[7c472563474e60185e6ca101a17622133d047e56](https://github.com/CrocSwap/integer-mult-bounds/commit/7c472563474e60185e6ca101a17622133d047e56). +The native source is the final PR #4610 word at +[20bb93cd990d2ff683e4d0fc56b87a42cd5d3296](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz). +Its decompressed SHA256 is +`cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`. +The comparison value and old crossing come from its +[final compiler arithmetic](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json). +All consumed bytes are already in the recorded main base. + +This is one instance of the current `complex-new-helper-inventory` priority. +The [scoped claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737) +reserves only the relation and two replacements below. +[Discussion #5355](https://github.com/CrocSwap/integer-mult-bounds/discussions/5355) +retains all 632 independent inputs and all eight centers. +[Discussion #4930](https://github.com/CrocSwap/integer-mult-bounds/discussions/4930) +retains every original helper endpoint. This construction removes the +independent L230 job in backward calls. It does not claim those broader scopes. +The selected certificate is unchanged. A fresh check at 20:20 UTC found that +Discussion #5355 had released its original-input scope without a saving. +Canonical main still had the recorded base commit. + +## Exact replacement proof + +All indices below are zero-based indices in the frozen backward program. +Let `h_r` be the source logical input of helper `Lr`. The five helpers in + +```math +\Delta=h_{230}-h_{324}+h_{326}+h_{328}-h_{333} +``` + +all start in frame 0 and finish in frame 1, of rank nine. The new backward +contract has 224 independent main fields and 407 independent helper fields. +L230 is private. Clear it, then use four same-frame ADDs to prepare + +```math +h_{230}=h_{324}-h_{326}-h_{328}+h_{333}. +``` + +The other helper inputs remain arbitrary and independent. This preparation +sets Delta to zero for every input. It uses no recursive job. It removes one +rank-nine productive target; the dependent field receives no output credit. + +Run the original source program on unrestricted inputs. Let `q` be the +logical row of L92 just after event 11205, a paid climb into frame 254. +The separate predecessor row engine gives these exact identities: + +| Source position | Exact logical row | +| --- | --- | +| C0 at the rank-eight center, event 11332 | `q + Delta/4` | +| L92 at the rank-one climb, event 15584 | `-Delta/4` | + +These identities are over rational coefficients and free native operator +words. They hold for every value of every source input and for every invertible +interpretation of the native symbols. They do not use numerical samples or an +assumed relation between distinct native maps. + +For every positive tensor width f, substitute each native generator by its +source operator tensor power and each inverse by the inverse tensor power. +This defines a representation of the free group. Keep the rational scalar +coefficients outside the substitution. The two row identities therefore hold +at every such width. In particular, Delta/4 remains a scalar linear form; it +is not a tensor power of that sum. This uses the termwise argument recorded in +the [free-word tensor audit](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/free-word-tensor-lift-audit/PROOF.md), +which credits Cinna Davis's proposal and ToikY's scoped audit. Physical frame +realization and the complete all-size compiler retain their source contracts. + +Immediately after event 11205, clear a new private field C1 in frame 254 and +COPY L92 into it. C1 is not written until the replacement of event 11332. At +that event, clear owned C0, set its frame to 254, COPY C1 into C0, then clear C1. +The copy coefficient is exactly one. Under Delta = 0, the copied field is the +same physical value as the old center output: the logical rows and the exact +frame gauge are equal. The old C0 input can be erased because C0 is owned. +This removes one rank-eight recursive job. + +At event 15584, L92 is exactly zero in every input column. The physical +identity therefore has the same result as the old rank-one frame change. +`zero_retag` records this fact. It performs no physical write and is accepted +only when the full exact row is empty and the current frame is 254. It then +records frame 1. This removes one rank-one recursive job. It does not erase a +main input or replace a nonzero transform with a free frame change. + +Every other event stays in source order. Clear private L230 at return. The +source clears C0, and the new program has already cleared C1. The original +linear endpoint identity, restricted by the prepared relation, gives all 224 +main outputs and all 407 retained helper outputs. The literal new-word replay +checks these outputs separately, with all 631 retained inputs and all three +owned entry fields initially arbitrary. It also checks every scalar frame, +paid rank, native frame transition and final frame. + +The 4,429 source frames, 72 native maps, all remaining paid operators, and main +adapters are unchanged. The source +[absolute-phase certificate](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz) +is authenticated and reused. Same-frame COPY and identity on zero introduce no +phase recipe. The source's amplitude and Clifford-lowering checks are not +rerun by this package. The new free-word identities prove equivalence for the +source operators with their full phases, not just their projective classes. + +## Complete cost and conditional compiler + +The forward word is unchanged. Each backward call has these counts: + +```text +paid: {1:2200, 2:412, 3:510, 4:127, 5:40, 8:7} +helpers: {4:28, 7:7, 8:47, 9:325} +``` + +The full p16/a7 controller contains 16 backward calls, two forward calls and +15 query shears. Thus the complete difference is **minus 16 H1 and 16 H8 paid +jobs, and minus 16 H9 productive targets**. It includes every idle and main +target. There are 64,372 paid jobs and 10,912 productive fields. Their rank +masses are 238,990 and 239,742; the surplus remains 752. + +For every real `0 < t < 1`, the complete target-minus-paid moment increases by + +```math +16(1+8^t-9^t)>0. +``` + +For a direct proof, both `(1/9)^t > 1/9` and `(8/9)^t > 8/9`; multiply their +sum by `9^t`. The improvement is strict throughout the required range. + +The backward word has 158,214 real scalar operations under the source macro +allowance, exactly 46 more than its source. Its maximum formal prefix L1 norm +is 169, with maximum denominator 64; both equal the source bounds. The forward +bounds remain 457 and 32. One extra physical private slot holds C1. L230 uses +an existing slot. The route bound also charges two routes for each of the two +new owned lifetimes. The local scalar-plus-route bound stays below 10^7, and +the complete raw nonrecursive bound stays **181,098,496 < 10^9**. Preparation, +COPY, CLEAR and storage therefore do not introduce an unpaid recursive cost. + +Two rational interval engines check the complete moment. Its unique crossing +in `0 < kappa < 1` lies in +**(0.00302238736347, 0.00302238736348)**. The verifier proves the moment decreases +on `[0,0.05]` and remains negative on `[0.05,1]`. This is a ceiling for this +fixed complete profile, not an optimum over circuits or helper relations. +The claimed kappa leaves more than **0.00000003736347** raw headroom. + +The separately tested saving is 0.00302236. The paid/target ratio is below +`0.999999971483293515393313955730`, with reserve `1e-9`. Both charged tails are +below `0.97`. The source power 1024, cutoff 20, floor 21, tail offset 1/5, +complement factor 63/64 and logarithm power 1000 still pass. The compiler gap +is `1/700000000`, with `j=44836`, `H=31385200000000` and `N=2^31385200000000`. +The exact integer test `(H+1)^1000 < 2^44836` passes; the preceding grid integer +fails. The uniform complex saving is `2115651/700000000`. All 54 strict outer +predicates and four functional predicates pass, using the retained ordinary +BIT saving 0.0034. + +## Verification and reproduction + +Use Python 3.12 or 3.14, with the standard library only. From the repository root: + +```sh +python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023 --check-only +python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023 +``` + +The registered commands run normal and optimized Python. The direct command, +also used for a Git-free export, is: + +```sh +python3 -B research/kappa-owned-relation-20261023/verify.py +python3 -O -B research/kappa-owned-relation-20261023/verify.py +``` + +Each prints status +`PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION`. +The verifier reconstructs the word and compares its bytes and exact result with +the published artifacts. `--write` is a separate authoring command. It changes +only this package's word and result after all checks pass. + +Fresh checks cover both source words, both candidate words, every independent +entry column and owned return, the two unrestricted source identities, retained +phase bindings, the p16 rational Laurent factorization, both scalar boundary +programs, two complete invoice counts, two rational interval engines, the fixed +profile ceiling, completion, compiler, BIT conversion and all outer predicates. +The emitted word replaces the old single `canonical.local_profile` metadata +field with explicit `paid_profiles` for the two directions. + +Seven native controls reject a wrong relation sign, omitted input clear, wrong +snapshot, wrong zero frame, wrong paid rank, wrong copy gauge, and omitted +output clear. Five cost/outer controls reject the lost helper's output credit, +old BIT stock, closed uniform gap, unfunded endpoint and closed epsilon. + +Normal and optimized registered replays passed on CPython 3.12.14. The direct +author check also passed on CPython 3.14. Source metadata and pins passed. +The optional full-history preflight is not claimed in the shallow checkout. +The publication handoff records export and committed-byte checks. + +The full source phase lowering, BIT native replay, Lean, Docker, physical tape +execution, numerical precision execution, analytic decomposition and integer +recovery are not rerun here. The complete bound retains those predecessor +contracts, including permitted owned erasure, whole-job normalizers, mixed +productive-target recursion and all-size closure. The expanded compiled word +is specified by a finite algorithm, not materialized. This is a conditional +construction with exact finite evidence, not an unconditional multiplication +theorem, a practical timing result or independent human acceptance. + +## Credit + +Prepared by Ali Romman with substantial OpenAI Codex assistance. Apache-2.0. +Cao Yifan's [PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610) +supplies the exact source word, phase evidence and previous compiler value. +Cinna Davis's [PR #4470](https://github.com/CrocSwap/integer-mult-bounds/pull/4470) +supplies the p16 controller and helper-interface lineage. The source code keeps +credit for Dugongue's transported frames, zxv's native and finite-compiler +work, Jacob Alan Sussman's mixed-target recursion and their predecessors. +The [pricing source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-interface-round2-20261022/price_profile.py) +and [literal native source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-rebuild/complex/native_extensions.py) +are pinned as provenance for the adapted checks. + +zxv's [PR #5283](https://github.com/CrocSwap/integer-mult-bounds/pull/5283) +supplies the related cache contract and the explicit handoff to find actual +matching rows and their lifetimes. Its standalone cache example is not part of +this word. The new contribution is the five-helper relation, its actual cache +and zero identities, the full owned-field replacement and the complete positive +bill. No priority is claimed for the general cache or paid-history ideas. + +## Open next questions + +Independent review should first check the three source rows and the physical +COPY/zero argument above, then the retained all-size and phase premises. +A later construction could test a different helper relation, but it must claim +a disjoint scope and pay every lost target and owned field. This package does +not classify such relations. [TASK.json](TASK.json) records the first steps, +relevance and blockers for both questions. diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/RESULT.json b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/RESULT.json new file mode 100644 index 0000000000..27b4e54708 --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/RESULT.json @@ -0,0 +1,373 @@ +{ + "arithmetic": { + "compiler": { + "H": 31385200000000, + "N": "2^31385200000000", + "eta": { + "lower": "0.000000203927056311365991628189", + "upper": "0.000000203927056311365991628190" + }, + "gap": "1/700000000", + "integer_test_exponent": 44836, + "logarithm_power": 1000, + "theta": "63/64", + "uniform_saving": "2115651/700000000", + "word_materialized": false + }, + "fixed_profile_ceiling": { + "decreasing_through": "1/20", + "derivative_upper": { + "lower": "-195778.630038840116414999953237565269", + "upper": "-195778.630038840116414999953237565268" + }, + "remaining_interval_moment_upper": { + "lower": "-6836.549542075249598033582799619360", + "upper": "-6836.549542075249598033582799619359" + } + }, + "full_backward": 16, + "full_forward": 2, + "gain_over_PR4610": "2871/5000000000", + "kappa": "60447/20000000", + "kappa_decimal": ".00302235", + "margin_at_previous_kappa": { + "lower": "0.151161494385402651700356241377", + "upper": "0.151161494385402651700356241378" + }, + "margin_at_previous_root_upper": { + "lower": "0.151143999513185007311808491175", + "upper": "0.151143999513185007311808491176" + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unearned_helper_credit": "Rejected by the independent complete census", + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "nonrecursive": { + "additional_private_slots": 1, + "local_routes": 4806000, + "local_scalar": 158214, + "owned_slots_backward": 3, + "raw_budget": 1000000000, + "raw_scalar_upper": 181098496 + }, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999253/175000000000", + "fixed_halo_explicit_metadata_branch": "13475000001/175000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899997009/700000000000", + "new_semantic_group_guard": "3/700000000" + }, + "margins": { + "boundary_algebraic_matrix": "23139910904443/7656250000000000", + "fused_gaussian": "23139910838329/7656250000000000", + "global_coordinate_router": "2115649/700000000", + "group_bit_router": "1480954993653053/490000000000000000", + "group_scans": "349999999/350000000", + "main_transform": "23139899966943/7656250000000000", + "microbox_face_corrections": "13475000001/175000000", + "polynomial_products": "699999999/700000000", + "sparse_union_movement": "3133491473404443/7656250000000000" + }, + "parameters": { + "a": "2115649/700000000", + "b": "42313/14000000", + "beta": "699999997/700000000", + "bit_saving": "17/5000", + "cap_xi": "6961616462466943/7656250000000000", + "complex_uniform_saving": "2115651/700000000", + "d": "1/700000000", + "epsilon": "699999999/700000000", + "kappa": "60447/20000000", + "lambda_": "199395529/200000000", + "lambda_prime": "10904443/10937500", + "layout": "1/700000000", + "q": "33057/10937500", + "r0": "1/7000000000", + "stop": "1/700000000", + "tested_saving": "75559/25000000" + }, + "strict_checks": { + "actual_bit_above_effective": "264351/700000000", + "actual_logarithmic_gamma_guard": "1/700000000", + "actual_logarithmic_group_guard": "694633553939307/3828125000000000", + "alpha_logarithm_absorption": "1/7000000000", + "boundary_algebraic_matrix_above_kappa": "43716943/7656250000000000", + "cap_above_band": "3133491462466943/7656250000000000", + "cap_below_cell": "694633526595557/7656250000000000", + "cap_below_phase_cell_power": "8350883537533057/7656250000000000", + "complex_above_effective": "1/700000000", + "complex_below_one_over_32": "395187/14000000", + "complex_endpoint": "1/350000000", + "epsilon_below_one": "1/700000000", + "epsilon_positive": "699999999/700000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "43650829/7656250000000000", + "gaussian_above_main": "5435693/3828125000000000", + "global_coordinate_router_above_kappa": "1/175000000", + "global_gamma_power_slack": "9/7000000000", + "group_below_dimension": "1/350000000", + "group_bit_router_above_kappa": "3493653053/490000000000000000", + "group_gauge_power_slack": "43414597087027/239257812500000", + "group_key_fits_record": "1/350000000", + "group_positive": "699999997/700000000", + "group_scans_above_kappa": "697884353/700000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "645689790400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000", + "lambda_above_sigma": "3/1400000000", + "lambda_above_tau": "1/1400000000", + "lambda_prime_above_lambda": "1/1400000000", + "lambda_prime_above_leaf": "27957687/9800000000000000", + "leaf_saving_above_effective": "13957687/9800000000000000", + "main_transform_above_kappa": "32779443/7656250000000000", + "membership_arithmetic_fits_record": "1/700000000", + "microbox_face_corrections_above_kappa": "53897884359/700000000", + "microbox_halo_volume": "55300000003/700000000", + "new_complex_uniform_saving_above_b": "1/700000000", + "new_semantic_guard_with_C1_one": "1/700000000", + "polynomial_products_above_kappa": "348942177/350000000", + "positive_layout_slack": "1/700000000", + "q_below_effective": "1/700000000", + "q_below_internal": "1/700000000", + "q_below_leaf": "27957687/9800000000000000", + "q_positive": "33057/10937500", + "short_record_fallback": "13957687/14000000", + "source_axis_superpolynomial": "1/700000000", + "sparse_union_movement_above_kappa": "3110351606216943/7656250000000000", + "stop_below_one": "699999999/700000000", + "stop_positive": "1/700000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000", + "union_tag_work_per_visit_fits_record": "3/700000000" + } + }, + "paid": { + "1": 41282, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 128 + }, + "paid_calls": 64372, + "productive_fields": 10912, + "query_shears": 15, + "rank_mass_surplus": 752, + "raw_headroom": [ + "3736347/100000000000000", + "934087/25000000000000" + ], + "raw_root_interval": [ + "302238736347/100000000000000", + "75559684087/25000000000000" + ], + "strictification": { + "alpha": { + "lower": "0.999999971483293515393313955729", + "upper": "0.999999971483293515393313955730" + }, + "cutoff": 20, + "delta": { + "lower": "0.957459689758527661921334851512", + "upper": "0.957459689758527661921334851513" + }, + "floor": 21, + "gamma": { + "lower": "0.956310980726438847618396606911", + "upper": "0.956310980726438847618396606912" + }, + "normalized_paid_upper": "2097152001953127/2097154147483648", + "power": 1024, + "reserve": "1/1000000000", + "tail_offset": "1/5", + "tested": "75559/25000000" + }, + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5852 + } + }, + "candidate_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 325 + }, + "independent_owned_entry_columns": 3, + "independent_persistent_columns": 631, + "max_denominator": 64, + "max_formal_prefix_l1": "169", + "owned_outputs_zero": true, + "paid": { + "1": 2200, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 7 + }, + "real_scalar_allowance": 158214, + "zero_identities": 1 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "independent_source_identities": { + "center_minus_snapshot": "Delta/4", + "center_replaced": 11332, + "copy_coefficient": "1", + "relation": { + "230": 1, + "324": -1, + "326": 1, + "328": 1, + "333": -1 + }, + "snapshot_after": 11205, + "snapshot_terms_before_substitution": 61, + "source_event_indices_are_zero_based": true, + "zero_identity_at": 15584, + "zero_site_row": "-Delta/4" + }, + "native_negative_controls": { + "missing_owned_input_clear": "Every independent main/helper endpoint: 0", + "uncleared_owned_output": "Every owned entry column is erased at return", + "under_or_overstated_paid_rank": "Exact paid rank and frame", + "wrong_copy_gauge": "Exact scalar destination frame", + "wrong_relation_sign": "Every independent main/helper endpoint: 0", + "wrong_snapshot_source": "Zero identity requires an identically zero full row", + "wrong_zero_input_frame": "Zero identity requires an identically zero full row" + }, + "phase_inheritance": { + "absolute_phase_receipt_reused": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "all_retained_paid_events_and_warps_from_source": true, + "new_gaussian_operators": 0, + "new_native_maps": 0, + "new_operations": "Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.", + "source_amplitudes_and_phase_lowering_freshly_replayed": false + }, + "scope": "Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.", + "source_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 64, + "max_formal_prefix_l1": "169", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158168, + "zero_identities": 0 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "source_payload_sha256": "cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd", + "status": "PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION", + "word_payload_sha256": "645b32ff67dfd49bbe8c2287d21f12a66a775d3c5e187db6f813e17e9f8fae35" +} diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/SOURCES.json b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/SOURCES.json new file mode 100644 index 0000000000..9854abbb4f --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/SOURCES.json @@ -0,0 +1,90 @@ +{ + "schema_version": 1, + "base_commit": "7c472563474e60185e6ca101a17622133d047e56", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "c35482cd9035843b15a634cc8276a7e1e40e8395", + "sha256": "6fe0a099b89aa2aed796a13c3a21dafc63f3388ebf397464e44e0451893b9375" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" + }, + { + "path": "research/free-word-tensor-lift-audit/PROOF.md", + "usage": "provenance", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e", + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459" + }, + { + "path": "research/higher-moment-strictification/verify.py", + "usage": "input", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326" + }, + { + "path": "research/joint-helper-lattice/CONTROLLER.json", + "usage": "input", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + { + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "usage": "input", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7" + }, + { + "path": "research/kappa-interface-round2-20261022/price_profile.py", + "usage": "provenance", + "git_blob": "1d93e43d1cb888d128c2faa2be83a96d85b84295", + "sha256": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb" + }, + { + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "usage": "input", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "research/kappa-rebuild/complex/native_extensions.py", + "usage": "provenance", + "git_blob": "7f84894efc309546a903d314c7ac1473e7f594a8", + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3" + }, + { + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "usage": "input", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + }, + { + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "usage": "input", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b" + }, + { + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "usage": "input", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de" + }, + { + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "usage": "input", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "research/query-thinned-controllers/RESULT.json", + "usage": "input", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f" + } + ] +} diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/TASK.json b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/TASK.json new file mode 100644 index 0000000000..f5df24ffe3 --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/TASK.json @@ -0,0 +1,80 @@ +{ + "schema_version": 1, + "task_id": "complex-new-helper-inventory", + "priority_revision": 7, + "base_commit": "7c472563474e60185e6ca101a17622133d047e56", + "original_card": { + "id": "complex-new-helper-inventory", + "question": "Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/heterogeneous-owner-assembly/README.md", + "certificates/selected-result.json", + "research/selected-k8-unrestricted-ends/README.md" + ], + "methods": [ + "Propose a changed helper inventory and derive an optimistic exact moment.", + "Design a small completed instance and independently verify its endpoint and rank bill." + ], + "acceptance_gate": "A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a lower cap does not establish identical circuitry or order attainable optima, and is insufficient to pass the stronger-budget target under this model. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.", + "bottleneck_link": "Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.", + "allowed_variations": [ + "Narrow to one changed boundary or helper type with explicit counts.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Mixing only providers already inside the pinned catalogue.", + "Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "helper inventory", + "heterogeneous-owner", + "mutable leaver" + ] + }, + "scope_status": "refined", + "actual_scope": "Make helper L230 owned in each backward call, prepare one five-helper relation, retain one exact frame-254 snapshot, remove one rank-eight center and one rank-one zero job, and debit one rank-nine target.", + "scope_change_reason": "This uses the current helper-inventory priority. It changes the independent input inventory and scalar word; all physical native maps and the p16 controller remain fixed.", + "bottleneck_link": "https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737", + "budget_minutes": 240, + "stop_rule": "Publish one exact complete-profile kappa improvement after native, ownership, phase-inheritance, compiler and cold-export checks.", + "outcome": "completed", + "evidence": "README.md, WORD.json.gz, RESULT.json and verify.py. The complete conditional kappa is 60447/20000000.", + "author": "Ali Romman", + "ai_assistance": "Substantial OpenAI Codex assistance in discovery, code, proof, verification and publication.", + "open_questions": [ + { + "question": "Can a separate reviewer validate this one-relation restriction and the inherited physical transfer premises?", + "why_it_matters": "The new finite construction is exact, but the complete bound still uses the source phase and all-size contracts.", + "first_step": "Replay the three unrestricted source rows in native.py and check the COPY and zero-identity argument in README.md.", + "blocked_by": "Independent review has not yet occurred." + }, + { + "question": "Can a different helper relation give another complete positive bill?", + "why_it_matters": "This construction gives one positive instance, not an optimum for changed helper inventories.", + "first_step": "Claim a disjoint relation in Discussions, derive its exact rows, and include every lost target and owned-storage cost.", + "blocked_by": "Current active cache and paid-history scopes must be checked first." + } + ], + "coordination": { + "claim": "https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737", + "distinct_scopes": [ + "https://github.com/CrocSwap/integer-mult-bounds/discussions/5355", + "https://github.com/CrocSwap/integer-mult-bounds/discussions/4930" + ], + "boundary": "The first scope retains 632 arbitrary inputs and eight centers. The second retains every original helper endpoint. This package removes the independent L230 job only in backward calls and claims only the stated relation and two event replacements." + } +} diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/VERIFY.json b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/VERIFY.json new file mode 100644 index 0000000000..8098df4c80 --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/VERIFY.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/higher-moment-strictification/verify.py", + "research/joint-helper-lattice/CONTROLLER.json", + "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "research/kappa-rebuild/architecture/mixed_target_probe.py", + "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "research/query-thinned-controllers/RESULT.json" + ], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "Exact native rows, owned entry columns, event ranks, independent source identities, p16 Laurent controller, complete asymmetric invoice, two interval engines, compiler and outer predicates, negative controls." + }, + { + "argv": [ + "{python}", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "The same checks remain active with Python assertions disabled." + } + ] +} diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/WORD.json.gz b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..5e79bd826c6ca1e782766ea0ae28a61d136303d1 GIT binary patch literal 206987 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

@Llg*%VK`0&GUPt!^(rsfQoi!EYdE~tu6^FUc! z1T-})XO$5Y_pLKTlG3in=>=5wsjaoB|A1n`%WP2>g>0|3DhI(O046w4NKxR(x-w!p z>8iKFZ>KPs&7_&CkO3kcdrsNAcmSpB#6nCt`vd>21m2hi-cKB;1>Vy>-ZVUJjRf8R zi}3XU3%R;J?x_V*J>Fi&-O)a7b=(hSJ)Q+V+ywr+=y-rGxLn@E{ULq(IOei*M!U`# z_+Z(bG!po$;r1r(@3i=1_44i3+xi92dcfmMfUi|JZFkjD2y?z0ZtS;^r4UdtzUvQ| z4y0if!oFeXwm~w;DMW~SK}wYx=E)~-m$UKfSwF=G3qO;k-0_kN8^u)Er`r!wj0!dF35gm*KX*$2o;Hm2SRL73aTKik;MKW0ZF& zUaA4rO}fs(43=Gh=6SF4qeb&Dlr9+QS12;GHpVa?L}X{zG7gQv#LF?KR-DGgLd z>iQdIpwzGlDgSHu0Wp1;1B~gq{*IcSFBj2tyq~5nzBqVl-1cH8o0pnFbu_L^Fax!Q zLrD3Sp%-F$2)JzT3V#M>u=2@>d$8?GQ#$3=GV0RrC}@LkQHyu=q2~)vLGJmb!#{_c zJuM4jt4ponUM*i*)5*?UuCl$(a+eQiE?rC(Tb9sw@^P;M{V_kn7qu|n+G54w{Im^P z5`BJX|LJaP<5Bo7kn16<^l@wRv8g4ny%6s(>(isHsl%qyZ@=PH?l))oHtmzYlGAQ9 zquM8Px$Cx-IB);o?uHWQjiyrjB%HhMe|Cr3Cu_Lt_LVsAH2(lRy<^-KRxb`WP{`U%`J@of4R({^rOwWHw|pgY(IG1s|>t#xx91B zIzWlkK+5L|s*&26Fpgt~+%&<_Mhh3{`TC{QC1jD`AX_E-=09E}cii`#ar>t3(|9kp zseSxr{_iUAZYJ>2^-5>?b>PE->EoH{<9+4h>90Sr2#_Dx$Jr8V$4jd~?R}h`4qRA~ z;p(F*qdr{fbT);4U`z8EocsMlGpIT;R>2S3wIaH_GK$WzE@G zrG@*Lz_QNc&4B#Y>VtmEalKy8g5ci(MJ+O=m&pe3zH?L+rAvNQ#?a0??bFCHhHm$+Rz{Qd0hvSW3HijK$&K26lZ*`#JV4~WXhVy`cli1tlz^R9x zxb+xs+T|YikqN_#fI{ojo`YNtQ?Mwg@$R?$j7q?^lJEVx#=`K9hULRQCG+Mh5P1rA zX5KL!Q9DDZSNSjGyZMeo9=;PD9

!p@6mTvz^}dn+>#HjQ()nc?4Y4m6GF|M!bSJ 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

~Yk-!hgQDd3FmtqEdT@CattzST(EjXb zbNA5C#pYw0B;rrK5WVF8zvw4J+WK9`wr!CRnxg7NH&uY56KT0shsprO4G~W(H|G{P zY6Y`_m=F#HSJgZ`_`I|XVjq&^#eNx;M>&uHx2#UvmTPSbrwJ^yk#mCKd8m>YpBf#? zN-oH4E$B6`Hj+}jT>UL-`L7*$Tx>f{qSMzRuq9_VC|#xNQaS`Hux@h^duM1lxl97M zS;~uYrvnsFD|9teW1;tecqov4tbJFBX~C9qRwO`7Bo54VI4v7F*Mnq}=a3m=7vVnks=%7?H=Xfjf%j0f1+P0@C}g5wCw-~`CgMjPg&Mz!s9)Vbuh zr4Wk?;SEjouTsGpem~#P=0ZP2gQ1bKb#JAPW(A*^{N!H4gaj*L6-BuS;+PY9Kkzs4 zSjJ<|{yJ+*hIJW^N%l4Sg=*+wbtIX@JJ@97CZE%CM8$^A^dqcgugTPHHjm`=^`JKB zX+7v^VKg5at0m~=@66ld-+bt$%QwNFQg4iO7s|D4HRzYdH>=UjJwQ=>CT#?V{$aSC ziOl6lA6njCvMbcI(C?tO?7kAC{&{@ffS%NAJ*_@rHp8`DX1_D&KC@+@yj?nS{y~I| zip%i15h)wI&r9-=3#QOJ7j$twYx;GvU84HnVFtnKOjQz*xY(#R!IC5N5n&vFwVBZ_ zh~sL<#t~kkX^fKmMp=$_#u?=%ZnyBZ3oEV#K7$uXc@o+t6dmKt#3*Rp7}m1WlwQB} zMCYgoja5fnY{?h+p7ol;*QH z6f3(}TO=-XLQYIb6a5HEFUU_edxxSE7qewa3G#pq_iZU-j`~*9SbZ&VryQUvJ@me~ z+eNA!75o0M)v$1UXmYLMp#1t>0f)!Y17cEMrt}w)6J-G5-;X%M=>sT(8*XwKH}hlP z1__&so0Q#OJMx4XcnrqtjC+x2Yl0068`IITrQq{RG(6QihqhuX)uFI}7vnHbSkh~T z%QI0lLC0|u!XQ___(MH`_o!h9_0H3hZ4cq9ZCKa*IpiyA4=Xp!{3;R^@6TX0C}bWv zSHDi2T;iFl*jG~6j!rc_EWZs7PB}U3<|cJcZT^-`~C` zigL^S1Bio%^!-89afd)M^vPE0oa9d&KfaTHmLeA@I>a#_IWSrG>_VbXTJ;>K^?tRgtATH&BVv)*I?}<;mLX zl1ZRQyUPTZW(E}JLuvyvuiNDxCuRh_;=$9a%U2j*s1(fx-M<8a7JkB~ye=l)DfW+}Qz2w^-p}9{BGf_HQzkb{923~3 zwtBh!)f|kBCDl(9byDDgG)IOtyGzK|6-dIc#Ro6@_bQgeh&TbqPt;|b1Z`ASGIq>r zLr25o4lOY;Rb-1D*;|IPx;@mWvytu>PCec<7c$i>{-O(KI4^N<`I<9?0e6yw4I$X0 z5qbU4jz?KV94);d!859dlKvmc%oQ0Tzn`j{l~6&KNKsl5uf)YUoNAUaARb5TczU() zl!61y@88{#{uW*S+F0C@dzvT99_!y z!mR9eVL7Tx#N%_4EohG&1`u=YNeY~Jj+0HIT39W+{yv(81E8LnD5L4z=poXm9UOTZ zYSXL%s%$)zK|?;@O6Xz#NQ~73#n-dL{;aq1sq3?;7UXU};f(?q5>$Kpc3mGY%o8cc z_XBhlzzp_P}L$~h$E@htdBfek?NpmA0wfh7) z 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 0 and d & (d - 1) == 0, 'Nonzero dyadic scalar') + if g[0] == 'scale': + need(n & (n - 1) == 0, 'Dyadic unit SCALE') + return 2 * (abs(n.bit_length() - d.bit_length()) + int(q < 0)) + need(g[0] == 'add', 'Known scalar operation') + return 2 * (3 + n.bit_length() - 1 + n.bit_count() + d.bit_length() - 1) + + +def construct(source): + c = source['canonical'] + old = source['programs']['backward'] + need(old[11205] == ['climb', 'warp_retimed', 92, 310, 254, 4], 'Snapshot source event') + need(old[11332] == ['center', 0, 0, 254, 8], 'Center source event') + need(old[15584] == ['climb', 'warp_retimed', 92, 254, 1, 1], 'Zero source event') + need(all(c['start'][h] == 0 and c['final'][h] == 1 for h in RELATION), 'Five cold full-ended helpers') + word = [['scalar', ['clear', ['L', 230]], 0]] + word += [['scalar', ['add', ['L', 230], ['L', h], -q, 1], 0] + for h, q in RELATION.items() if h != 230] + for i, event in enumerate(old): + if i == 11332: + word += [['scalar', ['clear', ['C', 0]], 254], + ['scalar', ['copy', ['C', 0], ['C', 1]], 254], + ['scalar', ['clear', ['C', 1]], 254]] + elif i == 15584: + word.append(['zero_retag', ['L', 92], 254, 1]) + else: + word.append(deepcopy(event)) + if i == 11205: + word += [['scalar', ['clear', ['C', 1]], 254], + ['scalar', ['copy', ['C', 1], ['L', 92]], 254]] + word.append(['scalar', ['clear', ['L', 230]], 1]) + physical = deepcopy(c) + physical.pop('local_profile') + return {'schema': 'owned-helper-relation-word/1', 'canonical': physical, + 'paid_profiles': {'forward': OLD_PAID, 'backward': NEW_PAID}, + 'owned': {'forward': [['C', 0]], 'backward': [['C', 0], ['C', 1], ['L', 230]]}, + 'programs': {'forward': deepcopy(source['programs']['forward']), 'backward': word}} + + +def replay(c, program, backward, specialized): + """Run every event on all independent entry columns and exact frames.""" + owned = {('C', 0)} | ({('C', 1), ('L', 230)} if specialized else set()) + roles = {('L', i) for i in range(632)} | owned + rows = {r: {(r, ()): Q(1)} for r in roles} + frames = {('L', i): f for i, f in enumerate(c['start'])} + frames.update({r: None for r in owned if r[0] == 'C'}) + spaces = [span(b) for b in c['frames']] + paid = Counter() + cost, max_l1, denominator, zero_count = 0, Q(1), 1, 0 + for e in program: + kind, touched = e[0], None + if kind == 'scalar': + g, frame = e[1:] + dst = tuple(g[1]); touched = dst + need(dst in rows and 0 <= frame < len(spaces), 'Declared scalar destination and frame') + cost += allowance(g) + if g[0] == 'clear': + need(dst in owned, 'Only owned fields can be erased') + rows[dst] = {}; frames[dst] = frame + else: + need(frames[dst] == frame, 'Exact scalar destination frame') + if g[0] in ('add', 'copy'): + src = tuple(g[2]) + need(src in rows and frames[src] == frame and dst != src, 'Exact scalar source frame') + if g[0] == 'copy': + need(dst in owned and not rows[dst], 'COPY into cleared owned storage') + rows[dst] = dict(rows[src]) + else: + add(rows[dst], rows[src], Q(g[3], g[4])) + else: + need(g[0] == 'scale', 'Known scalar operation') + rows[dst] = {k: Q(g[2], g[3]) * v for k, v in rows[dst].items()} + elif kind == 'warp': + _, role, op, old, new = e + dst = tuple(role); touched = dst + need(frames[dst] == old and 1 <= abs(op) <= len(c['warps']), 'Exact warp input') + symbol = (1 if op > 0 else -1) * (abs(op) + (10**6 if backward else 0)) + rows[dst] = {(r, w[1:] if w and w[0] == -symbol else (symbol,) + w): q + for (r, w), q in rows[dst].items()} + frames[dst] = new + elif kind in ('climb', 'center'): + if kind == 'climb': + _, _, i, old, new, rank = e + dst = ('L', i) + need(spaces[old] < spaces[new], 'Ascending paid climb') + else: + _, i, old, new, rank = e + dst = ('C', i) + need(spaces[old] < spaces[new] or spaces[new] < spaces[old], 'Nested paid center') + need(frames[dst] == old and rank == abs(len(c['frames'][new]) - len(c['frames'][old])), 'Exact paid rank and frame') + frames[dst] = new; paid[rank] += 1 + elif kind == 'zero_retag': + _, role, old, new = e + dst = tuple(role) + need(specialized and backward and dst == ('L', 92), 'Declared zero identity') + need(frames[dst] == old and not rows[dst], 'Zero identity requires an identically zero full row') + need((old, new) == (254, 1), 'Declared zero frame change') + frames[dst] = new; zero_count += 1 + else: + need(kind in ('phase', 'adapter'), 'Known inert source marker') + if touched is not None: + max_l1 = max(max_l1, sum(map(abs, rows[touched].values()), Q(0))) + denominator = max(denominator, max((q.denominator for q in rows[touched].values()), default=1)) + need([frames['L', i] for i in range(632)] == c['final'], 'Every final native frame') + for i in range(632): + r = ('L', i) + if r in owned: + continue + expected = {(r, ()): Q(1)} + if i < 112 if backward else 112 <= i < 224: + expected[(('L', i + 112 if backward else i - 112), ())] = Q(-1 if backward else 1) + need(rows[r] == expected, 'Every independent main/helper endpoint: ' + str(i)) + need(all(not rows[r] for r in owned), 'Every owned entry column is erased at return') + need(zero_count == int(specialized), 'Exactly one checked zero identity') + helpers = Counter() + for i in range(224, 632): + if ('L', i) in owned: + continue + a, b = c['start'][i], c['final'][i] + need(spaces[a] < spaces[b], 'Strict independent productive helper') + helpers[len(c['frames'][b]) - len(c['frames'][a])] += 1 + return {'paid': dict(sorted(paid.items())), 'helpers': dict(sorted(helpers.items())), + 'independent_persistent_columns': 631 if specialized else 632, + 'independent_owned_entry_columns': len(owned), 'owned_outputs_zero': True, + 'real_scalar_allowance': cost, 'max_formal_prefix_l1': str(max_l1), + 'max_denominator': denominator, 'zero_identities': zero_count} + + +def independent_source_identities(source): + """Use the predecessor row engine on the unrestricted original word.""" + v = load('research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py', 'owned_relation_source_rows') + rows = {('L', i): v.identity(('L', i)) for i in range(632)} + rows['C', 0] = v.identity(('C', 0)) + delta = {(('L', i), ()): Q(q) for i, q in RELATION.items()} + saved = None + for index, e in enumerate(source['programs']['backward']): + if e[0] == 'scalar': + g = e[1]; dst = tuple(g[1]) + if g[0] == 'clear': rows[dst] = {} + elif g[0] == 'copy': rows[dst] = dict(rows[tuple(g[2])]) + elif g[0] == 'scale': rows[dst] = {k: Q(g[2], g[3]) * a for k, a in rows[dst].items()} + else: v.add(rows[dst], rows[tuple(g[2])], Q(g[3], g[4])) + elif e[0] == 'warp': + dst = tuple(e[1]); rows[dst] = v.warp(rows[dst], e[2], True) + if index == 11205: saved = dict(rows['L', 92]) + if index == 11332: + diff = dict(rows['C', 0]); v.add(diff, saved, -1) + need(diff == {k: q / 4 for k, q in delta.items()}, 'Independent exact center minus snapshot = Delta/4') + if index == 15584: + need(rows['L', 92] == {k: -q / 4 for k, q in delta.items()}, 'Independent exact zero-site row = -Delta/4') + need(all(rows['L', i] == v.expected(('L', i), [], True, False) for i in range(632)), 'Independent unrestricted source endpoints') + return {'source_event_indices_are_zero_based': True, 'snapshot_after': 11205, + 'center_replaced': 11332, 'zero_identity_at': 15584, + 'snapshot_terms_before_substitution': len(saved), 'copy_coefficient': '1', + 'center_minus_snapshot': 'Delta/4', 'zero_site_row': '-Delta/4', 'relation': RELATION} + + +def phase_inheritance(source, candidate): + receipt = read(ROOT / PHASE) + need(receipt['status'] == 'PASS_JOINT_HELPER_MAPS_ALL_ACTUAL_ABSOLUTE_PHASES' and + receipt['actual_word_canonical_sha256'] == PAYLOAD, 'Authenticated source absolute-phase receipt') + physical = deepcopy(source['canonical']); physical.pop('local_profile') + need(candidate['canonical'] == physical, 'Every frame, native map and main adapter unchanged') + for direction, program in candidate['programs'].items(): + old = source['programs'][direction] + for kind in ('warp', 'adapter', 'phase'): + need([e for e in program if e[0] == kind] == [e for e in old if e[0] == kind], 'Exact inherited ' + kind + ' sequence') + old_paid = Counter(tuple(e) for e in old if e[0] in ('climb', 'center')) + new_paid = Counter(tuple(e) for e in program if e[0] in ('climb', 'center')) + expected = Counter() if direction == 'forward' else Counter(tuple(old[i]) for i in (11332, 15584)) + need(old_paid - new_paid == expected and not new_paid - old_paid, 'Only the two proved jobs are removed') + return {'new_gaussian_operators': 0, 'new_native_maps': 0, + 'all_retained_paid_events_and_warps_from_source': True, + 'absolute_phase_receipt_reused': PHASE, + 'source_amplitudes_and_phase_lowering_freshly_replayed': False, + 'new_operations': 'Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.'} + + +def controls(c, candidate): + controls = {} + base = candidate['programs']['backward'] + variants = {} + bad = deepcopy(base); bad[1][1][3] *= -1; variants['wrong_relation_sign'] = bad + variants['missing_owned_input_clear'] = deepcopy(base[1:]) + bad = deepcopy(base) + next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 1]])[1][2] = ['L', 63] + variants['wrong_snapshot_source'] = bad + bad = deepcopy(base); next(e for e in bad if e[0] == 'zero_retag')[2] = 0 + variants['wrong_zero_input_frame'] = bad + bad = deepcopy(base); next(e for e in bad if e[0] == 'climb')[5] += 1 + variants['under_or_overstated_paid_rank'] = bad + bad = deepcopy(base) + next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 0]])[2] = 0 + variants['wrong_copy_gauge'] = bad + variants['uncleared_owned_output'] = deepcopy(base[:-1]) + for name, program in variants.items(): + try: + replay(c, program, True, True) + except ValueError as err: + controls[name] = str(err) + else: + raise ValueError('Control accepted: ' + name) + return controls diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/price.py b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/price.py new file mode 100644 index 0000000000..6077adf74c --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/price.py @@ -0,0 +1,196 @@ +"""Complete p16 bill and finite compiler for one owned helper relation. + +The interval and compiler proof follows Cao Yifan's PR4610 pricing, Cinna +Davis's PR4470 controller, zxv's completion and logarithmic majorant, and +Jacob Alan Sussman's mixed-target recursion. Apache-2.0. +Ali Romman, with substantial OpenAI Codex assistance. +""" +from collections import Counter +from fractions import Fraction as Q +from native import ROOT, read, load, need, encode, OLD_PAID, OLD_HELPERS + +KAPPA = Q('.00302235') +TESTED = Q('.00302236') +PREVIOUS = Q('.0030217758') +OLD_ROOT_UPPER = Q('.00302177587078') + + +def controller(): + """Check the literal p16 word and both rational boundary programs.""" + word = read(ROOT / 'research/joint-helper-lattice/CONTROLLER.json') + need((word['kind'], word['pairs'], word['prefix_pairs'], word['ambient_rank']) == ('complex', 16, 7, 145), 'Source p16/a7 controller') + zero = (0,) * 34 + def plus(dst, src, q): + for k, v in src.items(): + value = dst.get(k, Q(0)) + q * v + if value: dst[k] = value + else: dst.pop(k, None) + def shifted(row, term, sign=1): + return [{tuple(a + b for a, b in zip(k, term)): sign * v for k, v in cell.items()} for cell in row] + for side in ('left', 'right'): + matrix = [[Q(i == j) for j in range(32)] for i in range(32)] + for e in word['boundaries'][side + '_program']: + if e[0] == 'SWAP': matrix[e[1]], matrix[e[2]] = matrix[e[2]], matrix[e[1]] + elif e[0] == 'SCALE': matrix[e[1]] = [Q(e[2]) * x for x in matrix[e[1]]] + else: + need(e[0] == 'ADD', 'Boundary scalar opcode') + matrix[e[1]] = [x + Q(e[3]) * y for x, y in zip(matrix[e[1]], matrix[e[2]])] + need(matrix == [[Q(x) for x in row] for row in word['boundaries'][side]], 'Exact scalar boundary program') + rows = [[{zero: Q(x)} if Q(x) else {} for x in row] for row in word['boundaries']['right']] + for e in word['physical_events']: + if e[0] in ('LOCAL', 'QUERY_SHEAR'): + _, stage, pair, back = e + x, y = 2 * pair, 2 * pair + 1 + if back: x, y = y, x + term = (1 if back else -1,) + (0,) * 33 + for dst, src in zip(rows[y], shifted(rows[x], term)): + plus(dst, src, Q(-1 if back else 1)) + if e[0] == 'LOCAL': + term = (0,) + tuple(int(s == stage) for s in range(33)) + for r in (x, y): rows[r] = shifted(rows[r], term) + elif e[0] == 'IDLE': + term = (0,) + tuple(int(s in e[2]) for s in range(33)) + for r in (2 * e[1], 2 * e[1] + 1): rows[r] = shifted(rows[r], term) + elif e[0] == 'ADD': + for dst, src in zip(rows[e[1]], rows[e[2]]): plus(dst, src, Q(e[3])) + else: + need(e[0] in ('SWAP', 'SIGNED_SWAP'), 'Controller physical opcode') + rows[e[1]], rows[e[2]] = rows[e[2]], shifted(rows[e[1]], zero, -1 if e[0] == 'SIGNED_SWAP' else 1) + out = [[{} for _ in range(32)] for _ in range(32)] + for i, row in enumerate(word['boundaries']['left']): + for k, q in enumerate(row): + if Q(q): + for j in range(32): plus(out[i][j], rows[k][j], Q(q)) + expected = [[{tuple(word['diagonal'][i]): Q(1)} if i == j else {} for j in range(32)] for i in range(32)] + need(out == expected, 'All p16 Laurent coefficients, central signs and boundary factors') + return word + + +def assemble(native, word): + T, P = Counter(), Counter() + orientations = Counter(); thin = 0 + for e in word['physical_events']: + if e[0] == 'LOCAL': + direction = 'backward' if e[3] else 'forward' + orientations[direction] += 1 + T.update(native[direction]['helpers']); P.update(native[direction]['paid']) + elif e[0] == 'QUERY_SHEAR': thin += 1; P[1] += 112 + elif e[0] == 'IDLE': P[8 * len(e[2])] += 224 + main = Counter() + for term in word['diagonal']: + need(term[0] in (-1, 1) and all(x in (0, 1) for x in term[1:]), 'Whole Gaussian main target') + main[1 + 8 * sum(term[1:])] += 112 + T.update(main) + need(orientations == {'backward': 16, 'forward': 2} and thin == 15, 'Every actual call orientation') + # This second census uses the source invoice and the two local deltas. + check_T = Counter({int(r): n for r, n in word['invoice']['main'].items()}) + check_T.update({r: 18 * n for r, n in OLD_HELPERS.items()}); check_T[9] -= 16 + check_P = Counter({int(r): n for r, n in word['invoice']['whole_idle'].items()}) + check_P.update({r: 18 * n for r, n in OLD_PAID.items()}); check_P[1] += 1680 - 16; check_P[8] -= 16 + need(T == check_T and P == check_P, 'Independent full invoice substitution') + need(sum(T.values()) == 10912 and sum(P.values()) == 64372, 'Complete productive and paid counts') + need(sum(r * n for r, n in T.items()) - sum(r * n for r, n in P.items()) == 752, 'Unchanged complete rank surplus') + return T, P + + +def run(native): + word = controller(); T, P = assemble(native, word) + prior = read(ROOT / 'research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json') + need(Q(prior['kappa']) == PREVIOUS and Q(prior['raw_root_interval'][1]) == OLD_ROOT_UPPER, 'Pinned prior conditional bound and raw crossing') + prior_T = Counter({int(r): n for r, n in prior['targets'].items()}) + prior_P = Counter({int(r): n for r, n in prior['paid'].items()}) + prior_T[9] -= 16; prior_P[1] -= 16; prior_P[8] -= 16 + need(T == prior_T and P == prior_P, 'Complete delta from the final PR4610 bill') + E = load('research/higher-moment-strictification/verify.py', 'owned_relation_intervals') + other = load('research/kappa-rebuild/architecture/mixed_target_probe.py', 'owned_relation_second_intervals') + def margin(c): + t, p = E.moment(T, 1 - c), E.moment(P, 1 - c) + return t[0] - p[1], t[1] - p[0] + need(margin(OLD_ROOT_UPPER)[0] > 0, 'Changed invoice beats the prior raw root upper endpoint') + lo, hi, grid = 0, 10**12, 10**14 + while hi - lo > 1: + mid = (lo + hi) // 2 + if margin(Q(mid, grid))[0] > 0: lo = mid + else: hi = mid + root_low, root_high = Q(lo, grid), Q(hi, grid) + need(margin(root_low)[0] > 0 and margin(root_high)[1] < 0, 'Strict rational root enclosure') + need(PREVIOUS < KAPPA < TESTED < root_low, 'New bound and explicit compiler headroom') + # The complete signed profile decreases on [0, .05], and stays negative + # on [.05, 1]. This proves a fixed-profile ceiling, not a circuit ceiling. + signed = {r: T[r] - P[r] for r in T.keys() | P.keys()} + derivative, upper = None, None + for i in range(16): + l, r = Q(i, 320), Q(i + 1, 320); low = Q(0) + for rank, n in signed.items(): + term = E.mul(E.power(rank, 1 - r if n > 0 else 1 - l), E.log_bounds(rank)) + low += n * term[0 if n > 0 else 1] + derivative = low if derivative is None else min(derivative, low) + for i in range(128): + l, r = Q(1, 20) + Q(19 * i, 2560), Q(1, 20) + Q(19 * (i + 1), 2560) + value = sum(n * E.power(rank, 1 - l if n > 0 else 1 - r)[1 if n > 0 else 0] for rank, n in signed.items()) + upper = value if upper is None else max(upper, value) + need(derivative > 0 and upper < 0, 'Fixed-profile ceiling on all 0 < kappa < 1') + t, u, v, c, b = 1 - TESTED, Q(1, 5), 1024, 20, 21 + target, paid = E.moment(T, t), E.moment(P, t) + tl, th = other.moment(T, TESTED); pl, ph = other.moment(P, TESTED) + need(tl > ph and max(tl, target[0]) <= min(th, target[1]) and max(pl, paid[0]) <= min(ph, paid[1]), 'Two exact interval engines agree') + alpha = E.divide(paid, target) + gamma = E.divide(E.moment(P, t + u), E.mul(E.power(c, u), target)) + delta = E.divide((Q(sum(T.values()) * b),) * 2, E.mul(E.power(c, TESTED), target)) + reserve = Q(1, 10**9); g = d = Q(97, 100) + need(alpha[1] < 1 - reserve and gamma[1] < g and delta[1] < d, 'Original and completion tails charged') + need(g**128 < Q(1, 16) and d**128 < Q(1, 16), 'Two strict tail decay blocks') + normalized = 1 / (1 + v * reserve) + Q(4, 2**32) + need(normalized < 1 and c**64 < b**63, 'Paid completion, splitting and rounding') + theta, power = Q(63, 64), 1000 + eta = E.scale(E.power(145, -v * TESTED), t) + need(2 * (20**v)**64 <= (145**v)**63 and eta[0] > theta**power, 'Shifted exits and complement capacity') + need(E.power(145, v * TESTED)[1] < 2**power, 'Compiler initial range') + gap = (TESTED - KAPPA) / 7; need(gap.numerator == 1, 'Finite integer grid') + step = gap.denominator + def wins(j): return (step * j + 1)**power < 2**j + left, right = 1, 2 + while not wins(right): left, right = right, 2 * right + while right - left > 1: + mid = (left + right) // 2 + if wins(mid): right = mid + else: left = mid + height = step * right + need(height > 8 * v and wins(right) and not wins(right - 1), 'Finite uniform-rank threshold') + local_scalar = max(x['real_scalar_allowance'] for x in native.values()) + # The old route allowance is retained. Charge two additional owned field + # lifetimes at two routes each, even though L230 uses an existing slot. + routes = (max(sum(x['paid'].values()) for x in native.values()) + 2 * 408 + 688 + 4) * 1000 + need(local_scalar + routes < 10**7, 'All new preparation, COPY, CLEAR and fixed routes fit') + scalar_upper = 18 * 10**7 + 15 * 1792 + 32 * 112 * (len(word['physical_events']) + sum(len(word['boundaries'][k + '_program']) for k in ('left', 'right'))) + need(scalar_upper < 10**9, 'Complete raw nonrecursive bound') + bit = read(ROOT / 'research/query-thinned-controllers/RESULT.json')['ordinary_BIT'] + atom = Q(bit['atom']); ordinary = (1 - atom) * Q(bit['after_cover']) + atom * Q('.0000384599'); admitted = Q(bit['admitted']) + need(atom == Q('.004') and atom > ordinary > admitted > TESTED and atom < 1 - ordinary, 'Retained stronger BIT admission and stock') + L = load('research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py', 'owned_relation_outer') + params = {'kappa': KAPPA, 'tested_saving': TESTED, 'complex_uniform_saving': KAPPA + 6 * gap, + 'b': KAPPA + 5 * gap, 'a': KAPPA + 4 * gap, 'q': KAPPA + 3 * gap, 'bit_saving': admitted, + 'epsilon': 1 - gap, 'beta': 1 - 3 * gap, 'r0': gap / 10, 'stop': gap, 'layout': gap, 'd': gap} + outer = L.ledger(params); outer['functional_checks']['actual_new_BIT_stock_sublinear'] = params['beta'] * (1 - atom) + need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 4, 'Complete outer predicate inventory') + need(all(x > 0 for key in ('strict_checks', 'functional_checks') for x in outer[key].values()), 'Every outer inequality is strict') + controls = {} + for name, patch in [('old_BIT', {'bit_saving': Q('.0027')}), ('closed_uniform', {'complex_uniform_saving': params['b']}), ('unfunded_endpoint', {'kappa': TESTED}), ('closed_epsilon', {'epsilon': Q(1)})]: + bad = L.ledger(dict(params, **patch)); failed = [k for k, x in bad['strict_checks'].items() if x <= 0] + need(failed, 'Reject outer patch ' + name); controls[name] = failed + bad_native = {d: dict(x) for d, x in native.items()} + bad_native['backward']['helpers'] = OLD_HELPERS + try: assemble(bad_native, word) + except ValueError: controls['unearned_helper_credit'] = 'Rejected by the independent complete census' + else: raise ValueError('Unowned helper credit was accepted') + return encode({'kappa': KAPPA, 'kappa_decimal': '.00302235', 'gain_over_PR4610': KAPPA - PREVIOUS, + 'raw_root_interval': [root_low, root_high], 'raw_headroom': [root_low - KAPPA, root_high - KAPPA], + 'margin_at_previous_kappa': E.display(margin(PREVIOUS)), + 'margin_at_previous_root_upper': E.display(margin(OLD_ROOT_UPPER)), + 'fixed_profile_ceiling': {'decreasing_through': Q(1, 20), 'derivative_upper': E.display((-derivative,) * 2), 'remaining_interval_moment_upper': E.display((upper,) * 2)}, + 'targets': T, 'paid': P, 'productive_fields': sum(T.values()), 'paid_calls': sum(P.values()), 'rank_mass_surplus': 752, + 'full_backward': 16, 'full_forward': 2, 'query_shears': 15, + 'strictification': {'tested': TESTED, 'power': v, 'cutoff': c, 'floor': b, 'tail_offset': u, 'reserve': reserve, 'alpha': E.display(alpha), 'gamma': E.display(gamma), 'delta': E.display(delta), 'normalized_paid_upper': normalized}, + 'compiler': {'theta': theta, 'logarithm_power': power, 'eta': E.display(eta), 'gap': gap, 'uniform_saving': params['complex_uniform_saving'], 'H': height, 'N': '2^' + str(height), 'integer_test_exponent': right, 'word_materialized': False}, + 'nonrecursive': {'local_scalar': local_scalar, 'local_routes': routes, 'raw_scalar_upper': scalar_upper, 'raw_budget': 10**9, 'additional_private_slots': 1, 'owned_slots_backward': 3}, + 'ordinary_BIT': bit, 'outer': outer, 'negative_controls': controls}) diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/verify.py b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/verify.py new file mode 100644 index 0000000000..b19f7d0ca4 --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/kappa-owned-relation-20261023/verify.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 +"""Replay the one-relation native word and its complete conditional kappa. + +Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0. +Read README.md for the source credit and inherited proof obligations. +""" +from hashlib import sha256 +import argparse +import gzip +import json +from pathlib import Path +import sys +sys.dont_write_bytecode = True +import native as N +import price + + +def run(): + N.authenticate() + source = N.read(N.ROOT / N.SOURCE) + candidate = N.construct(source) + c = candidate['canonical'] + before, after = {}, {} + for direction in ('forward', 'backward'): + back = direction == 'backward' + before[direction] = N.replay(c, source['programs'][direction], back, False) + after[direction] = N.replay(c, candidate['programs'][direction], back, back) + N.need(before[direction]['paid'] == N.OLD_PAID and before[direction]['helpers'] == N.OLD_HELPERS, 'Pinned source census') + N.need(after[direction]['paid'] == candidate['paid_profiles'][direction], 'Emitted direction-specific paid profile') + helpers = dict(N.OLD_HELPERS) + if back: helpers[9] -= 1 + N.need(after[direction]['paid'] == (N.NEW_PAID if back else N.OLD_PAID) and after[direction]['helpers'] == helpers, 'Actual complete changed native census') + identities = N.independent_source_identities(source) + phase = N.phase_inheritance(source, candidate) + controls = N.controls(c, candidate) + arithmetic = price.run(after) + data = (json.dumps(candidate, sort_keys=True, separators=(',', ':')) + '\n').encode() + result = N.encode({'status': 'PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION', + 'source_payload_sha256': N.PAYLOAD, 'word_payload_sha256': sha256(data).hexdigest(), + 'source_native': before, 'candidate_native': after, 'independent_source_identities': identities, + 'phase_inheritance': phase, 'native_negative_controls': controls, 'arithmetic': arithmetic, + 'scope': 'Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.'}) + return data, result + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--write', action='store_true', help='Write only this package word and result after all checks pass.') + ap.add_argument('--out', type=Path, help='Write a replay result to a separate path.') + args = ap.parse_args() + data, result = run() + if args.write: + (N.HERE / 'WORD.json.gz').write_bytes(gzip.compress(data, mtime=0)) + (N.HERE / 'RESULT.json').write_text(json.dumps(result, indent=2, sort_keys=True) + '\n', encoding='utf-8') + else: + N.need(gzip.decompress((N.HERE / 'WORD.json.gz').read_bytes()) == data, 'Exact literal published word') + N.need(N.read(N.HERE / 'RESULT.json') == result, 'Exact published replay result') + if args.out: + args.out.write_text(json.dumps(result, indent=2, sort_keys=True) + '\n', encoding='utf-8') + print(json.dumps({'status': result['status'], **{k: result['arithmetic'][k] for k in ('kappa', 'gain_over_PR4610', 'raw_root_interval', 'paid_calls', 'productive_fields')}}, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-rebuild/architecture/mixed_target_probe.py b/research/owned-relation-independent-validation/capsule/research/kappa-rebuild/architecture/mixed_target_probe.py new file mode 100644 index 0000000000..4fc05ab081 --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/kappa-rebuild/architecture/mixed_target_probe.py @@ -0,0 +1,291 @@ +#!/usr/bin/env python3 +"""Exact tariffs for productive helpers with heterogeneous target sizes. + +This is a conditional recursion-contract probe, not a new kappa claim. The +native helper adapters, main controller closure, scalar/precision charges, +and the mixed-target outer theorem remain separate obligations. + +Apache-2.0. Substantial OpenAI assistance. The original pruned native profile +and helper inventory come from the preserved kappa-function-composition work. +Mixed-target balance follows Jacob Alan Sussman's PR4268 proposal; this file +does not reprove or admit its all-size or integer-multiplication transfer. +The rational elementary-function enclosure follows the independently retained +productive_helper_forest.py recovery certificate, with fresh source identity. +""" +from collections import Counter +from fractions import Fraction as Q +from functools import lru_cache +from hashlib import sha256 +from pathlib import Path +import argparse +import json +import math +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +NATIVE = Counter({1:2453, 2:716, 3:224, 4:74, 5:48}) +HELPERS = Counter({5:28, 6:18, 7:56, 8:93, 9:213}) +OLD_PAIRS = [(56,9,7),(56,7,9),(18,9,6),(18,6,9), + (16,9,5),(16,5,9),(44,8,8)] +OLD_MIDDLE = [(93,8),(56,7),(18,6),(28,5),(29,0)] + +def need(ok, message): + if not ok: + raise AssertionError(message) + +@lru_cache(None) +def log_interval(r): + def odd_series(x): + z = (x-1)/(x+1) + n = 80 + low = 2*sum((z**(2*j+1)/(2*j+1) for j in range(n)), Q(0)) + high = low+2*z**(2*n+1)/((2*n+1)*(1-z*z)) + return low, high + exponent = r.bit_length()-1 + a,b = odd_series(Q(2)) + c,d = odd_series(Q(r,2**exponent)) + return exponent*a+c, exponent*b+d + +def exp_interval(x): + need(0 <= x < 1, 'Enclosure range') + term = total = Q(1) + n = 48 + for j in range(1,n+1): + term *= x/j + total += term + following = term*x/(n+1) + return total, total+following/(1-x/(n+2)) + +@lru_cache(None) +def h_interval(r,c): + if r in (0,1): + return Q(r),Q(r) + a,b = log_interval(r) + low,_ = exp_interval(c*a) + _,high = exp_interval(c*b) + return Q(r)/high,Q(r)/low + +def moment(profile,c): + low=high=Q(0) + for r,n in profile.items(): + a,b=h_interval(r,c) + low += n*(a if n >= 0 else b) + high += n*(b if n >= 0 else a) + return low,high + +def show(bounds): + scale=10**35 + low,high=bounds + a=low.numerator*scale//low.denominator + b=-((-high.numerator*scale)//high.denominator) + def fixed(n): + sign='-' if n<0 else '' + s=str(abs(n)).rjust(36,'0') + return sign+s[:-35]+'.'+s[-35:] + return {'lower':fixed(a),'upper':fixed(b)} + +def split_rank(r,maximum): + """Least concave tariff partition with positive integers <= maximum.""" + need(maximum>=1 and r>=0, 'Legal split') + q,remainder=divmod(r,maximum) + result=Counter() + if q: + result[maximum]+=q + if remainder: + result[remainder]+=1 + return result + +def split_profile(profile,maximum): + result=Counter() + for r,n in profile.items(): + for child,count in split_rank(r,maximum).items(): + result[child]+=n*count + return result + +def add_scaled(target,source,multiple=1): + for key,value in source.items(): + target[key]+=multiple*value + +def base_case(p,minimum,pairs=None,middle=None): + """Expand all role inventories; one fresh global field per unhosted role.""" + need(p in (1,2), 'Only reconstructed p1 and p2 schedules are in scope') + need(2<=minimum<=41, 'Finite minimum-target menu') + calls=2*p+1 + main_fields=224*p + main_rank=16*p+9 + inventories=[Counter(HELPERS) for _ in range(calls)] + paid=split_profile(NATIVE,minimum-1) + paid=Counter({r:calls*n for r,n in paid.items()}) + paid[1]+=8*calls # same-width H completion, never waived + targets=Counter({main_rank:main_fields}) + if p==1: + need(pairs is None and middle is None, 'p1 has no original idle bins') + else: + pairs=pairs if pairs is not None else [(224,0,0)] + middle=middle if middle is not None else [(224,0)] + need(sum(n for n,a,b in pairs)==224, 'Each pair window has 224 bins') + need(sum(n for n,a in middle)==224, 'Middle window has 224 bins') + for stages in [(0,1),(3,4)]: + for n,a,b in pairs: + need(a+b<=16 and a in (0,5,6,7,8,9) and b in (0,5,6,7,8,9), 'Pair capacities') + for stage,r in zip(stages,(a,b)): + if r: + inventories[stage][r]-=n + add_scaled(paid,split_rank(16-a-b,minimum-1),n) + for n,r in middle: + need(r in (0,5,6,7,8), 'Middle capacity') + if r: + inventories[2][r]-=n + add_scaled(paid,split_rank(8-r,minimum-1),n) + global_roles=Counter() + for inventory in inventories: + need(all(n>=0 for n in inventory.values()), 'No helper role used twice') + global_roles.update(inventory) + for r,n in global_roles.items(): + if not n: + continue + target=max(r,minimum) + targets[target]+=n + add_scaled(paid,split_rank(target-r,minimum-1),n) + paid=+paid + targets=+targets + need(max(paid)0] + # Middle bins are independent single slots; choose positive-gain roles first. + candidates=sorted(((sp(8)-sp(8-r)-value(r),r) for r in (5,6,7,8)),reverse=True) + middle=[] + left=224 + for gain,r in candidates: + if gain>1e-12: + n=min(HELPERS[r],left) + if n: + middle.append((n,r)) + left-=n + if left: + middle.append((left,0)) + return pairs,middle,{'status':int(out.status),'message':out.message,'not_an_exact_optimality_claim':True} + +def run(discover=False): + candidates=[] + for p in (1,2): + for minimum in range(2,26): + candidates.append(base_case(p,minimum)) + candidates.append(base_case(2,9,OLD_PAIRS,OLD_MIDDLE)) + discovery=[] + if discover: + for c in (.001745,.004): + for minimum in range(5,18): + pairs,middle,meta=discover_pair_patterns(minimum,c) + case=base_case(2,minimum,pairs,middle) + case['discovery_target']=str(c) + case['solver']=meta + discovery.append(case) + candidates.extend(discovery) + best={} + for p in (1,2): + for text in ('0.001745','0.004'): + c=Q(text) + rows=[case for case in candidates if case['p']==p] + ranked=sorted(rows,key=lambda case:-numerical_value(case['signed'],float(c))) + winner=ranked[0] + # Certify that this displayed winner beats all numerically distinct + # profiles in the finite scanned menu, not all possible schedules. + win=moment(winner['signed'],c) + for case in ranked[1:]: + if dict(case['signed'])!=dict(winner['signed']): + need(win[0]>moment(case['signed'],c)[1], 'Exact finite-menu ordering') + best[f'p{p}_{text}']=serialize_case(winner) + controls={} + wrong=base_case(1,6) + wrong['targets'][6]+=1 + controls['unearned_output_credit_rejected']=(sum(r*n for r,n in wrong['targets'].items())-wrong['rank_bill']!=wrong['rank_margin']) + controls['rank5_child_with_job5_rejected']=not(5<5) + need(all(controls.values()), 'Corruption controls') + return {'schema':'productive-helper-mixed-target-tariff/1', + 'status':'PASS_CONDITIONAL_EXACT_ACCOUNTING', + 'source_sha256':sha256(Path(__file__).read_bytes()).hexdigest(), + 'native_profile':dict(NATIVE),'helper_inventory':dict(HELPERS), + 'assumed_recursive_rule':'sum_paid n_r r^(1-C) < sum_targets W_k k^(1-C); max_paid_rank < min_target_rank', + 'best_in_finite_menu':best, + 'fixed_p2_minimum9':serialize_case(base_case(2,9,OLD_PAIRS,OLD_MIDDLE)), + 'discovery_candidates':[serialize_case(c) for c in discovery], + 'controls':controls, + 'not_proved':['native whole-helper adapters and arbitrary-input block diagonal contract', + 'correct main controller and all its heads/caches/cleanup', + 'literal eligibility of any displayed head-cut grant', + 'mixed-target all-size recursion in this native model', + 'finite-precision integer-multiplication transfer and scalar/stock costs'], + 'new_kappa':False} + +def main(): + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('--discover',action='store_true') + parser.add_argument('--output',type=Path,default=HERE/'MIXED-TARGET-PROBE.json') + args=parser.parse_args() + result=run(args.discover) + args.output.write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + print(json.dumps({'status':result['status'],'best':{k:v['targets_at_C'][k.split('_',1)[1]]['after_native_completion_before_main_closure'] for k,v in result['best_in_finite_menu'].items()}},sort_keys=True)) + +if __name__=='__main__': + main() diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-rebuild/complex/native_extensions.py b/research/owned-relation-independent-validation/capsule/research/kappa-rebuild/complex/native_extensions.py new file mode 100644 index 0000000000..7f84894efc --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/kappa-rebuild/complex/native_extensions.py @@ -0,0 +1,233 @@ +#!/usr/bin/env python3 +"""Native embedded query logger and common-frame H conjugation contacts. + +Apache-2.0. Substantial OpenAI assistance. These are fresh constructions with +explicit arbitrary-input endpoints. An embedded cache output is not claimed +as an independent clean helper output until a whole caller erases its defect. +""" +from collections import Counter +from fractions import Fraction as Q +from pathlib import Path +import argparse +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) +import rebuild_native as N +import power_two_balance as B + +B_SHA = '76929bb3887911ccf100c4593574b8a1c82ee64e96f939a8aca196869438b424' + + +def common_frame_h(geo, offset, frame): + """H = diag(I,-I) S_L S_-K S_L, with all shear ADDs having coefficient ±1. + + Balancing only the eight selected coordinates avoids scaling104 ordinary + coordinates. No private field and no recursive transport are introduced. + Precondition: ALL112 physical fields share the stated actual frame gauge. + """ + A = geo['selected'] + out = [['phase', 'fresh_common_frame_H']] + def scale(n, d): + out.extend(N.scalar(['scale', ['L', offset+a], n, d], frame) for a in A) + def left(): + for k, a in enumerate(A): + for u, value in sorted(geo['L'][k].items()): + coefficient = 2*value + N.need(abs(coefficient) == 1, 'Balanced unit L coefficients') + out.append(N.scalar(['add', ['L', offset+a], ['L', offset+u], int(coefficient), 1], frame)) + scale(2, 1); left(); scale(1, 4) + for k, a in enumerate(A): + for u, value in sorted(geo['L'][k].items()): + coefficient = -2*value + out.append(N.scalar(['add', ['L', offset+u], ['L', offset+a], int(coefficient), 1], frame)) + scale(4, 1); left(); scale(-1, 2) + N.need(B.scalar_sum(out) == 10096, 'Exact common-frame H scalar allowance') + return out + + +def embedded_cache_roles(canonical): + roles = [i for i in range(224, 632) if canonical['start'][i] == 0 and canonical['final'][i] == 1] + N.need(len(roles) == 213, '213 genuinely cold, full-ended native helper roles') + return roles[:8] + + +def embedded_logger_suffix(canonical, geo, roles=None): + roles = embedded_cache_roles(canonical) if roles is None else list(roles) + N.need(len(roles) == len(set(roles)) == 8, 'Eight distinct embedded caches') + N.need(all(224 <= i < 632 and canonical['start'][i] == 0 and canonical['final'][i] == 1 for i in roles), + 'Embedded logger only uses cold full-ended physical helper references') + out = [['phase', 'fresh_embedded_dirty_logger']] + for k, a in enumerate(geo['selected']): + r = roles[k] + out += [N.scalar(['scale', ['L', r], 2, 1], 1), + N.scalar(['add', ['L', r], ['L', a], 2, 1], 1)] + out += [N.scalar(['add', ['L', r], ['L', u], int(2*q), 1], 1) + for u, q in sorted(geo['L'][k].items())] + out.append(N.scalar(['scale', ['L', r], 1, 2], 1)) + N.need(B.scalar_sum(out) == 3440, 'Embedded logger exact scalar bill') + return out + + +def make_embedded_logger(canonical, base_word, geo): + word = B.make_balanced_h(canonical, base_word, geo)['forward'] + return word+embedded_logger_suffix(canonical, geo) + + +def make_wrapped_h(canonical, base_word, geo): + words = B.make_balanced_h(canonical, base_word, geo) + return {direction: common_frame_h(geo, 112, 0)+word+common_frame_h(geo, 0, 1) + for direction, word in words.items()} + + +def literal_replay(v, c, program, backward=False): + """Second literal evaluator for new endpoints; all632 inputs arbitrary. + + This checker has no endpoint-specific shortcut. It applies every scalar + and free-warp event and checks each contact's frame before comparing rows. + """ + rows = {('L', i): v.identity(('L', i)) for i in range(632)} + rows['C', 0] = v.identity(('C', 0)) + current = {('L', i): f for i, f in enumerate(c['start'])}; current['C', 0] = None + spaces = [v.span(frame) for frame in c['frames']] + profile = Counter(); cost = 0; max_l1 = Q(1); witness = None; max_denominator = 1 + for j, event in enumerate(program): + kind = event[0]; touched = None + if kind == 'scalar': + g, frame = event[1:]; target = tuple(g[1]); touched = target + cost += N.primitive_allowance(g) + if g[0] == 'clear': + N.need(target == ('C', 0), 'Only owned C0 can be cleared') + rows[target] = {}; current[target] = frame + else: + N.need(current[target] == frame, 'Exact scalar target frame') + if g[0] in ('add', 'copy'): + source = tuple(g[2]); N.need(current[source] == frame, 'Exact scalar source frame') + if g[0] == 'copy': + N.need(target == ('C', 0), 'Only owned field overwritten by copy') + rows[target] = dict(rows[source]) + else: + N.need(target != source, 'Distinct reversible ADD arguments') + v.add(rows[target], rows[source], Q(g[3], g[4])) + else: + N.need(g[0] == 'scale', 'Known scalar action') + q = Q(g[2], g[3]); rows[target] = {i: q*x for i, x in rows[target].items()} + elif kind == 'warp': + _, r, op, old, new = event; target = tuple(r); touched = target + N.need(current[target] == old, 'Warp input frame') + rows[target] = v.warp(rows[target], op, backward); current[target] = new + elif kind in ('climb', 'center'): + if kind == 'climb': + _, part, i, old, new, rank = event; target = ('L', i) + N.need(spaces[old] < spaces[new], 'Ascending borrowed climb') + else: + _, i, old, new, rank = event; target = ('C', i) + N.need(spaces[old] < spaces[new] or spaces[new] < spaces[old], 'Nested center transport') + N.need(current[target] == old and rank == abs(len(c['frames'][new])-len(c['frames'][old])), 'Paid rank and source frame') + current[target] = new; profile[rank] += 1 + else: + N.need(kind in ('phase', 'adapter', 'residual_adapter'), 'Known inert native marker') + if touched is not None: + norm = sum(map(abs, rows[touched].values()), Q(0)) + if norm > max_l1: + max_l1 = norm; witness = dict(event=j, role=list(touched)) + max_denominator = max(max_denominator, max((x.denominator for x in rows[touched].values()), default=1)) + N.need([current['L', i] for i in range(632)] == c['final'], 'Final native frames') + N.need(not rows['C', 0], 'Owned C0 cleared at return') + return rows, dict(independent_persistent_columns=632, independent_owned_entry_columns=1, + scalar_frames_checked=True, arbitrary_owned_C0_cleared=True, + paid_profile=dict(sorted(profile.items())), paid_rank_mass=sum(k*x for k, x in profile.items()), + real_scalar_allowance=cost, max_formal_prefix_l1=str(max_l1), max_denominator=max_denominator, + l1_witness=witness) + + +def check_rows(v, rows, geo, kind, backward=False, cache_roles=()): + mismatch = [] + for r in range(632): + actual = rows['L', r] + if kind == 'wrapped' and r < 224: + port = r % 112; wanted = {} + for j, q in geo['H'][port].items(): + v.add(wanted, v.identity(('L', (112 if r >= 112 else 0)+j)), q) + if backward and r < 112: + v.add(wanted, v.identity(('L', 112+j)), -q) + if not backward and r >= 112: + v.add(wanted, v.identity(('L', j)), q) + else: + wanted = v.identity(('L', r)) + if 112 <= r < 224: + for j, q in geo['H'][r-112].items(): + v.add(wanted, v.identity(('L', j)), q) + if r in cache_roles: + k = list(cache_roles).index(r) + for j, q in {geo['selected'][k]: Q(1), **geo['L'][k]}.items(): + v.add(wanted, v.identity(('L', j)), q) + if actual != wanted: + mismatch.append(r) + N.need(not mismatch, 'Fresh exact endpoint mismatch '+repr(mismatch[:5])) + + +def check_scalar_h(v, geo): + """Independent112-column execution without native body or Clifford data.""" + rows = {i: {i: Q(1)} for i in range(112)} + program = common_frame_h(geo, 0, 0) + for event in program: + if event[0] != 'scalar': + continue + g = event[1]; target = g[1][1] + if g[0] == 'scale': + q = Q(g[2], g[3]); rows[target] = {i: q*x for i, x in rows[target].items()} + else: + v.add(rows[target], rows[g[2][1]], Q(g[3], g[4])) + N.need(all(rows[i] == geo['H'][i] for i in range(112)), 'Three balanced shears exactly equal H') + return dict(all_columns=112, real_scalar_allowance=B.scalar_sum(program), + additions=sum(e[0] == 'scalar' and e[1][0] == 'add' for e in program), + unit_add_coefficients=True, owned_fields=0, new_recursive_children=0, + required_physical_precondition='All112 fields occupy one actual common frame reference.') + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--out', type=Path, default=HERE/'extension-certificates') + args = ap.parse_args(); args.out.mkdir(parents=True, exist_ok=True) + N.need(N.digest(HERE/'rebuild_native.py') == B.N_SHA and N.digest(HERE/'power_two_balance.py') == B_SHA, + 'Authenticated fresh prerequisite sources') + p, v, ce, receipt, inherited = N.authenticated(); geo = N.geometry(v.PACKET) + result = dict(schema='fresh-native-helper-log-and-common-frame-conjugation/1', + source_sha256=N.digest(Path(__file__)), reconstruction_source_sha256=B.N_SHA, + balance_source_sha256=B_SHA, scalar_H=check_scalar_h(v, geo), providers={}, no_new_kappa_claimed=True) + for tag in N.TAGS: + c = N.read(N.BASE/(tag+'-CANONICAL.json.gz')); word = N.read(N.BASE/(tag+'-NATIVE-WORD.json.gz')) + base_scalar = B.scalar_sum(word['forward']) + roles = embedded_cache_roles(c); embedded = make_embedded_logger(c, word, geo) + rows, embedded_check = literal_replay(v, c, embedded) + check_rows(v, rows, geo, 'embedded', cache_roles=roles) + N.need(embedded_check['real_scalar_allowance'] == base_scalar+3504+3440, 'Embedded complete scalar invoice') + wrapped = make_wrapped_h(c, word, geo); wrapped_checks = {} + for direction, program in wrapped.items(): + back = direction == 'backward' + rows, checked = literal_replay(v, c, program, back) + check_rows(v, rows, geo, 'wrapped', back) + N.need(checked['real_scalar_allowance'] == base_scalar+3504+2*10096, 'Wrapped H complete scalar invoice') + wrapped_checks[direction] = checked + ep = args.out/(tag+'-EMBEDDED-LOGGER.json.gz'); wp = args.out/(tag+'-SCALAR-WRAPPED-H.json.gz') + result['providers'][tag] = dict( + embedded_logger=dict(artifact=ep.name, sha256=N.save(ep, embedded), check=embedded_check, + cache_roles=roles, exactly_400_other_helpers_restored=True, + cache_output='d_k + X_A[k] + L[k] X_U', extra_children=0, + extra_persistent_fields=0, extra_owned_fields=0, extra_scalar_allowance=3440, + independent_clean_output_credit_for_eight_caches=False), + scalar_wrapped_H=dict(artifact=wp.name, sha256=N.save(wp, wrapped), checks=wrapped_checks, + endpoint='diag(H,H) times the corresponding identity shear in local logical coordinates', + new_recursive_children_beyond_H=0, extra_scalar_allowance=20192, + all_408_helpers_restored=True, + outer_intercall_frame_identification_certified=False)) + N.save(args.out/'RESULT.json', result) + print('PASS extensions', tag, 'embedded0 extra children; wrapped H20192 extra scalars', flush=True) + result['status'] = 'PASS_LOCAL_NATIVE_ENDPOINTS_WITH_EXPLICIT_OUTER_FRAME_OBLIGATION' + N.save(args.out/'RESULT.json', result) + + +if __name__ == '__main__': + main() diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz b/research/owned-relation-independent-validation/capsule/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..46d929df83817b85a5387bcdb9745e0627d6366e GIT binary patch literal 207673 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%0An&u`Csb3RV8)-*z=ghBCmu|` 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%0A}m#BC$*!P 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

2VZSP}KItK@?5y|8|LhfHIf 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

$ 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 F3IM0wtBe2u literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/capsule/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json b/research/owned-relation-independent-validation/capsule/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json new file mode 100644 index 0000000000..0fdb65f946 --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json @@ -0,0 +1,241 @@ +{ + "compiler": { + "H": 38569300000000000, + "N": "2^38569300000000000", + "eta": { + "lower": "0.000000204535199106284215364833", + "upper": "0.000000204535199106284215364834" + }, + "gap": "1/700000000000", + "integer_test_exponent": 55099, + "logarithm_power": 1000, + "theta": "63/64", + "uniform_saving": "1057621533/350000000000", + "word_materialized": false + }, + "gain_over_PR4535": "4027/2500000000", + "kappa": "15108879/5000000000", + "local_helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "local_paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "margin_at_old_root_upper": [ + "78072058023577019965454984044224523228758899702419408235/196159429230833773869868419475239575503198607639501078528", + "1249152928377232319447279744707592371660142395238823308861/3138550867693340381917894711603833208051177722232017256448" + ], + "native_receipt_sha256": "eec3b14241430b6c9f5de3cbf0e3d45a172d8071d2dccd2b59d56a1fbac3d428", + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "nonrecursive": { + "local_routes": 4802000, + "local_scalar": 158168, + "raw_scalar_upper": 181098496 + }, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999999253/175000000000000", + "fixed_halo_explicit_metadata_branch": "13475000000001/175000000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899999997009/700000000000000", + "new_semantic_group_guard": "3/700000000000" + }, + "margins": { + "boundary_algebraic_matrix": "1480670144797884756937/490000000000000000000000", + "fused_gaussian": "1480670144793654270811/490000000000000000000000", + "global_coordinate_router": "264405383/87500000000", + "group_bit_router": "185083768186706783851/61250000000000000000000", + "group_scans": "349999999999/350000000000", + "main_transform": "1480670144097884756937/490000000000000000000000", + "microbox_face_corrections": "13475000000001/175000000000", + "polynomial_products": "699999999999/700000000000", + "sparse_union_movement": "200543170144797884756937/490000000000000000000000" + }, + "parameters": { + "a": "264405383/87500000000", + "b": "423048613/140000000000", + "beta": "699999999997/700000000000", + "bit_saving": "17/5000", + "cap_xi": "445543170144097884756937/490000000000000000000000", + "complex_uniform_saving": "1057621533/350000000000", + "d": "1/700000000000", + "epsilon": "699999999999/700000000000", + "kappa": "15108879/5000000000", + "lambda_": "199395644839/200000000000", + "lambda_prime": "697884756937/700000000000", + "layout": "1/700000000000", + "q": "2115243063/700000000000", + "r0": "1/7000000000000", + "stop": "1/700000000000", + "tested_saving": "302177581/100000000000" + }, + "strict_checks": { + "actual_bit_above_effective": "33094617/87500000000", + "actual_logarithmic_gamma_guard": "1/700000000000", + "actual_logarithmic_group_guard": "44456829856952115243063/245000000000000000000000", + "alpha_logarithm_absorption": "1/7000000000000", + "boundary_algebraic_matrix_above_kappa": "2797884756937/490000000000000000000000", + "cap_above_band": "200543170144097884756937/490000000000000000000000", + "cap_below_cell": "44456829855202115243063/490000000000000000000000", + "cap_below_phase_cell_power": "534456829855902115243063/490000000000000000000000", + "complex_above_effective": "1/700000000000", + "complex_below_one_over_32": "3951951387/140000000000", + "complex_endpoint": "1/350000000000", + "epsilon_below_one": "1/700000000000", + "epsilon_positive": "699999999999/700000000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "2793654270811/490000000000000000000000", + "gaussian_above_main": "347884756937/245000000000000000000000", + "global_coordinate_router_above_kappa": "1/175000000000", + "global_gamma_power_slack": "9/7000000000000", + "group_below_dimension": "1/350000000000", + "group_bit_router_above_kappa": "436706783851/61250000000000000000000", + "group_gauge_power_slack": "44456829856917115243063/245000000000000000000000", + "group_key_fits_record": "1/350000000000", + "group_positive": "699999999997/700000000000", + "group_scans_above_kappa": "348942378469/350000000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "645402690400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000000", + "lambda_above_sigma": "3/1400000000000", + "lambda_above_tau": "1/1400000000000", + "lambda_prime_above_lambda": "1/1400000000000", + "lambda_prime_above_leaf": "279576951387/98000000000000000000000", + "leaf_saving_above_effective": "139576951387/98000000000000000000000", + "main_transform_above_kappa": "2097884756937/490000000000000000000000", + "membership_arithmetic_fits_record": "1/700000000000", + "microbox_face_corrections_above_kappa": "3368617797309/43750000000", + "microbox_halo_volume": "55300000000003/700000000000", + "new_complex_uniform_saving_above_b": "1/700000000000", + "new_semantic_guard_with_C1_one": "1/700000000000", + "polynomial_products_above_kappa": "697884756939/700000000000", + "positive_layout_slack": "1/700000000000", + "q_below_effective": "1/700000000000", + "q_below_internal": "1/700000000000", + "q_below_leaf": "279576951387/98000000000000000000000", + "q_positive": "2115243063/700000000000", + "short_record_fallback": "139576951387/140000000000", + "source_axis_superpolynomial": "1/700000000000", + "sparse_union_movement_above_kappa": "199062500002797884756937/490000000000000000000000", + "stop_below_one": "699999999999/700000000000", + "stop_positive": "1/700000000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000000", + "union_tag_work_per_visit_fits_record": "3/700000000000" + } + }, + "paid": { + "1": 41298, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 144 + }, + "paid_calls": 64404, + "productive_fields": 10928, + "rank_mass_surplus": 752, + "raw_root_interval": [ + "302177587077/100000000000000", + "151088793539/50000000000000" + ], + "scope": "Exact changed-profile arithmetic only. Requires separately admitted changed native programs, paid transports and absolute phases. Retained compiler/native/precision/tape/analytic/recovery assumptions.", + "source_sha256": { + "research/fresh-helper-boundary/native.py": "9b55a2d3c3972148fae9d112e745d9244968166bd89bd900c938f429fc76ab29", + "research/higher-moment-strictification/verify.py": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "research/joint-helper-lattice/CONTROLLER.json": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "research/joint-helper-lattice/native_joint.py": "50869b1bcad7493e6b4cb2a4cd5d2fd9a193a5921100483fa2c3f2c999ddfd46", + "research/joint-helper-lattice/verify.py": "8eb13f77a94315f811612cb557a17edeecb6b9d9a75dfa238b112dd6520c336f", + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py": "8a0de761642d21919e969475c3f13e5d01a4bae7343c1e1f37c586d94b676a85", + "research/kappa-rebuild/architecture/mixed_target_probe.py": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "research/kappa-rebuild/bit/complex_controller_factor.py": "1de9aaf918e6a4f2f5448754c1f3c3da3b85e6257849ebd097af09859c4e5497", + "research/kappa-rebuild/bit/mixed_productive_bit.py": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e", + "research/kappa-round6-compiler-tightening-20261022/arithmetic.py": "960864e5427a1ca2c319a7b2dee292b6fe50bd5964830031e611591af10dac38", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "research/query-thinned-controllers/RESULT.json": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "research/query-thinned-controllers/controller.py": "8b462d660487b1be4940357c4c7522967b1bfaede3c02b1c66109b85acae0fd2" + }, + "status": "PASS_CHANGED_PROFILE_ARITHMETIC_NATIVE_ADMISSION_SEPARATE", + "strictification": { + "alpha": { + "lower": "0.999999999936687383304469699479", + "upper": "0.999999999936687383304469699480" + }, + "cutoff": 20, + "delta": { + "lower": "0.958285308639504859158849914083", + "upper": "0.958285308639504859158849914084" + }, + "floor": 21, + "gamma": { + "lower": "0.956217509753795293454516855483", + "upper": "0.956217509753795293454516855484" + }, + "normalized_paid_upper": "104857600097656251/104857601073741824", + "power": 1024, + "tail_offset": "1/5", + "tested": "302177581/100000000000" + }, + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5868 + } +} diff --git a/research/owned-relation-independent-validation/capsule/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py b/research/owned-relation-independent-validation/capsule/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py new file mode 100644 index 0000000000..340e1f0ffb --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py @@ -0,0 +1,240 @@ +#!/usr/bin/env python3 +"""Exact endpoint refill conditional on the source PR4359 construction. + +Apache-2.0. Substantial OpenAI assistance. The mixed inventory and elementary +function enclosure are zxv's PR4359; mixed-target flow is Jacob Alan Sussman's +Theorem 1G. Outer formulas retain the attribution in PR4359 outer_parameters.py. +This file checks arithmetic, not the native or all-size proof hypotheses. +""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import argparse +import gzip +import importlib.util +import json +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +PREFIX = Path('research/kappa-rebuild') +OLD_BASELINE = Q('0.001730970419199163702738') +KAPPA = Q('0.00230509') +TESTED = Q('0.00230509019') +ROOT_UPPER = Q('0.002306') + + +def need(value, message): + if not value: + raise AssertionError(message) + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == '.gz' else raw) + + +def ceil(value): + value = Q(value) + return -((-value.numerator) // value.denominator) + + +def encode(value): + if isinstance(value, Q): + return str(value) + if isinstance(value, dict): + return {str(k): encode(v) for k, v in value.items()} + if isinstance(value, (tuple, list)): + return [encode(v) for v in value] + return value + + +def family(kappa, tested): + """One explicit slack family approaching the same source mixed root.""" + need(Q(0) < kappa < tested < ROOT_UPPER, 'Positive strictly ordered savings') + d = (tested-kappa)/7 + return {'kappa': kappa, 'tested_saving': tested, + 'complex_uniform_saving': kappa+6*d, + 'b': kappa+5*d, 'a': kappa+4*d, 'q': kappa+3*d, + 'bit_saving': Q('0.0027'), 'epsilon': 1-d, 'beta': 1-3*d, + 'r0': d/10, 'stop': d, 'layout': d, 'd': d} + + +def ledger(p): + """Recompute all 54 named PR4359 checks with freely supplied parameters.""" + kappa, b, a, q = (p[key] for key in ('kappa', 'b', 'a', 'q')) + epsilon, beta, r0, stop, layout = (p[key] for key in + ('epsilon', 'beta', 'r0', 'stop', 'layout')) + sigma, tau = 1-b, 1-a + internal = tau+(1-stop)*max(sigma-tau, Q(0)) + leaf = sigma+stop*(1-sigma) + lam, c = 1-(q+a)/2, Q(3, 32) + xi, key = epsilon*(1+q)-c+layout, beta+1-epsilon + margins = { + 'main_transform': epsilon*q, + 'global_coordinate_router': a, + 'fused_gaussian': 1-epsilon+q*beta, + 'group_bit_router': 1-epsilon+a*beta, + 'group_scans': 1-epsilon+beta, + 'boundary_algebraic_matrix': c+xi-epsilon, + 'sparse_union_movement': xi+Q(1, 2)-epsilon, + 'polynomial_products': epsilon, + 'microbox_face_corrections': 1-(epsilon+beta+48-128+2), + } + checks = { + 'actual_bit_above_effective': p['bit_saving']-a, + 'complex_above_effective': b-a, + 'q_positive': q, 'complex_endpoint': b-q, 'q_below_effective': a-q, + 'stop_positive': stop, 'stop_below_one': 1-stop, + 'leaf_saving_above_effective': (1-stop)*b-a, + 'q_below_internal': 1-internal-q, 'q_below_leaf': 1-leaf-q, + 'lambda_above_tau': lam-tau, 'lambda_above_sigma': lam-sigma, + 'lambda_above_internal': lam-internal, + 'lambda_prime_above_lambda': 1-q-lam, + 'lambda_prime_above_leaf': 1-q-leaf, + 'epsilon_positive': epsilon, 'epsilon_below_one': 1-epsilon, + 'cap_above_band': xi-Q(1, 2), 'cap_below_cell': epsilon-xi, + 'group_positive': beta, 'group_below_dimension': epsilon-beta, + 'support_router_span': 1-beta, + 'group_gauge_power_slack': 1-(2*xi-2)-r0-beta, + 'actual_logarithmic_group_guard': 1-(2*xi-2)-beta, + 'global_gamma_power_slack': 1-epsilon-r0, + 'actual_logarithmic_gamma_guard': 1-epsilon, + 'alpha_logarithm_absorption': r0, + 'group_key_fits_record': 1-key, + 'membership_arithmetic_fits_record': 1-beta-2*(1-epsilon), + 'microbox_halo_volume': 128-48-beta, + 'positive_layout_slack': layout, + 'short_record_fallback': epsilon-a, + 'complex_below_one_over_32': Q(1, 32)-b, + 'strassen_integer_power_gap': Q(2**45-7**16), + 'theta_positive_polynomial_power': Q(2), + 'cap_below_phase_cell_power': 2-xi, + 'halo_covers_generic_inverse_radius': Q(48-43), + 'union_tag_work_per_visit_fits_record': 1-beta, + 'union_header_fits_record': 1-beta, + 'source_axis_superpolynomial': 1-epsilon, + 'gaussian_above_main': margins['fused_gaussian']-margins['main_transform'], + 'new_complex_uniform_saving_above_b': p['complex_uniform_saving']-b, + 'improvement_over_user_baseline': kappa-OLD_BASELINE, + 'new_semantic_guard_with_C1_one': 1-epsilon, + 'fine_prime_halo_umbrella': 10-(2*2+2+Q(1, 2)), + } + checks.update({name+'_above_kappa': value-kappa for name, value in margins.items()}) + # These are the additional functional conditions in the independent + # PR4359 outer_transfer_audit.py, beyond the 54-row parameter ledger. + functional = { + 'new_semantic_group_guard': 1-beta, + 'new_BIT_row_stock_sublinear_in_active_group': beta*(1-Q(3, 1000)), + 'fixed_halo_explicit_metadata_branch': 128-48-epsilon-beta-1, + } + return {'parameters': dict(p, cap_xi=xi, lambda_=lam, lambda_prime=1-q), + 'margins': margins, 'strict_checks': checks, 'functional_checks': functional} + + +def compiler_rank(E, targets, paid, tested, uniform): + """The original sufficient bound, re-instantiated for the new exponent.""" + m, kmin, rmax = max(targets), min(targets), max(paid) + need((m, kmin, rmax) == (57, 6, 5), 'Pinned complex separation') + t, z = 1-tested, 1-uniform + z0, h = (t+z)/2, Q(1, 10) + delta = z0-t + need(0 < t < z0 < z < 1, 'Compiler exponent order') + need(5**10 < 6**9 and 57 < 2**10, 'Exact source rank bounds') + need(z0 > Q(1, 2) and (1-z0)*E.log_interval(m)[1] < E.log_interval(2)[0], + 'Original eta strictly exceeds 1/4') + H0 = ceil((3+4*delta)/(h*delta)) + ratio = H0*(1-z0)/(z-z0) + H1 = ratio.numerator//ratio.denominator+1 + need(H0 >= m.bit_length() and H0*h*delta >= 3+4*delta, 'Induction starts') + need(H1*(z-z0) > H0*(1-z0), 'Strict winning uniform rank') + need((H0-1)*h*delta < 3+4*delta, 'Reject one lower threshold exponent') + need((H1-1)*(z-z0) <= H0*(1-z0), 'Reject one lower final exponent') + return {'t': t, 'z0': z0, 'z': z, 'theta_upper': Q(9, 10), + 'H0': H0, 'H1': H1, 'N_encoding': '2^H1', + 'strict_final_gap': H1*(z-z0)-H0*(1-z0), + 'winning_word_materialized': False, + 'bound': 'Original sufficient inequality; a sharper bound is separate.'} + + +def run(source_root): + base = source_root/PREFIX + interval_path = base/'architecture/mixed_target_probe.py' + spec = importlib.util.spec_from_file_location('pr4359_moment', interval_path) + E = importlib.util.module_from_spec(spec) + spec.loader.exec_module(E) + cover = read(base/'controller/P3-NATIVE-COVER.json.gz')['cover'] + targets = {int(k): int(v) for k, v in cover['targets'].items()} + paid = {int(k): int(v) for k, v in cover['paid'].items()} + need(targets == {6: 192, 7: 56, 8: 93, 9: 1229, 25: 448, 57: 224}, + 'Exact source productive inventory') + need(paid == {1: 17623, 2: 5065, 3: 1738, 4: 714, 5: 254}, + 'Exact source paid inventory') + signed = Counter(targets) + signed.subtract(paid) + need(sum(k*v for k, v in signed.items()) == 224, 'Rank-one surplus') + bracket = {'lower': E.moment(signed, TESTED), 'upper': E.moment(signed, ROOT_UPPER)} + need(bracket['lower'][0] > 0 and bracket['upper'][1] < 0, + 'Strict mixed test and upper root bound') + + original = read(base/'controller/OUTER-PARAMETERS.json')['outer'] + old = ledger({'kappa': Q('0.0023'), 'complex_uniform_saving': Q('0.002304'), + 'b': Q('0.002303'), 'a': Q('0.0023025'), 'q': Q('0.002302'), + 'bit_saving': Q('0.0027'), 'epsilon': Q('0.99999'), + 'beta': Q('0.99997'), 'r0': Q(1, 10**6), + 'stop': Q(1, 10**8), 'layout': Q(1, 10**6)}) + for group in ('margins', 'strict_checks'): + frozen = {key: Q(value['rational']) for key, value in original[group].items()} + need(old[group] == frozen, 'Exact reproduction of every old '+group) + p = family(KAPPA, TESTED) + result = ledger(p) + need(all(v > 0 for v in result['strict_checks'].values()), 'All 54 new outer predicates') + need(all(v > 0 for v in result['functional_checks'].values()), 'Additional functional predicates') + need(min(result['margins'].values()) == result['margins']['main_transform'], + 'Main transform remains limiting') + need(result['parameters']['cap_xi'] == Q(29, 32)+(1-p['d'])*p['q'], + 'Cofinal cap simplification') + controls = {} + for label, updates in [('closed_epsilon_gap', {'epsilon': Q(1)}), + ('missing_layout', {'layout': Q(0)}), + ('unfunded_kappa', {'kappa': Q('0.002306')}), + ('BIT_below_effective', {'bit_saving': OLD_BASELINE}), + ('no_complex_slack', {'complex_uniform_saving': p['b']})]: + tested = ledger(dict(p, **updates)) + failures = {k: v for k, v in tested['strict_checks'].items() if v <= 0} + need(failures, 'Mutation rejected: '+label) + controls[label] = failures + need(E.moment(signed, Q('0.004'))[1] < 0, 'Unsupported mixed target is rejected') + inputs = [interval_path, base/'controller/P3-NATIVE-COVER.json.gz', + base/'controller/OUTER-PARAMETERS.json'] + return encode({'schema': 'pr4359-cofinal-outer-refill/1', + 'status': 'PASS_EXACT_CONDITIONAL_ENDPOINT_REFILL', + 'kappa': KAPPA, 'gain_over_PR4359': KAPPA-Q('0.0023'), + 'unchanged_paid': paid, 'unchanged_targets': targets, + 'mixed_test_saving': TESTED, 'mixed_test_margin': E.show(bracket['lower']), + 'root_upper_test': ROOT_UPPER, 'root_upper_margin': E.show(bracket['upper']), + 'old_ledger_crosscheck': {'matched_savings': len(old['margins']), + 'matched_checks': len(old['strict_checks'])}, + 'outer': result, 'limiting_margin': min(result['margins'].values())-KAPPA, + 'compiler': compiler_rank(E, targets, paid, TESTED, p['complex_uniform_saving']), + 'negative_controls': controls, + 'source_sha256': {str(p.relative_to(source_root)): sha256(p.read_bytes()).hexdigest() + for p in inputs}, + 'scope': 'Conditional arithmetic and specified finite rank. The PR4359 native, compiler, cover, precision, fixed-tape and outer hypotheses remain premises; no full theorem or practical word is certified.'}) + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--source-root', type=Path, default=HERE/'source') + parser.add_argument('--out', type=Path) + args = parser.parse_args() + result = run(args.source_root) + if args.out: + args.out.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + print(json.dumps({key: result[key] for key in + ('status', 'kappa', 'gain_over_PR4359', 'limiting_margin', 'compiler')}, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/owned-relation-independent-validation/capsule/research/query-thinned-controllers/RESULT.json b/research/owned-relation-independent-validation/capsule/research/query-thinned-controllers/RESULT.json new file mode 100644 index 0000000000..e0695152c9 --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/research/query-thinned-controllers/RESULT.json @@ -0,0 +1,356 @@ +{ + "bit_invoice": { + "main": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 25479, + "14": 444, + "2": 24156, + "21": 444, + "28": 444, + "3": 1422, + "35": 444, + "4": 792, + "42": 444, + "49": 444, + "5": 1836, + "56": 444, + "6": 198, + "63": 222, + "7": 342 + }, + "paid_calls": 57555, + "productive_fields": 11454, + "rank_surplus": 753, + "raw_scalar_record_bound": 1000000000, + "targets": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222, + "8": 7902 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1665, + "whole_idle": { + "14": 444, + "21": 444, + "28": 444, + "35": 444, + "42": 444, + "49": 444, + "56": 444, + "63": 222 + } + }, + "bit_strictification": { + "alpha": { + "lower": "0.999995735238059506641600561767", + "upper": "0.999995735238059506641600561768" + }, + "compiler_H0": 3755884544, + "cutoff_base": 17, + "delta": { + "lower": "0.949707924144871179442776557218", + "upper": "0.949707924144871179442776557219" + }, + "gamma": { + "lower": "0.957429821066420278606254392110", + "upper": "0.957429821066420278606254392111" + }, + "normalized_surplus_lower": "68719461047/16845935476736", + "tail_exponent": "1/5", + "target_floor_base": 18, + "tensor_power": 1024, + "tested_saving": "173/50000", + "uniform_H1": 25986965159937, + "uniform_N": "2^25986965159937", + "uniform_saving": "3459/1000000", + "winning_word_materialized": false + }, + "complex_invoice": { + "main": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 448 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 49045, + "16": 448, + "2": 13547, + "24": 448, + "3": 4256, + "32": 448, + "4": 1938, + "40": 448, + "48": 448, + "5": 380, + "56": 448, + "64": 448, + "72": 448, + "8": 152 + }, + "paid_calls": 72902, + "productive_fields": 11560, + "rank_surplus": 800, + "raw_scalar_record_bound": 1000000000, + "targets": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "5": 532, + "57": 448, + "6": 342, + "65": 448, + "7": 1064, + "73": 448, + "8": 1767, + "9": 4047 + }, + "thick_calls": 19, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 34 + ], + "thin_queries": 1792, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 448 + } + }, + "complex_strictification": { + "alpha": { + "lower": "0.999999952117240859760145478345", + "upper": "0.999999952117240859760145478346" + }, + "compiler_H0": 75415467350, + "cutoff_base": 20, + "delta": { + "lower": "0.941649713484853845388929204840", + "upper": "0.941649713484853845388929204841" + }, + "gamma": { + "lower": "0.967466409565147920980822933859", + "upper": "0.967466409565147920980822933860" + }, + "normalized_surplus_lower": "8589700209/251666829934592", + "tail_exponent": "1/5", + "target_floor_base": 21, + "tensor_power": 1024, + "tested_saving": "29603/10000000", + "uniform_H1": 10418370291022217, + "uniform_N": "2^10418370291022217", + "uniform_saving": "103609/35000000", + "winning_word_materialized": false + }, + "kappa": "37/12500", + "minimum_outer_margin_minus_kappa": "629378373/4900000000000000", + "native": { + "binary_charts": 111, + "complex_contacts_and_inverses": 896, + "owned_stream_restored_zero": true, + "thin_paid_rank_per_port": 1, + "thin_productive_credit": 0 + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform_gap": [ + "new_complex_uniform_saving_above_b" + ], + "missing_layout": [ + "positive_layout_slack" + ], + "old_BIT_cap": [ + "actual_bit_above_effective" + ], + "unfunded_kappa": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "old_atom_rejected": true, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "17429997759/17500000000", + "fixed_halo_explicit_metadata_branch": "1347500003/17500000", + "new_BIT_row_stock_sublinear_in_active_group": "69789991027/70000000000", + "new_semantic_group_guard": "9/70000000" + }, + "margins": { + "boundary_algebraic_matrix": "14504839378373/4900000000000000", + "fused_gaussian": "14504838135119/4900000000000000", + "global_coordinate_router": "51803/17500000", + "group_bit_router": "3626262033773/1225000000000000", + "group_scans": "34999997/35000000", + "main_transform": "14504629378373/4900000000000000", + "microbox_face_corrections": "1347500003/17500000", + "polynomial_products": "69999997/70000000", + "sparse_union_movement": "2005129839378373/4900000000000000" + }, + "parameters": { + "a": "51803/17500000", + "b": "41443/14000000", + "beta": "69999991/70000000", + "bit_saving": "17/5000", + "cap_xi": "4455129629378373/4900000000000000", + "complex_uniform_saving": "103609/35000000", + "d": "3/70000000", + "epsilon": "69999997/70000000", + "kappa": "37/12500", + "lambda_": "19940797/20000000", + "lambda_prime": "69792791/70000000", + "layout": "3/70000000", + "q": "207209/70000000", + "r0": "3/700000000", + "stop": "3/70000000", + "tested_saving": "29603/10000000" + }, + "strict_checks": { + "actual_bit_above_effective": "7697/17500000", + "actual_logarithmic_gamma_guard": "3/70000000", + "actual_logarithmic_group_guard": "444870685621627/2450000000000000", + "alpha_logarithm_absorption": "3/700000000", + "boundary_algebraic_matrix_above_kappa": "839378373/4900000000000000", + "cap_above_band": "2005129629378373/4900000000000000", + "cap_below_cell": "444870160621627/4900000000000000", + "cap_below_phase_cell_power": "5344870370621627/4900000000000000", + "complex_above_effective": "3/70000000", + "complex_below_one_over_32": "396057/14000000", + "complex_endpoint": "3/35000000", + "epsilon_below_one": "3/70000000", + "epsilon_positive": "69999997/70000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "838135119/4900000000000000", + "gaussian_above_main": "104378373/2450000000000000", + "global_coordinate_router_above_kappa": "3/17500000", + "global_gamma_power_slack": "27/700000000", + "group_below_dimension": "3/35000000", + "group_bit_router_above_kappa": "262033773/1225000000000000", + "group_gauge_power_slack": "444870675121627/2450000000000000", + "group_key_fits_record": "3/35000000", + "group_positive": "69999991/70000000", + "group_scans_above_kappa": "34896397/35000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "614514790400418148631/500000000000000000000000", + "lambda_above_internal": "3/140000000", + "lambda_above_sigma": "9/140000000", + "lambda_above_tau": "3/140000000", + "lambda_prime_above_lambda": "3/140000000", + "lambda_prime_above_leaf": "83875671/980000000000000", + "leaf_saving_above_effective": "41875671/980000000000000", + "main_transform_above_kappa": "629378373/4900000000000000", + "membership_arithmetic_fits_record": "3/70000000", + "microbox_face_corrections_above_kappa": "1347448203/17500000", + "microbox_halo_volume": "5530000009/70000000", + "new_complex_uniform_saving_above_b": "3/70000000", + "new_semantic_guard_with_C1_one": "3/70000000", + "polynomial_products_above_kappa": "69792797/70000000", + "positive_layout_slack": "3/70000000", + "q_below_effective": "3/70000000", + "q_below_internal": "3/70000000", + "q_below_leaf": "83875671/980000000000000", + "q_positive": "207209/70000000", + "short_record_fallback": "13958557/14000000", + "source_axis_superpolynomial": "3/70000000", + "sparse_union_movement_above_kappa": "1990625839378373/4900000000000000", + "stop_below_one": "69999997/70000000", + "stop_positive": "3/70000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "9/70000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "9/70000000", + "union_tag_work_per_visit_fits_record": "9/70000000" + } + }, + "relative_gain_over_p7": "27353/268647", + "schema": "query-thinned-productive-controllers/1", + "scope": "Conditional native construction; all-column, erasure, whole-job matching, fixed-tape, precision, analytic, prime and exact-recovery premises retained. No unconditional theorem or selected promotion.", + "source_inputs_authenticated": 17, + "status": "PASS_CONDITIONAL_QUERY_THINNED_KAPPA_00296" +} diff --git a/research/owned-relation-independent-validation/capsule/scripts/check_research_commit.py b/research/owned-relation-independent-validation/capsule/scripts/check_research_commit.py new file mode 100644 index 0000000000..7ab20e1487 --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/scripts/check_research_commit.py @@ -0,0 +1,149 @@ +#!/usr/bin/env python3 +"""Compare package working bytes with a commit before publishing hash receipts. + +This is a byte-transport preflight, not a research verifier or CI-equivalence +claim. Prepared for ywz65 with OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import hashlib +import json +import os +import re +import subprocess +from contextlib import closing +from pathlib import Path + +from research_package import ( + canonical_relative_path, + git, + git_blobs, + git_source_env, + relative_file, + require, + source_pin, +) + +ROOT = Path(__file__).resolve().parents[1] +MAX_SOURCE_METADATA_BYTES = 16 * 1024 * 1024 +MAX_SOURCE_ROWS = 100000 +MAX_SOURCE_COMMITS = 256 + + +def history_git(root, *args): + env = git_source_env() + env['GIT_GRAFT_FILE'] = os.devnull + env.pop('GIT_SHALLOW_FILE', None) + return subprocess.run(['git', '--no-replace-objects', *args], cwd=root, env=env, + capture_output=True, check=False, timeout=30) + + +def publication_sources(root, package, commit): + """Read bounded, immutable metadata without local replacements or grafts.""" + spec = commit + ':' + package + '/SOURCES.json' + size = history_git(root, 'cat-file', '-s', spec) + require(size.returncode == 0 and size.stdout.strip().isdigit(), 'missing publication SOURCES.json') + require(int(size.stdout) <= MAX_SOURCE_METADATA_BYTES, 'source metadata byte limit exceeded') + payload = history_git(root, 'cat-file', 'blob', spec) + require(payload.returncode == 0 and len(payload.stdout) == int(size.stdout), + 'incomplete publication SOURCES.json') + return json.loads(payload.stdout) + + +def source_history(root, package, commit): + """Check committed pins against raw publication ancestry, not local refs. + + This is declared history availability, not full SOURCES.json validation + or discovery of imports, archive references or runtime dependencies. + """ + sources = publication_sources(root, package, commit) + require(isinstance(sources, dict), 'SOURCES.json must be an object') + base = sources.get('base_commit') + require(isinstance(base, str) and re.fullmatch(r'[0-9a-f]{40,64}', base), + 'SOURCES.json base_commit must be an exact commit ID') + rows = sources.get('files') + require(isinstance(rows, list), 'SOURCES.json files must be a list') + require(len(rows) <= MAX_SOURCE_ROWS, 'source row limit exceeded') + commits = {base} + for row in rows: + require(isinstance(row, dict) and isinstance(row.get('path'), str), + 'SOURCES.json files rows need a string path') + canonical_relative_path(row['path']) + commits.add(source_pin(row, base).split(':', 1)[0]) + require(len(commits) <= MAX_SOURCE_COMMITS, 'source commit limit exceeded') + shallow = history_git(root, 'rev-parse', '--is-shallow-repository') + require(shallow.returncode == 0, 'cannot inspect Git history') + require(shallow.stdout.strip() == b'false', 'source-history check requires full Git history') + for pin in sorted(commits): + resolved = history_git(root, 'rev-parse', '--verify', '--end-of-options', pin + '^{commit}') + require(resolved.returncode == 0 and resolved.stdout.strip() == pin.encode('ascii'), + 'unavailable source commit: ' + pin) + ancestor = history_git(root, 'merge-base', '--is-ancestor', pin, commit) + require(ancestor.returncode in (0, 1), + 'Git ancestry check failed: ' + ancestor.stderr.decode('utf-8', errors='replace').strip()) + require(ancestor.returncode == 0, + 'source pin is not an ancestor of publication ' + commit + ': ' + pin + + '; a separate cached branch/object is not publication history') + return sorted(commits) + + +def check(root, package, ref='HEAD', check_source_history=False): + require(re.fullmatch(r'research/[a-z0-9][a-z0-9-]*', package), 'package must be research/') + manifest = json.loads(relative_file(root, package+'/VERIFY.json').read_text(encoding='utf-8')) + require(isinstance(manifest, dict), 'VERIFY.json must be an object') + inputs = manifest.get('inputs') + require(isinstance(inputs, list), 'declare input paths in VERIFY.json') + for name in inputs: + canonical_relative_path(name) + commit = git(root, 'rev-parse', '--verify', '--end-of-options', ref+'^{commit}').decode('ascii').strip() + # Literal pathspecs keep wildcard filenames from selecting other files. + records = git(root, '--literal-pathspecs', 'ls-tree', '-r', '-z', '--full-tree', + commit, '--', package, *inputs).split(b'\0') + entries = {} + for record in records: + if not record: + continue + header, raw_name = record.split(b'\t', 1) + mode, kind, obj = header.split() + name = raw_name.decode('utf-8') + require(mode in (b'100644', b'100755') and kind == b'blob', + 'commit contains a non-regular file: '+name) + entries[name] = obj.decode('ascii') + # New nonignored local checkers must not disappear from the publication. + local = git(root, '--literal-pathspecs', 'ls-files', '-c', '-o', '--exclude-standard', + '-z', '--', package).decode('utf-8').split('\0') + expected = {name for name in local if name} | set(inputs) + require(set(entries) == expected, 'working/commit file inventory differs: '+ + ', '.join(sorted(set(entries) ^ expected))) + names = sorted(entries) + require(names, 'empty package inventory') + with closing(git_blobs(root, [entries[name] for name in names])) as blobs: + # Advance the blob iterator once past its last yield, so its final + # Git exit-status check runs before reporting success. + for (_, committed), name in zip(blobs, names): + working = relative_file(root, name).read_bytes() + require(working == committed, + 'working/commit bytes differ: '+name+' (working SHA256 '+ + hashlib.sha256(working).hexdigest()+', commit SHA256 '+ + hashlib.sha256(committed).hexdigest()+')') + result = {'commit':commit, 'files':len(names), 'package':package} + if check_source_history: + result['source_history_commits'] = source_history(root, package, commit) + return result + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--package', required=True) + parser.add_argument('--ref', default='HEAD', help='commit to publish; default HEAD') + parser.add_argument('--check-source-history', action='store_true', + help='also require declared SOURCES.json pin commits in publication ancestry; full history only') + args = parser.parse_args() + try: + result = check(ROOT, args.package, args.ref, args.check_source_history) + except (OSError, ValueError, TypeError, subprocess.SubprocessError) as exc: + parser.exit(1, str(exc)+'\n') + print('PASS_RESEARCH_COMMIT_BYTES '+json.dumps(result)) + + +if __name__ == '__main__': + main() diff --git a/research/owned-relation-independent-validation/capsule/scripts/research_package.py b/research/owned-relation-independent-validation/capsule/scripts/research_package.py new file mode 100644 index 0000000000..ef9b52c392 --- /dev/null +++ b/research/owned-relation-independent-validation/capsule/scripts/research_package.py @@ -0,0 +1,1022 @@ +#!/usr/bin/env python3 +"""Validate and replay explicitly registered research packages, never every verify.py. + +Douglas Colkitt, with OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import errno +from contextlib import closing, contextmanager +from itertools import chain +import hashlib +import importlib.metadata +import json +import os +from pathlib import Path, PurePosixPath +import re +import signal +import stat +import subprocess +import sys +import tempfile +import threading + +ROOT = Path(__file__).resolve().parents[1] +GIT_BLOB_RESPONSE_TIMEOUT = 90 + + +def require(ok, message): + if not ok: + raise ValueError(message) + + +def canonical_relative_path(name): + # Git's changed paths use one repository-relative POSIX spelling. Accepting + # aliases here would let a declared input evade the planner's exact match. + require(isinstance(name, str), "canonical relative path must be a string") + path = PurePosixPath(name) + require(bool(path.parts) and not path.is_absolute() and ".." not in path.parts + and "\\" not in name and path.as_posix() == name, + "use a canonical repository-relative POSIX path: " + name) + return path + + +def symlink_free_relative_path(root, name): + """Reject symlink components without requiring a deleted input to exist. + + Git reports changes under the target's path, not a symlink alias declared + by its consumer. Inspect existing components below the repository root; + the checkout must remain stable during planning, validation and replay. + """ + parts = canonical_relative_path(name).parts + current = root + for part in parts: + current = current / part + try: + mode = current.lstat().st_mode + except (FileNotFoundError, NotADirectoryError): + break + require(not stat.S_ISLNK(mode), "symlink in repository-relative path: " + name) + return root / name + + +def relative_file(root, name): + result = symlink_free_relative_path(root, name) + require(result.resolve().is_relative_to(root.resolve()) and result.is_file(), + "missing or external file: " + name) + return result + + +# Adapted from the package-local policy in +# research/t74-2530-source-partner-audit/audit_common.py (Apache-2.0). +# Keep repository configuration and linked-worktree .git discovery intact; +# inherited shell overrides must not choose a different repository or index. +_GIT_REDIRECT_VARS = frozenset(( + "GIT_DIR", "GIT_WORK_TREE", "GIT_INDEX_FILE", "GIT_OBJECT_DIRECTORY", + "GIT_ALTERNATE_OBJECT_DIRECTORIES", "GIT_NAMESPACE", "GIT_CEILING_DIRECTORIES", + "GIT_COMMON_DIR", "GIT_CONFIG_PARAMETERS", "GIT_CONFIG_COUNT", +)) +_GIT_CONFIG_PREFIXES = ("GIT_CONFIG_KEY_", "GIT_CONFIG_VALUE_") + + +def git_source_env(): + """Use cwd's repository and stored objects, without changing the parent. + + Git can ignore cwd when inherited selection variables point elsewhere. + Config-injection variables can also redirect worktree/index operations. + This policy is only for Git metadata/source subprocesses, not verifiers. + """ + env = {name: value for name, value in os.environ.items() + if name not in _GIT_REDIRECT_VARS and not name.startswith(_GIT_CONFIG_PREFIXES)} + # Replacement refs can report an original ID while returning other bytes. + env["GIT_NO_REPLACE_OBJECTS"] = "1" + return env + + +def git(root, *args): + return subprocess.run(["git", *args], cwd=root, env=git_source_env(), + capture_output=True, check=True).stdout + + +def tracked_input_paths(root): + """Use HEAD spelling, never case folding, filesystem resolution or the index. + + Staged/untracked files are not replay inputs until committed. NUL framing + preserves Git filenames containing whitespace, including CR and LF. + """ + raw = subprocess.run( + ["git", "ls-tree", "-r", "--name-only", "-z", "HEAD"], cwd=root, env=git_source_env(), + capture_output=True, check=True, timeout=30).stdout + return frozenset(name.decode("utf-8") for name in raw.split(b"\0") if name) + + +def require_tracked_input(name, paths): + canonical_relative_path(name) + require(name in paths, "use an exact Git-tracked input path from HEAD: " + name) + + +def git_source_rows(root, base, names): + """Read one pinned object at a time through one Git process; no persistent cache. + + Each request is consumed before the next is sent. This avoids pipe deadlocks + and retains the old one-blob memory bound, even for large source archives. + Newline paths and non-blob objects retain the legacy Git-show semantics. + The caller must close this generator if source validation fails mid-stream. + """ + with subprocess.Popen(["git", "cat-file", "--batch"], cwd=root, env=git_source_env(), + stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.PIPE) as process: + try: + for name in names: + expression = base + ":" + name + if "\n" in expression or "\r" in expression: + yield git(root, "rev-parse", expression).decode().strip(), git(root, "show", expression) + continue + process.stdin.write(expression.encode("utf-8") + b"\n") + process.stdin.flush() + header = process.stdout.readline().rstrip(b"\n").split(b" ") + require(len(header) == 3 and re.fullmatch(rb"[0-9a-f]{40,64}", header[0]) + and header[2].isdigit(), "missing or invalid Git source: " + name) + size = int(header[2]) + payload = process.stdout.read(size) + require(len(payload) == size and process.stdout.read(1) == b"\n", + "truncated Git source: " + name) + if header[1] != b"blob": + payload = git(root, "show", expression) + yield header[0].decode("ascii"), payload + process.stdin.close() + code = process.wait(timeout=90) + require(code == 0, "Git source reader failed: " + process.stderr.read().decode("utf-8", errors="replace")) + finally: + if not process.stdin.closed: + process.stdin.close() + if process.poll() is None: + try: + process.wait(timeout=5) + except subprocess.TimeoutExpired: + process.kill() + process.wait() + + +class _UnsupportedNulBatch(Exception): + """Git rejected the initial NUL-mode request before yielding any source.""" + + +def _closed_stdin_error(error): + # Windows can report EINVAL instead of EPIPE when a child closes stdin. + # This classifies the pipe error only; the retry still requires exit 129. + return (isinstance(error, BrokenPipeError) + or (os.name == "nt" and error.errno == errno.EINVAL)) + + +def _stop_git_blob_process(process): + """Stop this reader's owned POSIX group even after its leader exits.""" + try: + if os.name == "posix": + # Reap an exited leader first: signaling a group containing only + # its unreaped zombie can report EPERM on macOS. A surviving + # descendant keeps the group alive after the leader is reaped. + process.poll() + os.killpg(process.pid, signal.SIGKILL) + else: + process.kill() + except ProcessLookupError: + pass + + +@contextmanager +def _git_blob_response_deadline(stop): + """Bound one response, excluding time spent by its consumer. + + On POSIX the reader owns a session: ordinary descendants retaining a pipe + are stopped with the leader. Escaped sessions and separate git() calls are + outside this contract; non-POSIX retains the direct-child deadline. + """ + expired = threading.Event() + + def terminate(): + expired.set() + stop() + + timer = threading.Timer(GIT_BLOB_RESPONSE_TIMEOUT, terminate) + timer.start() + try: + yield + finally: + timer.cancel() + timer.join() + if expired.is_set(): + raise subprocess.TimeoutExpired("git cat-file blob response", GIT_BLOB_RESPONSE_TIMEOUT) + + +def _git_blob_batch(root, specs, nul): + argv = ["git", "cat-file", "--batch"] + (["-z"] if nul else []) + # Usage diagnostics from the unsupported-option probe are expected. Avoid + # a second pipe that could block while we consume the framed stdout reply. + with subprocess.Popen(argv, cwd=root, env=git_source_env(), stdin=subprocess.PIPE, + stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, + start_new_session=(os.name == "posix")) as process: + stopped = False + + def stop(): + nonlocal stopped + if not stopped: + _stop_git_blob_process(process) + stopped = True + + try: + for index, spec in enumerate(specs): + require("\0" not in spec, "invalid Git object request") + request = spec + if not nul and ("\n" in spec or "\r" in spec): + # Resolve one literal argument, never split a path into requests. + request = git(root, "rev-parse", "--verify", "--end-of-options", spec).decode("ascii").strip() + require(re.fullmatch(r"[0-9a-f]{40,64}", request), "invalid Git object ID") + with _git_blob_response_deadline(stop): + try: + process.stdin.write(request.encode("utf-8") + (b"\0" if nul else b"\n")) + process.stdin.flush() + except OSError as exc: + if not _closed_stdin_error(exc): + raise + header = b"" + else: + header = process.stdout.readline() + if nul and index == 0 and not header and process.wait(timeout=90) == 129: + raise _UnsupportedNulBatch(spec) + fields = header.rstrip(b"\n").split(b" ") + require(len(fields) == 3 and re.fullmatch(rb"[0-9a-f]{40,64}", fields[0]) + and fields[1] == b"blob" and fields[2].isdigit(), + "missing or non-blob Git source: " + spec) + size = int(fields[2]) + pinned = process.stdout.read(size) + require(len(pinned) == size and process.stdout.read(1) == b"\n", + "incomplete Git blob response: " + spec) + yield fields[0].decode("ascii"), pinned + process.stdin.close() + require(process.wait(timeout=90) == 0, "Git source reader failed") + finally: + # Terminate ordinary descendants before closing buffered pipes. This + # also covers successful leader exit and an early generator close. + if os.name == "posix": + stop() + # Option rejection can close stdin before our first write/flush. + try: + process.stdin.close() + except OSError as exc: + if not _closed_stdin_error(exc): + raise + process.stdout.close() + if process.poll() is None: + try: + process.wait(timeout=5) + except subprocess.TimeoutExpired: + process.kill() + process.wait() + + +def git_blobs(root, specs): + """Stream exact blobs, retaining the one-process NUL protocol on newer Git. + + Git without -z rejects it with usage status 129. Retry only before any + response, replaying the consumed first request through the line protocol. + The fallback resolves CR/LF paths to object IDs before requesting content. + The caller must close this iterator if validation stops before exhaustion. + """ + specs = iter(specs) + sentinel = object() + first = next(specs, sentinel) + if first is sentinel: + return + with closing(_git_blob_batch(root, chain((first,), specs), nul=True)) as rows: + try: + yield from rows + except _UnsupportedNulBatch as exc: + with closing(_git_blob_batch(root, chain((exc.args[0],), specs), nul=False)) as legacy: + yield from legacy + + +def meaningful(value): + return isinstance(value, str) and bool(value.strip()) and not re.search(r"\bTODO\b", value, re.I) + + +def brief(value): + text = json.dumps(value, ensure_ascii=True, sort_keys=True) + return text if len(text) <= 120 else text[:117] + "..." + + +def require_key(mapping, key, where, shape=None): + """Name the missing key and its expected shape instead of a bare KeyError.""" + require(isinstance(mapping, dict), + where + " must be a JSON object; found " + type(mapping).__name__ + ": " + brief(mapping)) + require(key in mapping, where + "." + key + " is missing" + + ("; expected " + shape if shape else "")) + return mapping[key] + + +def require_text(mapping, key, where, shape="a non-empty string without TODO"): + """Name the key and distinguish missing, wrong-shaped and weak values.""" + require(isinstance(mapping, dict), + where + " must be a JSON object; found " + type(mapping).__name__ + ": " + brief(mapping)) + require(key in mapping, where + "." + key + " is missing; expected " + shape) + value = mapping[key] + require(isinstance(value, str) and meaningful(value), + where + "." + key + " must be " + shape + "; found " + type(value).__name__ + ": " + brief(value)) + + +def card_differences(own, pinned): + """Name every key by which a TASK.json original_card differs from its pin.""" + if not isinstance(own, dict): + return "TASK.json original_card is " + type(own).__name__ + ", expected a JSON object" + details = [] + missing = [key for key in pinned if key not in own] + extra = [key for key in own if key not in pinned] + if missing: + details.append("missing keys: " + ", ".join(missing)) + if extra: + details.append("unexpected keys: " + ", ".join(extra)) + for key in (key for key in pinned if key in own and own[key] != pinned[key]): + details.append(key + " differs (TASK.json: " + brief(own[key]) + "; pinned: " + brief(pinned[key]) + ")") + return "; ".join(details) or "cards compare unequal without a key difference" + + +def source_pin(row, base): + """Resolve one SOURCES.json row to its exact Git object expression. + + Rows without an explicit pin keep the historical base_commit: form. + A file vendored from a pull-request head is pinned exactly with + head:<40-hex sha>:, so its bytes resolve at that commit, not at the + package base. An explicit but unparseable pin fails closed. + """ + name = row["path"] + pin = row.get("pin") + if pin is None: + return base + ":" + name + if pin == "base_commit:" + name: + return base + ":" + name + # Git filenames can contain LF; it is part of the exact path, not a delimiter. + match = re.fullmatch(r"head:([0-9a-f]{40}):(.+)", pin, re.DOTALL) if isinstance(pin, str) else None + if match is not None and match.group(2) == name: + return match.group(1) + ":" + name + raise ValueError("SOURCES.json pin for " + name + " is not a supported pin form: " + brief(pin) + + "; accepted pin forms are base_commit: and head:<40-hex sha>:") + + +def validate(root, package, check_pins=True): + parts = PurePosixPath(package).parts + require(len(parts) == 2 and parts[0] == "research" and re.fullmatch(r"[a-z0-9][a-z0-9-]*", parts[1]), + "package must be research/") + data = {} + for name in ("TASK.json", "SOURCES.json", "VERIFY.json"): + data[name] = json.loads(relative_file(root, package + "/" + name).read_text(encoding="utf-8")) + version = require_key(data[name], "schema_version", name) + require(version == 1, name + ".schema_version must be 1; found " + brief(version)) + task, sources, manifest = (data[n] for n in ("TASK.json", "SOURCES.json", "VERIFY.json")) + scope_status = require_key(task, "scope_status", "TASK.json", "unchanged, refined or changed") + require(scope_status in ("unchanged", "refined", "changed"), + "TASK.json.scope_status must be unchanged, refined or changed; found " + brief(scope_status)) + for field in ("actual_scope", "bottleneck_link", "stop_rule", "evidence", "author", "ai_assistance"): + require_text(task, field, "TASK.json") + if scope_status == "unchanged": + question = require_key(require_key(task, "original_card", "TASK.json", + "the pinned catalogue card object"), + "question", "TASK.json.original_card") + require(task["actual_scope"] == question, + "different wording/scope requires refined or changed plus a reason" + + " (TASK.json.actual_scope " + brief(task["actual_scope"]) + + " differs from TASK.json.original_card.question " + brief(question) + ")") + else: + require_text(task, "scope_change_reason", "TASK.json", + "a non-empty string without TODO explaining the scope refinement/change") + outcome = require_key(task, "outcome", "TASK.json", + "partial, completed, blocked or negative-result") + require(outcome in ("partial", "completed", "blocked", "negative-result"), + "TASK.json.outcome must be partial, completed, blocked or negative-result; found " + brief(outcome)) + questions = task.get("open_questions") + require(isinstance(questions, list), + "TASK.json.open_questions must be a list; found " + type(questions).__name__ + ": " + brief(questions)) + if not questions: + require_text(task, "no_open_questions_reason", "TASK.json", + "a non-empty string without TODO explaining an empty next-question list") + for position, question in enumerate(questions): + for field in ("question", "why_it_matters", "first_step", "blocked_by"): + require_text(question, field, "TASK.json.open_questions[" + str(position) + "]") + readme = relative_file(root, package + "/README.md").read_text(encoding="utf-8") + require("## Open next questions" in readme, "README.md needs an \"## Open next questions\" section") + status = require_key(manifest, "status", "VERIFY.json") + require(status == "ready", + "VERIFY.json.status must be \"ready\"; complete the draft before requesting replay; found " + brief(status)) + python = require_key(manifest, "python", "VERIFY.json") + require(python == "3.12", + "VERIFY.json.python must be \"3.12\" (generic replay currently uses Python 3.12); found " + brief(python)) + requirements = manifest.get("requirements", []) + require(isinstance(requirements, list), + "VERIFY.json.requirements must be a list of exact \"name==version\" pins; found " + + type(requirements).__name__ + ": " + brief(requirements)) + require(len(requirements) == len(set(requirements)), "VERIFY.json.requirements must not repeat a pin") + for item in requirements: + require(isinstance(item, str) + and re.fullmatch(r"(?:numpy|sympy|scipy)==[0-9]+(?:\.[0-9]+){1,2}", item), + "generic CI supports exact numpy/sympy/scipy pins; use a dedicated workflow for other environments" + + "; offending entry: " + brief(item)) + names = [item.split("==")[0] for item in requirements] + require(len(names) == len(set(names)), "declare only one version per dependency") + # Validation already treats an omitted list as empty; execution must receive + # that same default without rewriting the contributor's manifest on disk. + manifest["requirements"] = requirements + commands = manifest.get("commands") + require(isinstance(commands, list) and 1 <= len(commands) <= 8, + "VERIFY.json.commands must be a list of 1..8 explicit verification commands; found " + + type(commands).__name__ + ": " + brief(commands)) + total = 0 + for position, command in enumerate(commands): + path = "VERIFY.json.commands[" + str(position) + "]" + require(isinstance(command, dict), + path + " must be a JSON object; found " + type(command).__name__ + ": " + brief(command)) + argv = command.get("argv") + require(isinstance(argv, list) and len(argv) >= 2 and all(isinstance(a, str) for a in argv), + path + ".argv must be a list of at least 2 strings; found " + brief(argv)) + require(argv[0] == "{python}", path + ".argv must explicitly use {python}; no implicit shell") + require_text(command, "checks", path, "a non-empty string without TODO describing command coverage") + seconds = command.get("timeout_seconds") + require(type(seconds) is int, + path + ".timeout_seconds must be an integer number of seconds; found " + + type(seconds).__name__ + ": " + brief(seconds)) + require(1 <= seconds <= 600, + path + ".timeout_seconds " + str(seconds) + + (" exceeds the 600 s per-command cap" if seconds > 600 + else " is below the 1 s per-command minimum")) + total += seconds + require(total <= 1200, "declared replay budget " + str(total) + + " s (sum of timeout_seconds) exceeds the 1200 s total cap" + + "; use a dedicated job for larger checks") + inputs = manifest.get("inputs") + require(isinstance(inputs, list), + "VERIFY.json.inputs must be a list of canonical repository-relative paths; found " + + type(inputs).__name__ + ": " + brief(inputs)) + tracked = tracked_input_paths(root) + for name in inputs: + symlink_free_relative_path(root, name) + require_tracked_input(name, tracked) + relative_file(root, name) + files = require_key(sources, "files", "SOURCES.json") + require(files, "SOURCES.json.files is empty; declare the source inventory") + base = require_key(sources, "base_commit", "SOURCES.json", "a 40-64 hex string pinning an exact base commit") + require(isinstance(base, str) and re.fullmatch(r"[0-9a-f]{40,64}", base), + "SOURCES.json.base_commit must be a 40-64 hex string pinning an exact base commit; found " + brief(base)) + task_base = require_key(task, "base_commit", "TASK.json", + "a 40-64 hex string equal to SOURCES.json.base_commit") + require(task_base == base, "TASK.json.base_commit " + brief(task_base) + + " must equal SOURCES.json.base_commit " + brief(base)) + for row in files: + require(isinstance(row, dict) and isinstance(row.get("path"), str), + "SOURCES.json.files rows must be JSON objects with a string path; offending row: " + brief(row)) + require(row.get("usage") in ("input", "provenance"), + "SOURCES.json.files row " + row["path"] + " must declare usage \"input\" or \"provenance\"; found " + + brief(row.get("usage"))) + undeclared = sorted({r["path"] for r in sources["files"] if r["usage"] == "input"} - set(inputs)) + require(not undeclared, + "every SOURCES.json files row with usage \"input\" must also be declared in VERIFY.json inputs" + + " (they drive CI invalidation); undeclared: " + ", ".join(undeclared)) + if check_pins: + catalog_name = "docs/research/agent-task-catalog.json" + require(catalog_name in {r["path"] for r in sources["files"]}, + "SOURCES.json.files must pin the originating task catalogue " + catalog_name + + " (a provenance row pinned at base_commit)") + names = [r["path"] for r in sources["files"]] + for name in names: + p = PurePosixPath(name) + require(not p.is_absolute() and ".." not in p.parts, "invalid source path") + specs = [source_pin(row, sources["base_commit"]) for row in sources["files"]] + require(all(spec == sources["base_commit"] + ":" + catalog_name + for name, spec in zip(names, specs) if name == catalog_name), + "originating task catalogue must be pinned at base_commit") + with closing(git_blobs(root, specs)) as objects: + for index, (obj, pinned) in enumerate(objects): + row = sources["files"][index] + name = row["path"] + require(obj == row["git_blob"], "source blob provenance mismatch: " + name) + require(hashlib.sha256(pinned).hexdigest() == row["sha256"], "source SHA256 provenance mismatch: " + name) + if row["usage"] == "input": + require(pinned == relative_file(root, name).read_bytes(), "working source drift: " + name) + if name == catalog_name: + catalog = json.loads(pinned) + cards = [t for tr in catalog["tracks"] for t in tr["tasks"] if t["id"] == task["task_id"]] + require(len(cards) == 1, + "TASK.json task_id " + brief(task["task_id"]) + " matches " + str(len(cards)) + + " cards in pinned " + catalog_name + " at base_commit " + sources["base_commit"] + + "; need exactly one") + original_card = require_key(task, "original_card", "TASK.json", + "the pinned catalogue card object (copy --print-card output verbatim)") + if original_card != cards[0]: + raise ValueError("original card in TASK.json must equal the pinned catalogue card object exactly; " + "copy it verbatim from " + catalog_name + " at base_commit " + sources["base_commit"] + + ": " + card_differences(original_card, cards[0])) + return task, manifest + + +def catalogue_card(root, package, task_id): + """The exact original_card object a hand-authored TASK.json must copy. + + Reads the catalogue blob pinned at the package base commit, never the + working tree, because validate() compares original_card against that pin. + """ + sources = json.loads(relative_file(root, package + "/SOURCES.json").read_text(encoding="utf-8")) + name = "docs/research/agent-task-catalog.json" + rows = require_key(sources, "files", "SOURCES.json") + row = next((r for r in rows if isinstance(r, dict) and r.get("path") == name), None) + require(row is not None, "SOURCES.json.files must pin the originating task catalogue " + name) + base = require_key(sources, "base_commit", "SOURCES.json", "a 40-64 hex string pinning an exact base commit") + spec = source_pin(row, base) + require(spec == base + ":" + name, "originating task catalogue must be pinned at base_commit") + catalog = json.loads(git(root, "show", spec)) + cards = [t for tr in catalog["tracks"] for t in tr["tasks"] if t["id"] == task_id] + require(len(cards) == 1, + "task_id " + brief(task_id) + " matches " + str(len(cards)) + + " cards in pinned " + name + " at base_commit " + base + "; need exactly one") + return cards[0] + + +_WINDOWS_GATE = r""" +import ctypes +from ctypes import wintypes +import json +import subprocess +import sys +api = ctypes.WinDLL('kernel32', use_last_error=True) +api.OpenEventW.argtypes = [wintypes.DWORD, wintypes.BOOL, wintypes.LPCWSTR] +api.OpenEventW.restype = wintypes.HANDLE +api.WaitForSingleObject.argtypes = [wintypes.HANDLE, wintypes.DWORD] +api.WaitForSingleObject.restype = wintypes.DWORD +api.CloseHandle.argtypes = [wintypes.HANDLE] +api.CloseHandle.restype = wintypes.BOOL +event = api.OpenEventW(0x00100000, False, sys.argv[1]) +if not event: + raise ctypes.WinError(ctypes.get_last_error()) +try: + if api.WaitForSingleObject(event, 30000) != 0: + raise RuntimeError('replay ownership gate was not released') +finally: + api.CloseHandle(event) +# No verification command or descendant starts until the parent owns this job. +sys.exit(subprocess.call(json.loads(sys.argv[2]))) +""" + +def run_windows_command(argv, cwd, timeout, env): + """Own ordinary verification descendants even after their leader exits. + + The gated launcher joins a kill-on-close Job Object before it may spawn + the requested command. A late taskkill cannot recover an exited leader's + tree. Job handles are not inherited and breakaway is not enabled. + """ + import ctypes + from ctypes import wintypes + import time + import uuid + + class BasicLimits(ctypes.Structure): + _fields_ = [("ProcessTime", ctypes.c_int64), ("JobTime", ctypes.c_int64), + ("Flags", wintypes.DWORD), ("MinWorkingSet", ctypes.c_size_t), + ("MaxWorkingSet", ctypes.c_size_t), ("ActiveProcessLimit", wintypes.DWORD), + ("Affinity", ctypes.c_size_t), ("Priority", wintypes.DWORD), + ("Scheduling", wintypes.DWORD)] + + class IOCounts(ctypes.Structure): + _fields_ = [(name, ctypes.c_uint64) for name in + ("ReadOps", "WriteOps", "OtherOps", "ReadBytes", "WriteBytes", "OtherBytes")] + + class ExtendedLimits(ctypes.Structure): + _fields_ = [("Basic", BasicLimits), ("IO", IOCounts), + ("ProcessMemory", ctypes.c_size_t), ("JobMemory", ctypes.c_size_t), + ("PeakProcessMemory", ctypes.c_size_t), ("PeakJobMemory", ctypes.c_size_t)] + + class Accounting(ctypes.Structure): + _fields_ = [(name, ctypes.c_int64) for name in + ("UserTime", "KernelTime", "PeriodUserTime", "PeriodKernelTime")] + [ + (name, wintypes.DWORD) for name in + ("PageFaults", "TotalProcesses", "ActiveProcesses", "TerminatedProcesses")] + + api = ctypes.WinDLL("kernel32", use_last_error=True) + + def native(name, result, *arguments): + fn = getattr(api, name) + fn.restype, fn.argtypes = result, arguments + return fn + + handle, dword, boolean = wintypes.HANDLE, wintypes.DWORD, wintypes.BOOL + create_job = native("CreateJobObjectW", handle, ctypes.c_void_p, wintypes.LPCWSTR) + set_info = native("SetInformationJobObject", boolean, handle, ctypes.c_int, ctypes.c_void_p, dword) + assign = native("AssignProcessToJobObject", boolean, handle, handle) + terminate = native("TerminateJobObject", boolean, handle, wintypes.UINT) + query = native("QueryInformationJobObject", boolean, handle, ctypes.c_int, + ctypes.c_void_p, dword, ctypes.c_void_p) + create_event = native("CreateEventW", handle, ctypes.c_void_p, boolean, boolean, wintypes.LPCWSTR) + set_event = native("SetEvent", boolean, handle) + close = native("CloseHandle", boolean, handle) + + def checked(ok): + if not ok: + raise ctypes.WinError(ctypes.get_last_error()) + return ok + + job = checked(create_job(None, None)) + event, process, assigned = None, None, False + try: + limits = ExtendedLimits() + limits.Basic.Flags = 0x2000 # JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE + checked(set_info(job, 9, ctypes.byref(limits), ctypes.sizeof(limits))) + name = "Local\\research-replay-" + uuid.uuid4().hex + event = checked(create_event(None, True, False, name)) + # A name collision must not attach to an already-signaled event. + if ctypes.get_last_error() == 183: + raise ValueError("replay ownership gate name already exists") + process = subprocess.Popen( + # The gate itself must not run sitecustomize/PYTHONPATH startup + # code before ownership. The requested command retains env/argv. + # Windows accepts Unicode argv directly. ASCII JSON escaping can + # expand an otherwise valid command past its UTF-16 launch limit. + [sys.executable, "-I", "-S", "-c", _WINDOWS_GATE, name, + json.dumps(argv, ensure_ascii=False)], + cwd=cwd, env=env, start_new_session=True) + checked(assign(job, int(process._handle))) + assigned = True + checked(set_event(event)) + try: + return process.wait(timeout=timeout) + except subprocess.TimeoutExpired: + raise ValueError("verification timed out") from None + finally: + try: + if process is not None: + if assigned: + checked(terminate(job, 1)) + # Termination is asynchronous. Require the job to report + # no active processes before releasing its ownership handle. + deadline = time.monotonic() + 10 + while True: + state = Accounting() + checked(query(job, 1, ctypes.byref(state), ctypes.sizeof(state), None)) + if not state.ActiveProcesses: + break + if time.monotonic() >= deadline: + raise ValueError("verification process cleanup timed out") + time.sleep(0.01) + elif process.poll() is None: + # Assignment failed before the gate opened: no command child + # exists, so only this known gated launcher needs stopping. + process.kill() + process.wait(timeout=10) + finally: + try: + if event: + checked(close(event)) + finally: + checked(close(job)) + +def run_command(argv, cwd, timeout): + # Assertion checks must not disappear because of the caller's environment. + # Keep explicit manifest options (including deliberate -O controls) intact. + # PYTHONPATH precedes the standard library on a child's sys.path, so a stray + # same-named module could end a verifier with exit code 0 before any check. + env = os.environ.copy() + env.pop("PYTHONOPTIMIZE", None) + # Ambient inspection can turn a verifier exception into a successful REPL + # exit at terminal EOF. Keep explicit -i and the caller's stdin unchanged. + env.pop("PYTHONINSPECT", None) + env.pop("PYTHONPATH", None) + if os.name == "nt": + code = run_windows_command(argv, cwd, timeout, env) + require(code == 0, f"verification command exited {code}") + return + previous_handler = None + terminating = False + waiting = False + process = None + + def terminate(signum, frame): + nonlocal terminating + if not terminating: + terminating = True + # Only interrupt the protected wait. Launch/assignment and cleanup + # defer delivery; repeated signals cannot interrupt group cleanup. + if waiting: + raise SystemExit(128 + signum) + + # Own a group for POSIX cleanup of this command and its descendants. + try: + if (threading.current_thread() is threading.main_thread() + and signal.getsignal(signal.SIGTERM) == signal.SIG_DFL): + previous_handler = signal.SIG_DFL + signal.signal(signal.SIGTERM, terminate) + if terminating: + raise SystemExit(143) + process = subprocess.Popen(argv, cwd=cwd, env=env, start_new_session=True) + try: + try: + waiting = True + if terminating: + raise SystemExit(143) + code = process.wait(timeout=timeout) + finally: + waiting = False + except subprocess.TimeoutExpired: + raise ValueError("verification timed out") from None + require(code == 0, f"verification command exited {code}") + finally: + try: + if process is not None: + if hasattr(os, "killpg"): + # The leader may have exited while descendants hold its group. + try: + os.killpg(process.pid, signal.SIGKILL) + except ProcessLookupError: + pass + elif process.poll() is None: + subprocess.run(["taskkill", "/F", "/T", "/PID", str(process.pid)], capture_output=True) + process.wait() + finally: + if previous_handler is not None: + signal.signal(signal.SIGTERM, previous_handler) + if terminating: + raise SystemExit(143) + + +def isolated_python_argv(argv, cache_directory): + """Place our cache option after interpreter flags, before the entry point. + + -B prevents writes, not reads of existing .pyc files. A fresh namespace + keeps preexisting source-adjacent and externally configured caches out of + this registered interpreter. It is not inherited by child interpreters. + """ + require(argv and argv[0] == sys.executable, "cache isolation requires the registered Python interpreter") + index = 1 + options = [argv[0]] + while index < len(argv): + option = argv[index] + if option in ("-", "--") or not option.startswith("-"): + break + if option == "--check-hash-based-pycs": + require(index + 1 < len(argv), "missing Python hash-cache option argument") + options.extend(argv[index:index + 2]) + index += 2 + continue + if option.startswith("--"): + options.append(option) + index += 1 + continue + # Python permits combined short flags, attached -c/-m payloads, and + # attached or separate -W/-X arguments. Stop scanning an option once + # its argument begins: letters inside that argument are not flags. + entry = False + consumed = 1 + replace_cache = False + for offset, flag in enumerate(option[1:], start=1): + if flag in "cm": + entry = True + break + if flag in "WX": + if offset == len(option) - 1: + require(index + 1 < len(argv), "missing Python interpreter option argument") + consumed = 2 + value = argv[index + 1] if consumed == 2 else option[offset + 1:] + if flag == "X" and value.split("=", 1)[0] == "pycache_prefix": + replace_cache = True + if offset > 1: + options.append(option[:offset]) + break + if entry: + break + if not replace_cache: + options.extend(argv[index:index + consumed]) + index += consumed + # CPython's effective prefix can use the first duplicate -X value even + # when sys._xoptions shows the last. Remove only earlier cache-prefix + # settings; script arguments remain untouched, even when spelled -X. + return [*options, "-X", "pycache_prefix=" + str(cache_directory), *argv[index:]] + + +def run_python_replay(argv, cwd, timeout): + with tempfile.TemporaryDirectory(prefix="research-replay-pycache-") as cache: + run_command(isolated_python_argv(argv, cache), cwd, timeout) + + +def run_package(root, package, install=False): + task, manifest = validate(root, package) + require(sys.version_info[:2] == (3, 12), "run replay with Python 3.12 (metadata check is version-independent)") + if install and manifest["requirements"]: + run_command([sys.executable, "-m", "pip", "install", "--disable-pip-version-check", *manifest["requirements"]], root, 300) + for requirement in manifest["requirements"]: + name, version = requirement.split("==") + require(importlib.metadata.version(name) == version, "dependency version mismatch: " + requirement) + # Coverage labels are UTF-8 metadata but a redirected Windows stdout may + # use cp1252. Escape unrepresentable display characters instead of aborting + # before replay. This changes only our stream, not child encoding or env. + if hasattr(sys.stdout, "reconfigure"): + sys.stdout.reconfigure(errors="backslashreplace") + for command in manifest["commands"]: + argv = [sys.executable if item == "{python}" else item.replace("{package}", package) for item in command["argv"]] + print("CHECK " + command["checks"], flush=True) + run_python_replay(argv, root, command["timeout_seconds"]) + print("PASS_REGISTERED_RESEARCH_PACKAGE " + package + " outcome=" + task["outcome"]) + + +def planning_manifests(root, tracked): + """Include deliberate sparse omissions without disguising deletions or drift. + + The fallback follows the chooser's PR3102 contract: one stage-zero regular + skip-worktree index entry must match the exact HEAD mode and blob. This is + declaration discovery only, not permission to replay absent package code. + """ + committed = {name for name in tracked + if name.startswith("research/") and name.count("/") == 2 + and name.endswith("/VERIFY.json")} + # Explicit scandir retains error detection; only an absent directory is OK. + try: + with os.scandir(root / "research") as entries: + local = {Path(entry.path) / "VERIFY.json" for entry in entries} + except FileNotFoundError: + local = set() + present, missing = {}, set() + for path in sorted(local | {root / name for name in committed}): + name = path.relative_to(root).as_posix() + symlink_free_relative_path(root, name) + try: + mode = path.lstat().st_mode + except (FileNotFoundError, NotADirectoryError): + if name in committed: + missing.add(name) + continue + require(stat.S_ISREG(mode), "non-regular replay manifest: " + name) + present[name] = path + fallback = {} + if missing: + indexed, objects = {}, {} + for record in git(root, "ls-files", "-t", "--stage", "-z", "--", "research").split(b"\0"): + if not record: + continue + header, raw_name = record.split(b"\t", 1) + name = raw_name.decode("utf-8") + if name in missing: + indexed.setdefault(name, []).append(header.split()) + for record in git(root, "ls-tree", "-r", "-z", "HEAD", "--", "research").split(b"\0"): + if not record: + continue + header, raw_name = record.split(b"\t", 1) + name = raw_name.decode("utf-8") + if name in missing: + objects[name] = header.split() + for name in sorted(missing): + metadata = objects.get(name, []) + require(len(metadata) == 3 and metadata[0] in (b"100644", b"100755") + and metadata[1] == b"blob" + and indexed.get(name) == [[b"S", metadata[0], metadata[2], b"0"]], + "missing replay manifest is not an unchanged sparse HEAD input: " + name + + "; materialize it or commit its intended deletion") + # A regular file occupying the package directory is not an omission. + require(not (root / name).parent.exists() or (root / name).parent.is_dir(), + "non-directory replay package: " + name) + names = sorted(missing) + with closing(git_blobs(root, [objects[n][2].decode("ascii") for n in names])) as rows: + for (oid, raw), name in zip(rows, names): + require(oid.encode("ascii") == objects[name][2], "sparse manifest blob mismatch: " + name) + fallback[name] = raw + # Preserve Path's component ordering: package "a" precedes "a-extra". + for name in sorted(present.keys() | fallback.keys(), key=lambda name: PurePosixPath(name).parts): + yield root / name, fallback[name] if name in fallback else present[name].read_bytes(), name in fallback + + +def plan_details(root, changed): + """One selection pass with exact causes; no replay or acceptance decision.""" + changed = set(changed) + # A removed input is absent from HEAD, including an old case-only rename + # spelling on case-insensitive filesystems. Git's exact changed paths remain + # eligible so its consumer is selected, rather than rejected or skipped. + head_tracked = tracked_input_paths(root) + tracked = head_tracked | changed + replay_changed = sorted(changed.intersection({ + "scripts/research_package.py", ".github/workflows/research-packages.yml", + ".github/workflows/research-package-batch.yml"})) + # Group literal Git paths once. Keep removed paths and exact spellings. + changed_packages = {} + for name in sorted(changed): + parts = name.split("/", 2) + if len(parts) == 3 and parts[0] == "research": + changed_packages.setdefault("/".join(parts[:2]), []).append(name) + packages = [] + sparse_count = 0 + for path, raw, sparse in planning_manifests(root, head_tracked): + sparse_count += sparse + package = path.parent.relative_to(root).as_posix() + manifest = json.loads(raw.decode("utf-8")) + # Parse only for selection; validate fully in the isolated replay job. + inputs = manifest.get("inputs", []) + require(isinstance(inputs, list), "declare input paths for CI invalidation") + for name in inputs: + # Do not require existence: a deleted input must still trigger replay. + symlink_free_relative_path(root, name) + require_tracked_input(name, tracked) + causes = { + "declared_inputs": sorted(changed.intersection(inputs)), + "package_files": changed_packages.get(package, []), + "shared_controls": replay_changed, + } + if any(causes.values()): + packages.append({"package": package, "causes": causes, + "manifest_sha256": hashlib.sha256(raw).hexdigest()}) + if sparse_count: + print(f"Planning includes {sparse_count} unchanged sparse manifests from HEAD; " + "materialize packages and inputs before replay.", file=sys.stderr) + return packages + + +def plan(root, changed): + return [row["package"] for row in plan_details(root, changed)] + + +def write_plan_explanation(path, base, head, changed, details): + """Publish a complete sidecar before stdout/GitHub matrix publication.""" + matched = {name for row in details for names in row["causes"].values() for name in names} + report = { + "schema_version": 1, "base": base, "head": head, + "mode": "all-tracked" if base is None else "commit-diff", + "scope": "Selection from working or authenticated sparse HEAD manifests, not replay or mathematical acceptance. " + "Manifest hashes bind the declarations read; checkout must remain stable.", + "changed_paths": sorted(set(changed) - {""}), "selected": details, + "unmatched_paths": sorted(set(changed) - matched - {""}), + } + fd, temporary = tempfile.mkstemp(prefix=".replay-plan-", dir=path.parent) + try: + with os.fdopen(fd, "w", encoding="utf-8") as stream: + json.dump(report, stream, indent=2) + stream.write("\n") + os.replace(temporary, path) + finally: + Path(temporary).unlink(missing_ok=True) + + +def replay_matrix(packages, batch_size=None): + """Retain the flat CLI format, or group complete coverage into bounded matrices.""" + if batch_size is None: + return {"include": [{"package": p} for p in packages]} + require(type(batch_size) is int and 1 <= batch_size <= 256, + "matrix batch size must be 1..256") + batches = [packages[i:i + batch_size] for i in range(0, len(packages), batch_size)] + require(len(batches) <= 256, + "more than 256 matrix batches required; no packages were truncated") + return {"include": [{"packages": batch} for batch in batches]} + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--package") + ap.add_argument("--check-only", action="store_true") + ap.add_argument("--print-card", metavar="TASK_ID", + help="print the exact pinned catalogue card object to copy into TASK.json original_card") + ap.add_argument("--install-deps", action="store_true", help="explicit opt-in to install manifest's allowed pinned dependencies") + ap.add_argument("--changed-since", help="plan affected opt-in packages relative to this Git commit") + ap.add_argument("--github-output", type=Path) + ap.add_argument("--explain-plan", type=Path, + help="write exact replay-selection causes to JSON; matrix output stays unchanged") + ap.add_argument("--matrix-batch-size", type=int, + help="group planned packages for bounded reusable-workflow matrices (1..256)") + args = ap.parse_args() + if args.explain_plan and (not args.changed_since or args.package or args.print_card): + ap.error("--explain-plan requires --changed-since without --package or --print-card") + if args.explain_plan and args.github_output and args.explain_plan.resolve() == args.github_output.resolve(): + ap.error("--explain-plan and --github-output must use different files") + try: + if args.print_card: + require(args.package, + "--print-card needs --package research/ to resolve its pinned catalogue") + sys.stdout.write(json.dumps(catalogue_card(ROOT, args.package, args.print_card), indent=2) + "\n") + elif args.changed_since: + if set(args.changed_since) == {"0"}: + base = None + changed = git(ROOT, "ls-files", "-z").decode().split("\0") + else: + base = git(ROOT, "rev-parse", "--verify", args.changed_since + "^{commit}").decode().strip() + # A rename must invalidate both the removed input and its new path. + changed = git(ROOT, "diff", "--no-renames", "--name-only", "-z", base, "HEAD").decode().split("\0") + details = plan_details(ROOT, changed) + packages = [row["package"] for row in details] + matrix = json.dumps(replay_matrix(packages, args.matrix_batch_size)) + if args.explain_plan: + head = git(ROOT, "rev-parse", "--verify", "HEAD^{commit}").decode().strip() + write_plan_explanation(args.explain_plan, base, head, changed, details) + print(matrix) + if args.github_output: + with args.github_output.open("a", encoding="utf-8") as out: + out.write(f"matrix={matrix}\ncount={len(packages)}\n") + elif args.package: + if args.check_only: + validate(ROOT, args.package) + print("PASS_PACKAGE_METADATA_AND_PINS (not a mathematical acceptance check)") + else: + run_package(ROOT, args.package, args.install_deps) + else: + ap.error("use --package, --print-card or --changed-since") + except (OSError, ValueError, KeyError, TypeError, subprocess.SubprocessError, importlib.metadata.PackageNotFoundError) as exc: + ap.exit(1, str(exc) + "\n") + + +if __name__ == "__main__": + main() diff --git a/research/owned-relation-independent-validation/engines/cost/check_cost.py b/research/owned-relation-independent-validation/engines/cost/check_cost.py new file mode 100644 index 0000000000..5e89428037 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/check_cost.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +"""Independent directed scalar and literal census screen of PR5377. + +Does not import/run either PR5377 interval engine or native verifier. Uses +newly written atanh60/Taylor32 directed rationals; reuses the separately +implemented PR5241 outer ledger formula only, explicitly below. +Substantial OpenAI Codex assistance. Predecessors: Cao Yifan, Cinna Davis, +zxv, Jacob Alan Sussman and Chris R/Clear1nsight. +""" +from collections import Counter +from fractions import Fraction as Q +from functools import lru_cache +from pathlib import Path +import ast,gzip,json,hashlib,time +F=Path(__file__).resolve().parent/'frozen' +UNIT=10**55 +def need(ok,s): + if not ok: raise ValueError(s) +def dn(x):return Q(x.numerator*UNIT//x.denominator,UNIT) +def up(x):return -dn(-x) +def mul(a,b): + v=[x*y for x in a for y in b];return dn(min(v)),up(max(v)) +def div(a,b): + need(b[0]>0,'positive divisor');return mul(a,(1/b[1],1/b[0])) +def logsmall(x): + z=(x-1)/(x+1);s=Q(0);term=z + need(0<=z<=Q(1,3),'log domain') + for j in range(60):s+=2*term/(2*j+1);term*=z*z + return dn(s),up(s+2*term/(121*(1-z*z))) +@lru_cache(None) +def logint(n): + k=n.bit_length()-1;a,b=logsmall(Q(n,2**k));c,d=logsmall(Q(2));return a+k*c,b+k*d +def expone(x): + if x<0: + a,b=expone(-x);return dn(1/b),up(1/a) + s=term=Q(1);shift=0 + while x>Q(1,32):x/=2;shift+=1 + for j in range(1,33):term*=x/j;s+=term + tail=term*x/33/(1-x/34);a,b=dn(s),up(s+tail) + for _ in range(shift):a,b=dn(a*a),up(b*b) + return a,b +@lru_cache(None) +def power(r,t): + a,b=logint(r);a,b=sorted([a*t,b*t]);return expone(a)[0],expone(b)[1] +def moment(p,t):return tuple(sum((n*power(r,t)[i] for r,n in p.items()),Q(0)) for i in (0,1)) +def minus(a,b):return a[0]-b[1],a[1]-b[0] +def scalar(g): + if g[0] in ('copy','clear'):return 2 + q=Q(*g[3:]) if g[0]=='add' else Q(*g[2:]);n,d=abs(q.numerator),q.denominator + need(n>0 and d&(d-1)==0,'dyadic scalar') + if g[0]=='scale': + need(n&(n-1)==0,'dyadic unit');return 2*(abs(n.bit_length()-d.bit_length())+int(q<0)) + need(g[0]=='add','scalar opcode');return 2*(3+n.bit_length()-1+n.bit_count()+d.bit_length()-1) +def read(n): + p=F/n;b=p.read_bytes();return json.loads(gzip.decompress(b) if n.endswith('.gz') else b) +def enc(x): + if isinstance(x,Q):return str(x) + if isinstance(x,dict):return {str(k):enc(v) for k,v in x.items()} + if isinstance(x,(list,tuple)):return [enc(v) for v in x] + return x +def main(): + start=time.monotonic();src=read('ACTUAL-WORD.json.gz');cand=read('WORD.json.gz');ctl=read('controller-CONTROLLER.json');old=read('4610-round6-ARITHMETIC.json');author=read('RESULT.json')['arithmetic'] + local={};cost={};T=Counter();P=Counter();orient=Counter();queries=0 + c=cand['canonical'] + for d,events in cand['programs'].items(): + paid=Counter();cost[d]=0 + for e in events: + if e[0] in ('climb','center'):paid[e[-1]]+=1 + elif e[0]=='scalar':cost[d]+=scalar(e[1]) + helpers=Counter(len(c['frames'][c['final'][i]])-len(c['frames'][c['start'][i]]) for i in range(224,632) if not (d=='backward' and i==230)) + local[d]=(paid,helpers) + oldcost=sum(scalar(e[1]) for e in src['programs'][d] if e[0]=='scalar') + need(cost[d]-oldcost==(46 if d=='backward' else 0),'all changed scalar operations charged') + for e in ctl['physical_events']: + if e[0]=='LOCAL': + d='backward' if e[3] else 'forward';orient[d]+=1;P.update(local[d][0]);T.update(local[d][1]) + elif e[0]=='QUERY_SHEAR':queries+=1;P[1]+=112 + elif e[0]=='IDLE':P[8*len(e[2])]+=224 + for term in ctl['diagonal']:T[1+8*sum(term[1:])]+=112 + need(orient=={'backward':16,'forward':2} and queries==15,'literal controller orientations') + priorT=Counter({int(k):v for k,v in old['targets'].items()});priorP=Counter({int(k):v for k,v in old['paid'].items()});priorT[9]-=16;priorP[1]-=16;priorP[8]-=16 + need(T==priorT and P==priorP,'old-to-new exact complete delta') + need(dict(T)=={int(k):v for k,v in author['targets'].items()} and dict(P)=={int(k):v for k,v in author['paid'].items()},'author invoice crosscheck') + need((sum(T.values()),sum(P.values()))==(10912,64372),'complete census') + masses=[sum(r*n for r,n in p.items()) for p in (T,P)];need(masses==[239742,238990],'rank masses') + k,s=Q('.00302235'),Q('.00302236');gap=(s-k)/7;t=1-s + lo,hi=Q('.00302238736347'),Q('.00302238736348') + signs=[minus(moment(T,1-x),moment(P,1-x)) for x in [lo,hi]] + need(signs[0][0]>0>signs[1][1] and ktheta**1000,'initial_range':power(145,1024*s)[1]<2**1000} + H,j=31385200000000,44836;step=gap.denominator + capacity.update(height_encoding=H==step*j and gap==Q(1,700000000),height_domain=H>8*1024,integer_success=(H+1)**1000<2**j,preceding_grid_fails=(step*(j-1)+1)**1000>=2**(j-1)) + need(all(capacity.values()),'finite compiler capacities') + # Concavity of log(step*j+1)-j*log(2)/1000 gives one positive + # crossing; success and preceding-grid failure establish grid minimality. + signed={r:T[r]-P[r] for r in T.keys()|P.keys()};derivative_lowers=[];away_uppers=[] + for i in range(16): + l,r=Q(i,320),Q(i+1,320);bound=Q(0) + for rank,n in signed.items(): + term=mul(power(rank,1-r if n>0 else 1-l),logint(rank));bound+=n*term[0 if n>0 else 1] + derivative_lowers.append(bound) + for i in range(128): + l,r=Q(1,20)+Q(19*i,2560),Q(1,20)+Q(19*(i+1),2560) + away_uppers.append(sum(n*power(rank,1-l if n>0 else 1-r)[1 if n>0 else 0] for rank,n in signed.items())) + need(min(derivative_lowers)>0 and max(away_uppers)<0,'global fixed-profile root uniqueness') + # Independently transcribed selected5241 ledger, not the author ledger. + tree=ast.parse((F/'compiler.py').read_text());node=next(x for x in tree.body if isinstance(x,ast.FunctionDef) and x.name=='ledger');ns={'F':Q};exec(compile(ast.Module(body=[node],type_ignores=[]),str(F/'compiler.py'),'exec'),ns) + params=dict(kappa=k,tested_saving=s,complex_uniform_saving=k+6*gap,b=k+5*gap,a=k+4*gap,q=k+3*gap,bit_saving=Q('.0034'),epsilon=1-gap,beta=1-3*gap,r0=gap/10,stop=gap,layout=gap,d=gap) + m,strict,func=ns['ledger'](params) + for group,values in [('margins',m),('strict_checks',strict),('functional_checks',func)]:need(values=={n:Q(v) for n,v in author['outer'][group].items()},'54+4 outer values agree '+group) + need(len(strict)==54 and len(func)==4 and min(strict.values())>0 and min(func.values())>0,'complete outer inventory') + controls={} + for name,patch in [('old_BIT',{'bit_saving':Q('.0027')}),('closed_uniform',{'complex_uniform_saving':params['b']}),('unfunded_endpoint',{'kappa':s}),('closed_epsilon',{'epsilon':Q(1)})]: + _,bad,_=ns['ledger'](dict(params,**patch));controls[name]=[n for n,v in bad.items() if v<=0];need(controls[name],'outer control '+name) + bit=author['ordinary_BIT'];ordinary=(1-Q(bit['atom']))*Q(bit['after_cover'])+Q(bit['atom'])*Q('.0000384599');need(Q(bit['ordinary_saving'])==ordinary and Q(bit['atom'])>ordinary>Q(bit['admitted'])>s,'unchanged ordinary BIT domain') + routes=(max(sum(x[0].values()) for x in local.values())+2*408+688+4)*1000 + raw=18*10**7+15*1792+32*112*(len(ctl['physical_events'])+sum(len(ctl['boundaries'][x+'_program']) for x in ['left','right'])) + need(routes==4806000 and max(cost.values())==158214 and routes+max(cost.values())<10**7 and raw==181098496<10**9,'fresh raw costs') + out=dict(status='PASS_INDEPENDENT_SCALAR_CENSUS_MOMENT_COMPILER_OUTER_SCREEN',head='c448d13c71908647f968b06cddb795ce7d288139',kappa=k,tested=s,gain=k-Q('.0030217758'),root=[lo,hi],root_signs=signs,targets=T,paid=P,rank_masses=masses,local_scalar=cost,local_routes=routes,raw=raw,ratios=ratios,normalized=normalized,capacity=capacity,eta=eta,derivative_upper=-min(derivative_lowers),away_moment_upper=max(away_uppers),outer_min=min(strict.values()),outer_strict_count=len(strict),outer_functional_count=len(func),controls=controls,gap=gap,uniform_saving=k+6*gap,H=H,j=j,seconds=time.monotonic()-start,independent_native_replay=False,expanded_word_materialized=False,scope='Finite scalar/census check. Physical replacement and all-f specialization reviewed separately; same five conditional assumptions retained. Raw bound is not an expanded precision/storage bound.',sha256={p.name:hashlib.sha256(p.read_bytes()).hexdigest() for p in F.iterdir() if p.is_file()}) + print(json.dumps(enc(out),indent=2,sort_keys=True)) +if __name__=='__main__':main() diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/4610-round6-ARITHMETIC.json b/research/owned-relation-independent-validation/engines/cost/frozen/4610-round6-ARITHMETIC.json new file mode 100644 index 0000000000..0fdb65f946 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/4610-round6-ARITHMETIC.json @@ -0,0 +1,241 @@ +{ + "compiler": { + "H": 38569300000000000, + "N": "2^38569300000000000", + "eta": { + "lower": "0.000000204535199106284215364833", + "upper": "0.000000204535199106284215364834" + }, + "gap": "1/700000000000", + "integer_test_exponent": 55099, + "logarithm_power": 1000, + "theta": "63/64", + "uniform_saving": "1057621533/350000000000", + "word_materialized": false + }, + "gain_over_PR4535": "4027/2500000000", + "kappa": "15108879/5000000000", + "local_helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "local_paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "margin_at_old_root_upper": [ + "78072058023577019965454984044224523228758899702419408235/196159429230833773869868419475239575503198607639501078528", + "1249152928377232319447279744707592371660142395238823308861/3138550867693340381917894711603833208051177722232017256448" + ], + "native_receipt_sha256": "eec3b14241430b6c9f5de3cbf0e3d45a172d8071d2dccd2b59d56a1fbac3d428", + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "nonrecursive": { + "local_routes": 4802000, + "local_scalar": 158168, + "raw_scalar_upper": 181098496 + }, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999999253/175000000000000", + "fixed_halo_explicit_metadata_branch": "13475000000001/175000000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899999997009/700000000000000", + "new_semantic_group_guard": "3/700000000000" + }, + "margins": { + "boundary_algebraic_matrix": "1480670144797884756937/490000000000000000000000", + "fused_gaussian": "1480670144793654270811/490000000000000000000000", + "global_coordinate_router": "264405383/87500000000", + "group_bit_router": "185083768186706783851/61250000000000000000000", + "group_scans": "349999999999/350000000000", + "main_transform": "1480670144097884756937/490000000000000000000000", + "microbox_face_corrections": "13475000000001/175000000000", + "polynomial_products": "699999999999/700000000000", + "sparse_union_movement": "200543170144797884756937/490000000000000000000000" + }, + "parameters": { + "a": "264405383/87500000000", + "b": "423048613/140000000000", + "beta": "699999999997/700000000000", + "bit_saving": "17/5000", + "cap_xi": "445543170144097884756937/490000000000000000000000", + "complex_uniform_saving": "1057621533/350000000000", + "d": "1/700000000000", + "epsilon": "699999999999/700000000000", + "kappa": "15108879/5000000000", + "lambda_": "199395644839/200000000000", + "lambda_prime": "697884756937/700000000000", + "layout": "1/700000000000", + "q": "2115243063/700000000000", + "r0": "1/7000000000000", + "stop": "1/700000000000", + "tested_saving": "302177581/100000000000" + }, + "strict_checks": { + "actual_bit_above_effective": "33094617/87500000000", + "actual_logarithmic_gamma_guard": "1/700000000000", + "actual_logarithmic_group_guard": "44456829856952115243063/245000000000000000000000", + "alpha_logarithm_absorption": "1/7000000000000", + "boundary_algebraic_matrix_above_kappa": "2797884756937/490000000000000000000000", + "cap_above_band": "200543170144097884756937/490000000000000000000000", + "cap_below_cell": "44456829855202115243063/490000000000000000000000", + "cap_below_phase_cell_power": "534456829855902115243063/490000000000000000000000", + "complex_above_effective": "1/700000000000", + "complex_below_one_over_32": "3951951387/140000000000", + "complex_endpoint": "1/350000000000", + "epsilon_below_one": "1/700000000000", + "epsilon_positive": "699999999999/700000000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "2793654270811/490000000000000000000000", + "gaussian_above_main": "347884756937/245000000000000000000000", + "global_coordinate_router_above_kappa": "1/175000000000", + "global_gamma_power_slack": "9/7000000000000", + "group_below_dimension": "1/350000000000", + "group_bit_router_above_kappa": "436706783851/61250000000000000000000", + "group_gauge_power_slack": "44456829856917115243063/245000000000000000000000", + "group_key_fits_record": "1/350000000000", + "group_positive": "699999999997/700000000000", + "group_scans_above_kappa": "348942378469/350000000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "645402690400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000000", + "lambda_above_sigma": "3/1400000000000", + "lambda_above_tau": "1/1400000000000", + "lambda_prime_above_lambda": "1/1400000000000", + "lambda_prime_above_leaf": "279576951387/98000000000000000000000", + "leaf_saving_above_effective": "139576951387/98000000000000000000000", + "main_transform_above_kappa": "2097884756937/490000000000000000000000", + "membership_arithmetic_fits_record": "1/700000000000", + "microbox_face_corrections_above_kappa": "3368617797309/43750000000", + "microbox_halo_volume": "55300000000003/700000000000", + "new_complex_uniform_saving_above_b": "1/700000000000", + "new_semantic_guard_with_C1_one": "1/700000000000", + "polynomial_products_above_kappa": "697884756939/700000000000", + "positive_layout_slack": "1/700000000000", + "q_below_effective": "1/700000000000", + "q_below_internal": "1/700000000000", + "q_below_leaf": "279576951387/98000000000000000000000", + "q_positive": "2115243063/700000000000", + "short_record_fallback": "139576951387/140000000000", + "source_axis_superpolynomial": "1/700000000000", + "sparse_union_movement_above_kappa": "199062500002797884756937/490000000000000000000000", + "stop_below_one": "699999999999/700000000000", + "stop_positive": "1/700000000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000000", + "union_tag_work_per_visit_fits_record": "3/700000000000" + } + }, + "paid": { + "1": 41298, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 144 + }, + "paid_calls": 64404, + "productive_fields": 10928, + "rank_mass_surplus": 752, + "raw_root_interval": [ + "302177587077/100000000000000", + "151088793539/50000000000000" + ], + "scope": "Exact changed-profile arithmetic only. Requires separately admitted changed native programs, paid transports and absolute phases. Retained compiler/native/precision/tape/analytic/recovery assumptions.", + "source_sha256": { + "research/fresh-helper-boundary/native.py": "9b55a2d3c3972148fae9d112e745d9244968166bd89bd900c938f429fc76ab29", + "research/higher-moment-strictification/verify.py": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "research/joint-helper-lattice/CONTROLLER.json": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "research/joint-helper-lattice/native_joint.py": "50869b1bcad7493e6b4cb2a4cd5d2fd9a193a5921100483fa2c3f2c999ddfd46", + "research/joint-helper-lattice/verify.py": "8eb13f77a94315f811612cb557a17edeecb6b9d9a75dfa238b112dd6520c336f", + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py": "8a0de761642d21919e969475c3f13e5d01a4bae7343c1e1f37c586d94b676a85", + "research/kappa-rebuild/architecture/mixed_target_probe.py": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "research/kappa-rebuild/bit/complex_controller_factor.py": "1de9aaf918e6a4f2f5448754c1f3c3da3b85e6257849ebd097af09859c4e5497", + "research/kappa-rebuild/bit/mixed_productive_bit.py": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e", + "research/kappa-round6-compiler-tightening-20261022/arithmetic.py": "960864e5427a1ca2c319a7b2dee292b6fe50bd5964830031e611591af10dac38", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "research/query-thinned-controllers/RESULT.json": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "research/query-thinned-controllers/controller.py": "8b462d660487b1be4940357c4c7522967b1bfaede3c02b1c66109b85acae0fd2" + }, + "status": "PASS_CHANGED_PROFILE_ARITHMETIC_NATIVE_ADMISSION_SEPARATE", + "strictification": { + "alpha": { + "lower": "0.999999999936687383304469699479", + "upper": "0.999999999936687383304469699480" + }, + "cutoff": 20, + "delta": { + "lower": "0.958285308639504859158849914083", + "upper": "0.958285308639504859158849914084" + }, + "floor": 21, + "gamma": { + "lower": "0.956217509753795293454516855483", + "upper": "0.956217509753795293454516855484" + }, + "normalized_paid_upper": "104857600097656251/104857601073741824", + "power": 1024, + "tail_offset": "1/5", + "tested": "302177581/100000000000" + }, + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5868 + } +} diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/4610review-pinned.txt b/research/owned-relation-independent-validation/engines/cost/frozen/4610review-pinned.txt new file mode 100644 index 0000000000..bf5ff049da --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/4610review-pinned.txt @@ -0,0 +1,137 @@ +# PR4610: conditional admission through the PR5241 audit + +**Pass under the unchanged five selected framework assumptions:** +κ = 15108879/5000000000 = **0.0030217758**. +This is Cao Yifan / intqwq's construction at +`20bb93cd990d2ff683e4d0fc56b87a42cd5d3296`, independently audited in +Chris R / Clear1nsight's PR5241 at +`13efb5fc5f3b7c14ec2cfa181dd9eb6480972cf2`. +Maintainer review: Douglas Colkitt's OpenAI assistant, with substantial AI +assistance. Apache-2.0. No independent human or end-to-end formal proof is claimed. + +## Changed construction and exact coverage + +The accepted object is the frozen round3 native word and round6 compiler point, +not every exploratory claim or intermediate result in PR4610. Relative to +selected PR4470, 20 native binary maps and 26 helper boundary interfaces change; +all twelve shared prelude maps and the main endpoints remain fixed. The complete +local paid profile becomes `{1:2201, 2:412, 3:510, 4:127, 5:40, 8:8}`. +The productive helper profile remains `{4:28, 7:7, 8:47, 9:326}`. + +The fresh audit passes all eleven required stages. It checks 480 signed warp +events, 180 signed warp classes in both orientations, all 408 helper inputs +through 34 oriented endpoint classes, and all 5,710 oriented paid classes +covering 6,596 local event instances. No earlier receipt's PASS flag substitutes +for phase correctness. The frozen paid catalogue is candidate data; its +compiler is not imported by the acceptance path. + +The reviewer inspected the independent Clifford evaluation and phase test: +equality on the 18 Pauli generators identifies the operator up to a scalar; +equality on an exactly normalized nonzero state fixes that scalar. All factors +are validated monomial/Clifford operations, so this is a complete finite-operator +argument, not a sample of input vectors. Phase-only mutations preserve the +tableau and are nevertheless rejected. Positive recursive ranks are checked +against the actual nested bases, including all eight owned rank-eight calls. + +The chronological symbolic interpreter tracks all 632 independent persistent +inputs, current frames, inverse orientations and the owned C0. It verifies a +free-group identity on arbitrary dirty inputs, with each helper restored and +only the owned stream erased. Left multiplication on reduced free words is +injective; its dictionary update does not silently discard colliding words. +Main chart and scalar opcode/coefficient sequences are compared to retained +source. No arbitrary borrowed input is treated as initialized workspace. + +## Uniform lift and physical specialization + +We reviewed PROOF.md and SPECIALIZATION.md against the pinned PR4359, PR4416 +and PR4470 reviews and the general-frame/compact-movement notes. The retained +contract already permits arbitrary fixed nested binary frames with independent +two-sided monomial adapters. The new recipes lie in that class: invertible +nine-bit affine maps and Z4 quadratic phases. Elimination, translations and +phase operations need at most 171 primitive records per monomial, hence at +most 342 for two adapters, within the retained 1000-record raw allowance. +This counts retained physical primitive records, not constant literal tape +steps at arbitrary column multiplicity. + +Tensor power is applied to products and individual operator factors. The scalar +ADD program instead lifts by evaluation of its proved free-group identity. +Tensor power is never distributed over a sum. Absolute phase is repeated once +per column. Algebraic equality holds at every positive multiplicity; the +physical tariff retains its source hypotheses on complete slots, restored +controls, record fibers and the f,p domain. Spectators and independent ownership +remain explicit. Thus the changed catalogue does not add a candidate-specific +oracle to the old assumptions. + +Expanded template counts, owned banks, routing and coefficient envelopes must +be substituted into the retained precision/stock formulas. The new enormous +compiler does not inherit an old numerical template-size cap. This remains a +conditional application of the selected physical and analytic framework; +finite computations do not independently prove its fixed-tape, precision or +integer-recovery theorems. + +## Invoice, completion and outer transfer + +The unchanged p16/query-thinned controller is source-identical to the selected +review. The audit independently reconstructs its events and boundary programs; +the previously reviewed Laurent endpoint and stage-zero commutation argument +are reused with unchanged main operators. Eighteen full calls, fifteen thin +queries, fifteen idle windows, all main/helper targets and owned centers give +**64,404 paid calls and 10,928 productive fields**. Target and paid rank masses +remain 239,886 and 239,134, giving surplus 752. Compared with PR4470 the whole +paid histogram changes by `{-648 H1, +432 H2, +288 H3, -360 H4, +72 H5}`: +216 fewer calls, without removing rank mass or reusing output credit. + +Two independently implemented directed interval engines check the freshly +derived invoice. The raw crossing is bracketed by +(.00302177587077, .00302177587078). The tested saving .00302177581 exceeds the +claim .0030217758. The old selected invoice fails at the new claim; this is a +changed-construction gain, not decimal refinement of the old crossing. + +At tensor power 1024, cutoff 20, completion floor 21 and tail shift 1/5, +alpha < 1-10^-11 and both charged tail ratios are below 97/100. The complete +bound `1/(1+1024*10^-11)+4/2^32 < 1` is checked exactly. The old 10^-9 reserve +would fail here and is explicitly rejected. The reviewed product/completion +and splitting arguments apply with these new constants and actual profiles. +The compiler's sufficient integer test gives H=38,569,300,000,000,000 and +N=2^H. This is a finite specified construction; no expanded word is materialized. + +The ordinary BIT interface is exactly equal to the selected source and admits +.0034, above the required effective saving. Its already reviewed supplier and +conversion are reused, not established anew by the complex checks. All nine +outer cost rows, 54 strict predicates and four functional predicates pass. +The minimum recorded strict predicate is 1/7,000,000,000,000. Both arithmetic +engines retain the charged targets, owned centers and compiler tails. + +## Execution, provenance and invalidation + +COLD-REPLAY.json and BOUNDED-RUN.json record the complete serial CPython 3.12 +run: 137.25 seconds and 184,928 KiB peak sampled descendant RSS, below the +660-second / 1 GiB guard. All 82 committed-byte bindings, canonical source +ancestry and registered metadata/pins checks passed. No Lean, Docker, hosted +Linux run or historical all-suite replay was performed. + +The current selected metadata is changing, but PR5241 authenticates the exact +old PR4470 record as its baseline. The new reproduction entrypoint therefore +exports that historical record from `certificates/checkpoints/frontier4470.json` +to its original path, explicitly. The research package and scientific source +bytes remain unchanged. Canonical Git objects are used only for ancestry and +stored-blob checks; the mathematical code reads its closed exported input set. +The source manifest also retains the prior reviewed foundation closure. + +Changes to frames, native phases, scalar chronology, helper endpoints, +controller, actual ownership, paid completion, compiler parameters, source +bytes or physical/outer contracts invalidate the affected review. Optional +optimizers, claimed global optima and later scalar-compression variants are +outside this acceptance. The result remains conditional on precisely the five +PR4470 assumption records, copied without weakening or deletion. + +## Credit + +Cao Yifan / intqwq: changed construction and compiler point (PR4610). +Chris R / Clear1nsight: complete independent admission package (PR5241). +Cinna Davis /1337isnot1337: joint-helper, query-thinned controller and preceding +construction chain. zxv: productive-helper native/compiler machinery. +Jacob Alan Sussman: mixed-target recursion. Dugongue: transported frames and +physical interfaces. Mihir Srivastava, Ryanson Jonathan and Mark / Matarener: +retained independent checks and adversarial questions. All BIT, geometry, +Clifford, precision and analytic contributors retain their earlier credit. diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/4610validation-pinned.txt b/research/owned-relation-independent-validation/engines/cost/frozen/4610validation-pinned.txt new file mode 100644 index 0000000000..98fa64f279 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/4610validation-pinned.txt @@ -0,0 +1,71 @@ +{ + "status": "PASS_CONDITIONAL_CHANGED_CONSTRUCTION_REVIEW", + "construction_pr": 4610, + "construction_head": "20bb93cd990d2ff683e4d0fc56b87a42cd5d3296", + "audit_pr": 5241, + "audit_head": "13efb5fc5f3b7c14ec2cfa181dd9eb6480972cf2", + "tested_repository_commit": "7c472563474e60185e6ca101a17622133d047e56", + "date": "2026-10-23", + "kappa": "15108879/5000000000", + "cold_replay": "COLD-REPLAY.json", + "cold_replay_sha256": "a5124421d0281bcc36ac08d3c1aae6f8768c77db92977ab9f31471ed33b65511", + "bounded_run": { + "command": [ + "/usr/local/bin/python3.12", + "-B", + "/Users/colkitt/sith/toys/math/integerMult-review4610-20261023/research/final4610-independent-admission/verify.py", + "--repo", + "/Users/colkitt/sith/toys/math/integerMult-review4610-20261023", + "--receipt", + "/tmp/final4610-maintainer-20261023/COLD-REPLAY.json" + ], + "exit": 0, + "resource_stop": null, + "timeout_seconds": 660, + "seconds": 137.25, + "peak_sampled_rss_kib": 184928, + "log": "cold.log", + "log_sha256": "67f309119bbe03a48060e1e3904e1f64e9082a69a7c7ff4ae9fe08644f2f1011" + }, + "source_preflight": "82 committed-byte bindings and canonical source ancestry passed; registered package metadata/pins passed.", + "stages": { + "all_helpers": "PASS_ALL408_HELPER_RELATIVE_OPERATORS_AND_ABSOLUTE_PHASES", + "arithmetic": "PASS_INDEPENDENT_COMPLETE_DIRECTED_MOMENTS_AND_OUTER", + "compiler": "PASS_INDEPENDENT_EXACT_FINITE_COMPILER_AND_58_OUTER", + "frame": "PASS_ALL480_SIGNED_WARP_EVENTS", + "helpers": "PASS_SCOPED_HELPER_CONTRACTS_UNIFORM_PREMISES_REMAIN", + "invoice": "PASS_COMPLETE_LITERAL_P16_INVOICE", + "lift": "PASS_SCOPED_TENSOR_BOOKKEEPING_CONTROLS", + "lineage": "PASS_EXACT_HELPER_PHASE_LINEAGE_MAP", + "native": "PASS_INDEPENDENT_ALL_180_NATIVE_PHASE_CLASSES", + "paid": "PASS_ALL_PAID_PAIR_PHASES_BOTH_ACTUAL_ORIENTATIONS", + "specialization": "PASS_EXACT_CATALOGUE_SPECIALIZATION_SCHEMA_AND_RAW_FINITE_TARIFF" + }, + "inherited_assumptions": [ + { + "id": "native_all_columns", + "statement": "Retained native operators, phase conventions, spectators and whole-job adapters work at every positive column multiplicity." + }, + { + "id": "owned_erasure", + "statement": "Owned streams and suspended centers obey the retained allocation, erasure and ownership contracts." + }, + { + "id": "compiler", + "statement": "The finite mixed-target compiler and chronological product, completion and splitting satisfy the retained uniform closure contract." + }, + { + "id": "precision_tape", + "statement": "Retained fixed-tape movement and precision/storage prescriptions apply to the new fixed finite template." + }, + { + "id": "analytic_recovery", + "statement": "Analytic decomposition, fine-prime avoidance and exact integer recovery follow the retained upstream/outer framework." + } + ], + "independent_human_review": false, + "Lean_run": false, + "uniform_word_materialized": false, + "hosted_ci": "Not run in this review; no hosted pass claimed.", + "scope": "Fresh complete PR5241 audit replay plus maintainer code/proof review. Source-identical PR4470 controller, ordinary BIT and PR4359/4416 framework coverage reused explicitly, not rerun." +} diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/ACTUAL-WORD.json.gz b/research/owned-relation-independent-validation/engines/cost/frozen/ACTUAL-WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..46d929df83817b85a5387bcdb9745e0627d6366e GIT binary patch literal 207673 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%0An&u`Csb3RV8)-*z=ghBCmu|` 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%0A}m#BC$*!P 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

2VZSP}KItK@?5y|8|LhfHIf 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

$ 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 x`NPMb-+jFN^26gF|LMc;zrXwN{ih%Q`2F1= 2`; +* `W` productive arrays, each receiving the **full** rank-`N` transform; +* `P` rank-one paid children; +* `U` copies of the mixed unit in the completely expanded finite word; +* at most `O=U` owned centers, conservatively one per mixed-unit instance. + +For every rational `z` strictly above the mixed root and below one, the +constructive count argument provides an `N` with `P < W*N^z`. +“Finite” here means fixed before the eventual multiplication input grows. +It can be astronomically large. Neither this note nor the receipts claim +to have materialized the winning near-threshold instance. The later +`../controller/EXPLICIT-TEMPLATE-BOUNDS.md` strengthens the existence +argument to the specified complex rank `N=2^276540184361`, with uniform +saving `0.002304`; no search for a successful rank is left unperformed. +The integer recursion defines its exact finite `W,P,U`, and the constants +below are computable functions of that finite result. + +The fully materialized, depth-zero `N=57` example has `W=2242`, `P=127570`, +and `U=1`. It is a useful independent check that complementary source jobs +are really paid: `57*2242-127570=224`. This small example is not claimed to +attain the limiting mixed exponent. + +## 2. Every column count and every complete spectator field + +The local logical identities were replayed in a free noncommuting operator +word algebra. Apart from rational scalar arithmetic, the checker uses only +composition and cancellation of an operator with its recorded inverse. +For any positive integer `f`, substitute the `f`-column physical operator +for each such generator. This extends to an algebra homomorphism on the +free word algebra and preserves the checked identities. + +This is not the false assertion that tensor power is additive on arbitrary +matrix sums. The role-level scalar word is unchanged. Each physical address +generator is replaced by its column lift, while its formal products and +linear combinations are evaluated on the same independent role arrays. + +A rank-zero native monomial has the form + +``` +|x> -> i^(a+q(x)) |M*x+b>, +``` + +with invertible binary `M` and a permitted quadratic phase `q`. Its column +lift has blockwise address map `M`, translation `b` in every column, and +phase `a*f + sum_j q(x_j)` modulo four. This explicitly retains the absolute +phase. A fixed coordinate matcher in the precompiler becomes the same +fixed permutation of `f`-axis blocks. All untouched axes remain complete +spectator fields. A rank-one leaf becomes the standard rank-`f` child. + +The retained exact Clifford normal form supplies the monomial factors +around each child. The independent p3 audit checks the whole main boundary, +including the output translations required by negative powers of `C_q`. +The fixed THREE/base selection is valid for every column count: THREE/base +and THREE/extra have identical entrance and exit operators; their difference +is an internal frame and its associated warps. No layer-dependent selector +is required for the endpoint contract. + +For any integer input width `e=N*f+r`, first apply the `r=2`, `B=P+E`, and `E>=64`, + +``` +2*B*(N-1) >= P+E, +2*B*f+P*f+E <= 2*B*N*f <= 2*B*e. +``` + +Induction gives `A(e)<=2B e`. Completed disjoint selected-axis pieces have +total width at most `d`. The retained prefix kernels, outer phases and +normalization add at most `18d`, giving + +``` +A_layer <= (2*B+18)*d < C0*d. +``` + +Every calculation remains on one fixed fine grid. A child is never rounded, +compressed, or re-encoded at return. The change is to the proof's bound on a +completed value, not to its stored representation. Other fields remain +parked while the child executes. This is why the linear semantic bound +survives a huge scalar word and why the older pathwise `C1>1` estimate is +unnecessary. + +The stopping rule can be any fixed rational `0=2N`, every internal call has the required positive `f`; +the completed-leaf estimate remains `8e` at the stopping leaves. No old +numerical cutoff is carried over. + +### An effective threshold, including enormous constants + +Suppose `d<=c*p^epsilon`, with fixed `c>=1` and rational +`epsilon=a/b` in `(0,1)`. Let `L` be the binary bit length of +`4*C0*ceil(c)` and choose + +``` +t = max(4, ceil(b*L/(b-a))), p0 = 2^t. +``` + +For all `p>=p0`, `p^(1-epsilon)>4*C0*c`, so the integer guard +`Delta=C0*d` is at most `p/4`. Signed components with `p+Delta` fractional +bits and `Delta+3` magnitude/sign bits have width + +``` +p+2*Delta+3 <= 2p. +``` + +The audit emits `p0` as a compressed power of two. It does not try to +allocate that many bits. This construction proves the eventual `O(p)` word +bound for the new finite template, including the current outer choice +`epsilon=99999/100000`. Huge fixed constants change `p0`, not `C1` or the +power in the final exponent inequalities. + +## 5. Productive stock, owned storage, and native tape closure + +For the ordinary uniform complex word, let + +``` +D(e)=0 if e=W^D(d)` for `K>=1`. Pad complete rows once to the next multiple +of `W^D(d)`. The padding factor is below two. Every descendant then has +exactly `1/W` of its parent's productive volume and enough divisibility for +its remaining depth, with complete active, control and spectator fields. +All-row endpoint correctness restores appended zero rows to zero. + +Owned storage contributes no factor to productive output credit. A safe +choice is one full center field per finite mixed-unit instance, namely +`O=U`. At an ordinary recursion node each such field has the same shape as +one productive role stream, of volume `V/W`. Initialize, retain and clear +it as its actual word prescribes. If simultaneously suspended units keep +live centers, they receive distinct banks. Reusing one bank per recursion +depth would not suffice. Owned-space scans and parking cost fixed multiples +of volume; paid calls on those banks are already in `P`. + +The integer audit checks row divisibility and one-time padding at several +floor-depth boundaries. It also gives an explicit sufficient threshold +for `q00. +``` + +For a direct proof, both `(1/9)^t > 1/9` and `(8/9)^t > 8/9`; multiply their +sum by `9^t`. The improvement is strict throughout the required range. + +The backward word has 158,214 real scalar operations under the source macro +allowance, exactly 46 more than its source. Its maximum formal prefix L1 norm +is 169, with maximum denominator 64; both equal the source bounds. The forward +bounds remain 457 and 32. One extra physical private slot holds C1. L230 uses +an existing slot. The route bound also charges two routes for each of the two +new owned lifetimes. The local scalar-plus-route bound stays below 10^7, and +the complete raw nonrecursive bound stays **181,098,496 < 10^9**. Preparation, +COPY, CLEAR and storage therefore do not introduce an unpaid recursive cost. + +Two rational interval engines check the complete moment. Its unique crossing +in `0 < kappa < 1` lies in +**(0.00302238736347, 0.00302238736348)**. The verifier proves the moment decreases +on `[0,0.05]` and remains negative on `[0.05,1]`. This is a ceiling for this +fixed complete profile, not an optimum over circuits or helper relations. +The claimed kappa leaves more than **0.00000003736347** raw headroom. + +The separately tested saving is 0.00302236. The paid/target ratio is below +`0.999999971483293515393313955730`, with reserve `1e-9`. Both charged tails are +below `0.97`. The source power 1024, cutoff 20, floor 21, tail offset 1/5, +complement factor 63/64 and logarithm power 1000 still pass. The compiler gap +is `1/700000000`, with `j=44836`, `H=31385200000000` and `N=2^31385200000000`. +The exact integer test `(H+1)^1000 < 2^44836` passes; the preceding grid integer +fails. The uniform complex saving is `2115651/700000000`. All 54 strict outer +predicates and four functional predicates pass, using the retained ordinary +BIT saving 0.0034. + +## Verification and reproduction + +Use Python 3.12 or 3.14, with the standard library only. From the repository root: + +```sh +python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023 --check-only +python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023 +``` + +The registered commands run normal and optimized Python. The direct command, +also used for a Git-free export, is: + +```sh +python3 -B research/kappa-owned-relation-20261023/verify.py +python3 -O -B research/kappa-owned-relation-20261023/verify.py +``` + +Each prints status +`PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION`. +The verifier reconstructs the word and compares its bytes and exact result with +the published artifacts. `--write` is a separate authoring command. It changes +only this package's word and result after all checks pass. + +Fresh checks cover both source words, both candidate words, every independent +entry column and owned return, the two unrestricted source identities, retained +phase bindings, the p16 rational Laurent factorization, both scalar boundary +programs, two complete invoice counts, two rational interval engines, the fixed +profile ceiling, completion, compiler, BIT conversion and all outer predicates. +The emitted word replaces the old single `canonical.local_profile` metadata +field with explicit `paid_profiles` for the two directions. + +Seven native controls reject a wrong relation sign, omitted input clear, wrong +snapshot, wrong zero frame, wrong paid rank, wrong copy gauge, and omitted +output clear. Five cost/outer controls reject the lost helper's output credit, +old BIT stock, closed uniform gap, unfunded endpoint and closed epsilon. + +Normal and optimized registered replays passed on CPython 3.12.14. The direct +author check also passed on CPython 3.14. Source metadata and pins passed. +The optional full-history preflight is not claimed in the shallow checkout. +The publication handoff records export and committed-byte checks. + +The full source phase lowering, BIT native replay, Lean, Docker, physical tape +execution, numerical precision execution, analytic decomposition and integer +recovery are not rerun here. The complete bound retains those predecessor +contracts, including permitted owned erasure, whole-job normalizers, mixed +productive-target recursion and all-size closure. The expanded compiled word +is specified by a finite algorithm, not materialized. This is a conditional +construction with exact finite evidence, not an unconditional multiplication +theorem, a practical timing result or independent human acceptance. + +## Credit + +Prepared by Ali Romman with substantial OpenAI Codex assistance. Apache-2.0. +Cao Yifan's [PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610) +supplies the exact source word, phase evidence and previous compiler value. +Cinna Davis's [PR #4470](https://github.com/CrocSwap/integer-mult-bounds/pull/4470) +supplies the p16 controller and helper-interface lineage. The source code keeps +credit for Dugongue's transported frames, zxv's native and finite-compiler +work, Jacob Alan Sussman's mixed-target recursion and their predecessors. +The [pricing source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-interface-round2-20261022/price_profile.py) +and [literal native source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-rebuild/complex/native_extensions.py) +are pinned as provenance for the adapted checks. + +zxv's [PR #5283](https://github.com/CrocSwap/integer-mult-bounds/pull/5283) +supplies the related cache contract and the explicit handoff to find actual +matching rows and their lifetimes. Its standalone cache example is not part of +this word. The new contribution is the five-helper relation, its actual cache +and zero identities, the full owned-field replacement and the complete positive +bill. No priority is claimed for the general cache or paid-history ideas. + +## Open next questions + +Independent review should first check the three source rows and the physical +COPY/zero argument above, then the retained all-size and phase premises. +A later construction could test a different helper relation, but it must claim +a disjoint scope and pay every lost target and owned field. This package does +not classify such relations. [TASK.json](TASK.json) records the first steps, +relevance and blockers for both questions. diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/RESULT.json b/research/owned-relation-independent-validation/engines/cost/frozen/RESULT.json new file mode 100644 index 0000000000..27b4e54708 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/RESULT.json @@ -0,0 +1,373 @@ +{ + "arithmetic": { + "compiler": { + "H": 31385200000000, + "N": "2^31385200000000", + "eta": { + "lower": "0.000000203927056311365991628189", + "upper": "0.000000203927056311365991628190" + }, + "gap": "1/700000000", + "integer_test_exponent": 44836, + "logarithm_power": 1000, + "theta": "63/64", + "uniform_saving": "2115651/700000000", + "word_materialized": false + }, + "fixed_profile_ceiling": { + "decreasing_through": "1/20", + "derivative_upper": { + "lower": "-195778.630038840116414999953237565269", + "upper": "-195778.630038840116414999953237565268" + }, + "remaining_interval_moment_upper": { + "lower": "-6836.549542075249598033582799619360", + "upper": "-6836.549542075249598033582799619359" + } + }, + "full_backward": 16, + "full_forward": 2, + "gain_over_PR4610": "2871/5000000000", + "kappa": "60447/20000000", + "kappa_decimal": ".00302235", + "margin_at_previous_kappa": { + "lower": "0.151161494385402651700356241377", + "upper": "0.151161494385402651700356241378" + }, + "margin_at_previous_root_upper": { + "lower": "0.151143999513185007311808491175", + "upper": "0.151143999513185007311808491176" + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unearned_helper_credit": "Rejected by the independent complete census", + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "nonrecursive": { + "additional_private_slots": 1, + "local_routes": 4806000, + "local_scalar": 158214, + "owned_slots_backward": 3, + "raw_budget": 1000000000, + "raw_scalar_upper": 181098496 + }, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999253/175000000000", + "fixed_halo_explicit_metadata_branch": "13475000001/175000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899997009/700000000000", + "new_semantic_group_guard": "3/700000000" + }, + "margins": { + "boundary_algebraic_matrix": "23139910904443/7656250000000000", + "fused_gaussian": "23139910838329/7656250000000000", + "global_coordinate_router": "2115649/700000000", + "group_bit_router": "1480954993653053/490000000000000000", + "group_scans": "349999999/350000000", + "main_transform": "23139899966943/7656250000000000", + "microbox_face_corrections": "13475000001/175000000", + "polynomial_products": "699999999/700000000", + "sparse_union_movement": "3133491473404443/7656250000000000" + }, + "parameters": { + "a": "2115649/700000000", + "b": "42313/14000000", + "beta": "699999997/700000000", + "bit_saving": "17/5000", + "cap_xi": "6961616462466943/7656250000000000", + "complex_uniform_saving": "2115651/700000000", + "d": "1/700000000", + "epsilon": "699999999/700000000", + "kappa": "60447/20000000", + "lambda_": "199395529/200000000", + "lambda_prime": "10904443/10937500", + "layout": "1/700000000", + "q": "33057/10937500", + "r0": "1/7000000000", + "stop": "1/700000000", + "tested_saving": "75559/25000000" + }, + "strict_checks": { + "actual_bit_above_effective": "264351/700000000", + "actual_logarithmic_gamma_guard": "1/700000000", + "actual_logarithmic_group_guard": "694633553939307/3828125000000000", + "alpha_logarithm_absorption": "1/7000000000", + "boundary_algebraic_matrix_above_kappa": "43716943/7656250000000000", + "cap_above_band": "3133491462466943/7656250000000000", + "cap_below_cell": "694633526595557/7656250000000000", + "cap_below_phase_cell_power": "8350883537533057/7656250000000000", + "complex_above_effective": "1/700000000", + "complex_below_one_over_32": "395187/14000000", + "complex_endpoint": "1/350000000", + "epsilon_below_one": "1/700000000", + "epsilon_positive": "699999999/700000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "43650829/7656250000000000", + "gaussian_above_main": "5435693/3828125000000000", + "global_coordinate_router_above_kappa": "1/175000000", + "global_gamma_power_slack": "9/7000000000", + "group_below_dimension": "1/350000000", + "group_bit_router_above_kappa": "3493653053/490000000000000000", + "group_gauge_power_slack": "43414597087027/239257812500000", + "group_key_fits_record": "1/350000000", + "group_positive": "699999997/700000000", + "group_scans_above_kappa": "697884353/700000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "645689790400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000", + "lambda_above_sigma": "3/1400000000", + "lambda_above_tau": "1/1400000000", + "lambda_prime_above_lambda": "1/1400000000", + "lambda_prime_above_leaf": "27957687/9800000000000000", + "leaf_saving_above_effective": "13957687/9800000000000000", + "main_transform_above_kappa": "32779443/7656250000000000", + "membership_arithmetic_fits_record": "1/700000000", + "microbox_face_corrections_above_kappa": "53897884359/700000000", + "microbox_halo_volume": "55300000003/700000000", + "new_complex_uniform_saving_above_b": "1/700000000", + "new_semantic_guard_with_C1_one": "1/700000000", + "polynomial_products_above_kappa": "348942177/350000000", + "positive_layout_slack": "1/700000000", + "q_below_effective": "1/700000000", + "q_below_internal": "1/700000000", + "q_below_leaf": "27957687/9800000000000000", + "q_positive": "33057/10937500", + "short_record_fallback": "13957687/14000000", + "source_axis_superpolynomial": "1/700000000", + "sparse_union_movement_above_kappa": "3110351606216943/7656250000000000", + "stop_below_one": "699999999/700000000", + "stop_positive": "1/700000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000", + "union_tag_work_per_visit_fits_record": "3/700000000" + } + }, + "paid": { + "1": 41282, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 128 + }, + "paid_calls": 64372, + "productive_fields": 10912, + "query_shears": 15, + "rank_mass_surplus": 752, + "raw_headroom": [ + "3736347/100000000000000", + "934087/25000000000000" + ], + "raw_root_interval": [ + "302238736347/100000000000000", + "75559684087/25000000000000" + ], + "strictification": { + "alpha": { + "lower": "0.999999971483293515393313955729", + "upper": "0.999999971483293515393313955730" + }, + "cutoff": 20, + "delta": { + "lower": "0.957459689758527661921334851512", + "upper": "0.957459689758527661921334851513" + }, + "floor": 21, + "gamma": { + "lower": "0.956310980726438847618396606911", + "upper": "0.956310980726438847618396606912" + }, + "normalized_paid_upper": "2097152001953127/2097154147483648", + "power": 1024, + "reserve": "1/1000000000", + "tail_offset": "1/5", + "tested": "75559/25000000" + }, + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5852 + } + }, + "candidate_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 325 + }, + "independent_owned_entry_columns": 3, + "independent_persistent_columns": 631, + "max_denominator": 64, + "max_formal_prefix_l1": "169", + "owned_outputs_zero": true, + "paid": { + "1": 2200, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 7 + }, + "real_scalar_allowance": 158214, + "zero_identities": 1 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "independent_source_identities": { + "center_minus_snapshot": "Delta/4", + "center_replaced": 11332, + "copy_coefficient": "1", + "relation": { + "230": 1, + "324": -1, + "326": 1, + "328": 1, + "333": -1 + }, + "snapshot_after": 11205, + "snapshot_terms_before_substitution": 61, + "source_event_indices_are_zero_based": true, + "zero_identity_at": 15584, + "zero_site_row": "-Delta/4" + }, + "native_negative_controls": { + "missing_owned_input_clear": "Every independent main/helper endpoint: 0", + "uncleared_owned_output": "Every owned entry column is erased at return", + "under_or_overstated_paid_rank": "Exact paid rank and frame", + "wrong_copy_gauge": "Exact scalar destination frame", + "wrong_relation_sign": "Every independent main/helper endpoint: 0", + "wrong_snapshot_source": "Zero identity requires an identically zero full row", + "wrong_zero_input_frame": "Zero identity requires an identically zero full row" + }, + "phase_inheritance": { + "absolute_phase_receipt_reused": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "all_retained_paid_events_and_warps_from_source": true, + "new_gaussian_operators": 0, + "new_native_maps": 0, + "new_operations": "Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.", + "source_amplitudes_and_phase_lowering_freshly_replayed": false + }, + "scope": "Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.", + "source_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 64, + "max_formal_prefix_l1": "169", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158168, + "zero_identities": 0 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "source_payload_sha256": "cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd", + "status": "PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION", + "word_payload_sha256": "645b32ff67dfd49bbe8c2287d21f12a66a775d3c5e187db6f813e17e9f8fae35" +} diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/SOURCES.json b/research/owned-relation-independent-validation/engines/cost/frozen/SOURCES.json new file mode 100644 index 0000000000..9854abbb4f --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/SOURCES.json @@ -0,0 +1,90 @@ +{ + "schema_version": 1, + "base_commit": "7c472563474e60185e6ca101a17622133d047e56", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "c35482cd9035843b15a634cc8276a7e1e40e8395", + "sha256": "6fe0a099b89aa2aed796a13c3a21dafc63f3388ebf397464e44e0451893b9375" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" + }, + { + "path": "research/free-word-tensor-lift-audit/PROOF.md", + "usage": "provenance", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e", + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459" + }, + { + "path": "research/higher-moment-strictification/verify.py", + "usage": "input", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326" + }, + { + "path": "research/joint-helper-lattice/CONTROLLER.json", + "usage": "input", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + { + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "usage": "input", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7" + }, + { + "path": "research/kappa-interface-round2-20261022/price_profile.py", + "usage": "provenance", + "git_blob": "1d93e43d1cb888d128c2faa2be83a96d85b84295", + "sha256": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb" + }, + { + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "usage": "input", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "research/kappa-rebuild/complex/native_extensions.py", + "usage": "provenance", + "git_blob": "7f84894efc309546a903d314c7ac1473e7f594a8", + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3" + }, + { + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "usage": "input", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + }, + { + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "usage": "input", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b" + }, + { + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "usage": "input", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de" + }, + { + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "usage": "input", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "research/query-thinned-controllers/RESULT.json", + "usage": "input", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f" + } + ] +} diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/SPECIALIZATION.md b/research/owned-relation-independent-validation/engines/cost/frozen/SPECIALIZATION.md new file mode 100644 index 0000000000..7ee84b3089 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/SPECIALIZATION.md @@ -0,0 +1,130 @@ +# P1: specialize the selected physical grammar to final #4610 + +This note proves a conditional **specialization**, not a new physical primitive theorem. Let H_selected denote precisely the native normal-form, compact movement/repair, scalar/owned-storage, completed-call, fixed-tape and outer hypotheses retained by selected #4470 through its reviewed #4359/#4416 lineage. Under H_selected, the actual final #4610 catalogue is an instance of that same physical grammar, with newly counted fixed constants. The proof does not introduce a separate assumption that the new recipes work. + +Candidate #4610 is Cao Yifan/intqwq's existing construction, head `20bb93cd990d2ff683e4d0fc56b87a42cd5d3296`, final local-word payload `cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`. Pinned canonical source is `ec2780e8aeb1c88acaf5e9e470ef8c68e7fbbb6c`. Selected #4470 remains .00302015; this note does not modify selection or claim construction/gain priority. Exact source bytes, including the following premise texts, are bound in `SOURCES.json`. + +## 1. The selected premise already quantifies over the required class + +The premises used here are the following statements in the selected source closure, with their original physical qualifications retained: + +1. `notes/general-clifford-frames.tex`, “Exact representatives and nested children”: for an arbitrary binary subspace U and deterministic invertible basis extension G, the exact Gaussian-dyadic K_G and its conjugate by F have rank zero and are fixed binary address permutations with unit quadratic phases. For **every** nested U subset V, the exact transition is two rank-zero adapters around a positive coordinate C child. Exact phases and finite movement/scalars are charged. The statement is not restricted to the selected word's list of old frame labels. +2. `notes/compact-control-movement.tex`, “Compact-control selected-bit addition” and “Application to a fixed binary change of basis”: either ordering of two complete slots admits exact selected-bit row addition with restored arbitrary temporary fields; a fixed binary basis change is a fixed number of such additions. The fixed-tape bound is `O(V*((e*log p)^tau+1))`, including repair and descriptor work, under the stated complete-field reservations and record-size hypotheses. Constants and cutoffs are uniform within each fixed parameter family. +3. Selected #4359 `PROOF-REVIEW.md` section2: free-word evaluation allows arbitrary positive column multiplicity by substituting lifted generators, separately tensor-lifting exact paid/helper factorizations. Absolute monomial phase is `a*f+sum q(x_j)`. Helpers are normalized only after their autonomous completed endpoint. Section3 explicitly permits fixed template matrices/matchers to change dimensions/counts/constants while retaining the same movement exponent and tape uniformity. Section4 separately pays address permutations and unit phases and replaces semantic precision constants. +4. Selected #4416 `PROOF-REVIEW.md` section2: exact whole-job normal forms use independent **two-sided** recorded factors. They need not be an inverse pair. Canonicalize the complete job, place its axes by a charged coordinate matcher, execute the child, and restore the prescribed adapters before resuming its parent. Distinct physical owners and separate live centers are preserved. +5. Selected #4470 `PROOF-REVIEW.md` sections1–3 applies these rules to new actual helper normalizers, paid transports, p16/query/idle events and their new finite scalar/route/owner/precision constants. The retained conditions include all-column implementation, whole-job adapters, owned erasure, fixed-tape movement, precision and outer hypotheses. + +Consequently the permitted class is generic fixed finite Gaussian-dyadic monomial/positive-child programs with the stated arbitrary-owner and spectator ABI. It is not the stronger assertion that an arbitrary RAM gather or arbitrary address function is cheap. The reduction below uses only the selected binary row-addition/ordered-movement operations, finite unit phases and the same scalar/child/owned alphabet. + +## 2. A constructive grammar for every actual monomial + +Use the source's exact composition convention. A record m has invertible binary matrix A of size9, affine offset b, constant a modulo4, linear coefficients alpha_i modulo4 and symmetric binary quadratic matrix Q, with `alpha_i mod2=Q_ii`. On a basis address x it acts as + +``` +|x> -> i^(a+q(x)) |A*x xor b>, +q(x) = sum_i alpha_i*x_i + 2*sum_(i A*x_j xor b for every j, +phase = a*f + sum_(j=1..f) q(x_j) (mod4). +``` + +Apply the finite row-addition list to the corresponding pair of complete f-axis slots, and use the pointwise residue above. Each selected slot is a full range; arbitrary intervening, preceding and following spectator fields remain present. The temporary complete compact fields are returned by each addition. Thus the lift is exactly m tensor-powered f, acting as identity on the other address fields. It uses one fixed list of primitive **types/operations**, rather than f separately allocated tapes. Its per-record descriptor arithmetic is polynomial in the same selected address bound, and the number of work tapes stays fixed for the template. + +For a recorded positive-rank recipe, source equality is the ordered product `right.then(C_r).then(left)`. Tensoring this product gives `right_f.then(C_(r*f)).then(left_f)` after the fixed coordinate reordering. This is one ordinary positive rank-r*f child on the actual owner's full stream, with its input and output monomials independently retained. Inverse orientation and Pauli corrections are included by the actual signed recipes. No identity distributes a tensor power over a matrix sum. + +For the scalar word itself, use selected #4359's free-word substitution theorem: replace each warp generator by its f-column lift while leaving ADD/SCALE coefficients and chronology unchanged. This is an algebra homomorphism from the noncommuting free-word algebra; hence the already checked arbitrary-input word identity survives. The scalar program is not itself tensor-powered. Keeping a single constant phase a instead of a*f would violate the lift; a negative control explicitly distinguishes that mutation at f=2. + +The ideal algebraic lift holds for every positive f. Its physical tariff applies only in the selected source domain: f<=p, A=O(p), K/log p tending to infinity, and a superpolynomial record fiber. In the actual layer f<=e<=floor(b_in^epsilon) and p=6*b_in eventually. No tariff is extrapolated to arbitrary independent f,p/geometry. The compact-control parameter hypotheses are unchanged: f slots, complete dirty reservations, `A=O(p)`, record fiber beyond fixed powers, and the same selected movement exponent. The final uniform template may have much larger fixed dimensions and operation counts. That changes constants and thresholds through section6 below, rather than changing these quantifiers or creating a new tape per coordinate. + +## 4. Exhaustive family/owner specialization + +The executable source census is over the actual final payload, not its proposed histogram. It classifies every event in both21449-record orientations, and checks exact scalar coefficients/opcodes/chronology against the selected THREE-base word. Main charts on all224 persistent main owners are exact retained records. Every scalar target/source belongs to the632 declared persistent owners or the one declared owned C0. Clear and overwrite COPY target only C0; ADD arguments are distinct owners; no new borrowed owner, alias or productive C0 is introduced. + +| Actual family | Membership/coverage | Selected physical interpretation | +| --- | --- | --- | +| 180 signed warp classes,240 occurrences | Each actual G is invertible; both signed recipes have rank0;800new monomial records cover this and the changed families below | Fixed affine binary permutation and unit quadratic phase from section2; same all-f native generator | +| 3290 borrowed climbs per orientation | Actual source/target bases strictly nested, correct current owner/frame and rank | The selected arbitrary-U-subset-V factorization: two rank-zero adapters and one positive rank-r*f child | +| Eight center calls per orientation | Actual nested comparable bases, owned C0 only, all eight rank8 jobs billed | Same positive child plus signed adapters; no productive credit, no allocation of a new arbitrary input | +| 408 helper endpoints | Actual strict nested entrance/exit, profile `{4:28,7:7,8:47,9:326}` | Complete two-sided normal form on each distinct arbitrary input field; no internal scalar reframing shortcut | +| 448 main entrance/exit charts | Exact event equality with retained base main charts | Source-identical selected chart/axis interface, with its retained charge | +| 17453 scalar records per orientation | Exact old opcode/coefficient sequence, dyadic grammar and current-frame checks | Retained ADD, dyadic unit SCALE, owned COPY/CLEAR; identical scalar tariff | +| Ten phase labels | Fixed annotations, no new physical instruction | Existing scalar-word scope boundaries; not extra outputs or uncharged operators | + +Exact factorization equality and arbitrary-input endpoints are independently established by the admission dossier's native/phase replays, not by a syntactic schema. This module supplies the missing **physical class implication** for those exact factors. The new phase receipt covers180signedwarp classes,105newpaid pairs and5changedhelper pairs. The382 unchanged helpers are bound to the selected #4470 phase receipt through gain_acceptance's exact ordered-basis/owner lineage;26changed helpers use the new five-pair receipt. The independently replayed all2855paid-pair factorization module supplies the full actual paid-pair coverage. These coverage claims remain separate from this module's fresh class/census checks. + +For owned return, the local word retains one physical C0 and ends its C0 updates with a permitted erase. The existing arbitrary-input native proof establishes completed main/helper endpoints and C0 clearance. During product/compiler substitution, each suspended local occurrence receives its own center bank; all child inputs are distinct actual fields, even when values are correlated or one input is a parent's center. The child finishes and its adapters/role ordering return **before** the parent resumes. The parent clears only its own bank after its last use. Every such bank is excluded from productive W and included in full O. This is exactly the selected compiler ownership rule; no one-bank-per-depth reuse or undeclared initialized input is used. + +## 5. Finite raw tariffs in the selected unit + +The tariff unit here is a retained elementary scalar/movement/phase **record**, each realized with the selected physical primitive's asymptotic bound. It is not one literal tape instruction and does not suppress the f-dependent movement bound. Choose the same common upper unit for the fixed primitive alphabet as in the selected finite-word accounting. Each new two-sided nine-axis recipe has at most342 elementary records, below the retained conservative1000-per-group allowance. Unchanged main charts retain their selected count/unit. The selected primitive implementation constants, record-paid setup, scans and repair remain paid in that common physical unit. Changing the finite catalogue does not require a new asymptotic movement assumption. + +The actual local route groups are + +``` +3298 paid jobs + 2*408 helper wrappers + 240 warps + 448 main charts + = 4802 groups, +4802*1000 = 4,802,000. +``` + +The source scalar allowance formula, reimplemented directly without importing its evaluator, gives158120 forward and158168 backward. Therefore + +``` +158168 + 4802000 = 4960168 < 10^7. +``` + +This is an instantiation of the selected raw-unit bound with a smaller changed paid count, not reuse of an old expanded compiler cap. The controller remains18full calls and15thin queries, with the exact retained physical-event and boundary programs. The complete source raw bound is + +``` +18*10^7 + 15*1792 + + 32*112*(#physical_events + #left_boundary_program + #right_boundary_program) + = 181098496 < 10^9. +``` + +Each thin query's paid rank-one request, owned copy/add/erase and inverse orientation remain in the source invoice. Idle jobs, main normalizations, inherited controller geometry and actual exact phase bills remain charged. No local or controller charge is credited as a new productive output. These numerical bounds concern **raw** supplier records only; they are not the expanded uniform word's operation count, storage or literal physical runtime. + +## 6. Expanded compiler, precision and tape constants + +Apply the selected chronological product, same-owner paid completion, disjoint splitting and integer finite compiler to this now-specialized raw program. The algorithms are finite and only instantiate the same grammar. Their matching uses complete job endpoints and restores adapters, and their owner allocation is the rule just proved applicable. No new movement species occurs when a fixed matcher has a larger fixed rank: binary basis/coordinate permutations have the same finite elimination construction, now with a larger fixed list. + +Let W,P,O be the actual final productive width, paid rank-one count and full owned-bank allocation; let R count the full native/movement/normalizer records, including product, completion, split and compiler routes. Let G be their fresh dyadic coefficient/phase allowance, computed by summing the actual scalar allowances (plus the source's conservative non-scalar charge). These are finite computable integers of the new expanded template. They are fixed before multiplication input size varies. A record-count overestimate and one owned bank per relevant occurrence suffice; no practical materialization or old p3 numerical count is needed. + +Use the **new** values in the selected semantic prescription: + +``` +Z=W+O, +E=64*(Z+N+P+G+1)^3, +B=P+E, +C0=32*N*B^2. +``` + +The selected completed-child argument gives `A(e)<=A(floor(e/N))+P*floor(e/N)+E`, hence `A(e)<=2B*e`. Monomial permutations/unit phases add no coefficient height but do retain their execution/descriptor costs. The new C0 determines a new eventual fine-grid threshold. The compact row reserve, full simultaneous stock products, depth-first parking, fixed tape inventory and polynomial setup degrees also use the new W,P,O,R,N and selected formulas. Fixed enlarged degrees/counts are absorbed by the same retained superpolynomial record fiber and strict outer epsilon<1 after increasing the threshold. In particular, neither raw10^9 nor selected p3/p16 reserve constants stand in for these expanded values. + +Thus P2–P4 can consume a genuine new finite instance of H_selected's grammar and precision/stock/tape prescriptions. This note does not independently prove the historical native movement/repair or outer analytic/recovery stack. Those are exactly the assumptions already retained by selected #4470, with no additional candidate-specific implementation assumption. + +## 7. Conclusion and exact limits + +Given H_selected and the source-bound exact semantic/phase endpoints supplied by the independent native dossier, the final catalogue has permitted explicit all-f realizations, legal actual-owner return, finite raw tariffs and the selected expanded-constant substitution. No extra primitive or changed movement exponent is required. P1 is therefore a **consequence** of H_selected for this instance. It need not be restated as a new hypothesis “the new recipes implement.” + +`checks/specialization.py` runs through the master verifier and its source-authenticated `--repo` working-byte loader; it never substitutes clean Git blobs for dirty inputs. Its new actual catalogue has800monomials with at most83 elementary records each, compared with the uniform171 bound. It also checks1692selected monomial records by the identical schema, exhaustive event/role/rank/scalar census in both orientations, helper geometry, retained main charts, the4802route grouping and raw bounds. Controls reject singular maps, non-Z4 absolute phases, borrowed clear, unpaid rank changes, non-dyadic scalars and an unlifted f=2 global phase. Exact phase/operator equality is intentionally supplied by the separate phase/native verification rather than inferred from membership. + +Credits remain with Cao Yifan/intqwq (#4610), Cinna Davis (#4470/#4416/controller/helper lineage), zxv (#4359/native/compiler/semantic precision), icekylinx and Dugongue (general Clifford/transported frames), Jacob Alan Sussman (mixed integer compiler), and all retained physical/BIT/geometry/analytic contributors. This new specialization/proof/check uses substantial OpenAI assistance. It is a scoped conditional AI verification contribution, not an unconditional multiplication theorem or independent human/kernel acceptance. diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/TASK.json b/research/owned-relation-independent-validation/engines/cost/frozen/TASK.json new file mode 100644 index 0000000000..f5df24ffe3 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/TASK.json @@ -0,0 +1,80 @@ +{ + "schema_version": 1, + "task_id": "complex-new-helper-inventory", + "priority_revision": 7, + "base_commit": "7c472563474e60185e6ca101a17622133d047e56", + "original_card": { + "id": "complex-new-helper-inventory", + "question": "Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/heterogeneous-owner-assembly/README.md", + "certificates/selected-result.json", + "research/selected-k8-unrestricted-ends/README.md" + ], + "methods": [ + "Propose a changed helper inventory and derive an optimistic exact moment.", + "Design a small completed instance and independently verify its endpoint and rank bill." + ], + "acceptance_gate": "A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a lower cap does not establish identical circuitry or order attainable optima, and is insufficient to pass the stronger-budget target under this model. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.", + "bottleneck_link": "Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.", + "allowed_variations": [ + "Narrow to one changed boundary or helper type with explicit counts.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Mixing only providers already inside the pinned catalogue.", + "Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "helper inventory", + "heterogeneous-owner", + "mutable leaver" + ] + }, + "scope_status": "refined", + "actual_scope": "Make helper L230 owned in each backward call, prepare one five-helper relation, retain one exact frame-254 snapshot, remove one rank-eight center and one rank-one zero job, and debit one rank-nine target.", + "scope_change_reason": "This uses the current helper-inventory priority. It changes the independent input inventory and scalar word; all physical native maps and the p16 controller remain fixed.", + "bottleneck_link": "https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737", + "budget_minutes": 240, + "stop_rule": "Publish one exact complete-profile kappa improvement after native, ownership, phase-inheritance, compiler and cold-export checks.", + "outcome": "completed", + "evidence": "README.md, WORD.json.gz, RESULT.json and verify.py. The complete conditional kappa is 60447/20000000.", + "author": "Ali Romman", + "ai_assistance": "Substantial OpenAI Codex assistance in discovery, code, proof, verification and publication.", + "open_questions": [ + { + "question": "Can a separate reviewer validate this one-relation restriction and the inherited physical transfer premises?", + "why_it_matters": "The new finite construction is exact, but the complete bound still uses the source phase and all-size contracts.", + "first_step": "Replay the three unrestricted source rows in native.py and check the COPY and zero-identity argument in README.md.", + "blocked_by": "Independent review has not yet occurred." + }, + { + "question": "Can a different helper relation give another complete positive bill?", + "why_it_matters": "This construction gives one positive instance, not an optimum for changed helper inventories.", + "first_step": "Claim a disjoint relation in Discussions, derive its exact rows, and include every lost target and owned-storage cost.", + "blocked_by": "Current active cache and paid-history scopes must be checked first." + } + ], + "coordination": { + "claim": "https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737", + "distinct_scopes": [ + "https://github.com/CrocSwap/integer-mult-bounds/discussions/5355", + "https://github.com/CrocSwap/integer-mult-bounds/discussions/4930" + ], + "boundary": "The first scope retains 632 arbitrary inputs and eight centers. The second retains every original helper endpoint. This package removes the independent L230 job only in backward calls and claims only the stated relation and two event replacements." + } +} diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/VERIFY.json b/research/owned-relation-independent-validation/engines/cost/frozen/VERIFY.json new file mode 100644 index 0000000000..8098df4c80 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/VERIFY.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/higher-moment-strictification/verify.py", + "research/joint-helper-lattice/CONTROLLER.json", + "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "research/kappa-rebuild/architecture/mixed_target_probe.py", + "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "research/query-thinned-controllers/RESULT.json" + ], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "Exact native rows, owned entry columns, event ranks, independent source identities, p16 Laurent controller, complete asymmetric invoice, two interval engines, compiler and outer predicates, negative controls." + }, + { + "argv": [ + "{python}", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "The same checks remain active with Python assertions disabled." + } + ] +} diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/WORD.json.gz b/research/owned-relation-independent-validation/engines/cost/frozen/WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..5e79bd826c6ca1e782766ea0ae28a61d136303d1 GIT binary patch literal 206987 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

@Llg*%VK`0&GUPt!^(rsfQoi!EYdE~tu6^FUc! z1T-})XO$5Y_pLKTlG3in=>=5wsjaoB|A1n`%WP2>g>0|3DhI(O046w4NKxR(x-w!p z>8iKFZ>KPs&7_&CkO3kcdrsNAcmSpB#6nCt`vd>21m2hi-cKB;1>Vy>-ZVUJjRf8R zi}3XU3%R;J?x_V*J>Fi&-O)a7b=(hSJ)Q+V+ywr+=y-rGxLn@E{ULq(IOei*M!U`# z_+Z(bG!po$;r1r(@3i=1_44i3+xi92dcfmMfUi|JZFkjD2y?z0ZtS;^r4UdtzUvQ| z4y0if!oFeXwm~w;DMW~SK}wYx=E)~-m$UKfSwF=G3qO;k-0_kN8^u)Er`r!wj0!dF35gm*KX*$2o;Hm2SRL73aTKik;MKW0ZF& zUaA4rO}fs(43=Gh=6SF4qeb&Dlr9+QS12;GHpVa?L}X{zG7gQv#LF?KR-DGgLd z>iQdIpwzGlDgSHu0Wp1;1B~gq{*IcSFBj2tyq~5nzBqVl-1cH8o0pnFbu_L^Fax!Q zLrD3Sp%-F$2)JzT3V#M>u=2@>d$8?GQ#$3=GV0RrC}@LkQHyu=q2~)vLGJmb!#{_c zJuM4jt4ponUM*i*)5*?UuCl$(a+eQiE?rC(Tb9sw@^P;M{V_kn7qu|n+G54w{Im^P z5`BJX|LJaP<5Bo7kn16<^l@wRv8g4ny%6s(>(isHsl%qyZ@=PH?l))oHtmzYlGAQ9 zquM8Px$Cx-IB);o?uHWQjiyrjB%HhMe|Cr3Cu_Lt_LVsAH2(lRy<^-KRxb`WP{`U%`J@of4R({^rOwWHw|pgY(IG1s|>t#xx91B zIzWlkK+5L|s*&26Fpgt~+%&<_Mhh3{`TC{QC1jD`AX_E-=09E}cii`#ar>t3(|9kp zseSxr{_iUAZYJ>2^-5>?b>PE->EoH{<9+4h>90Sr2#_Dx$Jr8V$4jd~?R}h`4qRA~ z;p(F*qdr{fbT);4U`z8EocsMlGpIT;R>2S3wIaH_GK$WzE@G zrG@*Lz_QNc&4B#Y>VtmEalKy8g5ci(MJ+O=m&pe3zH?L+rAvNQ#?a0??bFCHhHm$+Rz{Qd0hvSW3HijK$&K26lZ*`#JV4~WXhVy`cli1tlz^R9x zxb+xs+T|YikqN_#fI{ojo`YNtQ?Mwg@$R?$j7q?^lJEVx#=`K9hULRQCG+Mh5P1rA zX5KL!Q9DDZSNSjGyZMeo9=;PD9

!p@6mTvz^}dn+>#HjQ()nc?4Y4m6GF|M!bSJ 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

~Yk-!hgQDd3FmtqEdT@CattzST(EjXb zbNA5C#pYw0B;rrK5WVF8zvw4J+WK9`wr!CRnxg7NH&uY56KT0shsprO4G~W(H|G{P zY6Y`_m=F#HSJgZ`_`I|XVjq&^#eNx;M>&uHx2#UvmTPSbrwJ^yk#mCKd8m>YpBf#? zN-oH4E$B6`Hj+}jT>UL-`L7*$Tx>f{qSMzRuq9_VC|#xNQaS`Hux@h^duM1lxl97M zS;~uYrvnsFD|9teW1;tecqov4tbJFBX~C9qRwO`7Bo54VI4v7F*Mnq}=a3m=7vVnks=%7?H=Xfjf%j0f1+P0@C}g5wCw-~`CgMjPg&Mz!s9)Vbuh zr4Wk?;SEjouTsGpem~#P=0ZP2gQ1bKb#JAPW(A*^{N!H4gaj*L6-BuS;+PY9Kkzs4 zSjJ<|{yJ+*hIJW^N%l4Sg=*+wbtIX@JJ@97CZE%CM8$^A^dqcgugTPHHjm`=^`JKB zX+7v^VKg5at0m~=@66ld-+bt$%QwNFQg4iO7s|D4HRzYdH>=UjJwQ=>CT#?V{$aSC ziOl6lA6njCvMbcI(C?tO?7kAC{&{@ffS%NAJ*_@rHp8`DX1_D&KC@+@yj?nS{y~I| zip%i15h)wI&r9-=3#QOJ7j$twYx;GvU84HnVFtnKOjQz*xY(#R!IC5N5n&vFwVBZ_ zh~sL<#t~kkX^fKmMp=$_#u?=%ZnyBZ3oEV#K7$uXc@o+t6dmKt#3*Rp7}m1WlwQB} zMCYgoja5fnY{?h+p7ol;*QH z6f3(}TO=-XLQYIb6a5HEFUU_edxxSE7qewa3G#pq_iZU-j`~*9SbZ&VryQUvJ@me~ z+eNA!75o0M)v$1UXmYLMp#1t>0f)!Y17cEMrt}w)6J-G5-;X%M=>sT(8*XwKH}hlP z1__&so0Q#OJMx4XcnrqtjC+x2Yl0068`IITrQq{RG(6QihqhuX)uFI}7vnHbSkh~T z%QI0lLC0|u!XQ___(MH`_o!h9_0H3hZ4cq9ZCKa*IpiyA4=Xp!{3;R^@6TX0C}bWv zSHDi2T;iFl*jG~6j!rc_EWZs7PB}U3<|cJcZT^-`~C` zigL^S1Bio%^!-89afd)M^vPE0oa9d&KfaTHmLeA@I>a#_IWSrG>_VbXTJ;>K^?tRgtATH&BVv)*I?}<;mLX zl1ZRQyUPTZW(E}JLuvyvuiNDxCuRh_;=$9a%U2j*s1(fx-M<8a7JkB~ye=l)DfW+}Qz2w^-p}9{BGf_HQzkb{923~3 zwtBh!)f|kBCDl(9byDDgG)IOtyGzK|6-dIc#Ro6@_bQgeh&TbqPt;|b1Z`ASGIq>r zLr25o4lOY;Rb-1D*;|IPx;@mWvytu>PCec<7c$i>{-O(KI4^N<`I<9?0e6yw4I$X0 z5qbU4jz?KV94);d!859dlKvmc%oQ0Tzn`j{l~6&KNKsl5uf)YUoNAUaARb5TczU() zl!61y@88{#{uW*S+F0C@dzvT99_!y z!mR9eVL7Tx#N%_4EohG&1`u=YNeY~Jj+0HIT39W+{yv(81E8LnD5L4z=poXm9UOTZ zYSXL%s%$)zK|?;@O6Xz#NQ~73#n-dL{;aq1sq3?;7UXU};f(?q5>$Kpc3mGY%o8cc z_XBhlzzp_P}L$~h$E@htdBfek?NpmA0wfh7) z zlz>JbT@B_hrn2BT_vC#$d1Bs_GRWJXT~KEe7?UC;9eO%O@%XSQoC9?>?F?P(eHI~V z0YL2iV;D89kmM)ma+;H17}*nxdb$MZzh=mF2}=JO*J?o(UO^dCYw&{x#wl(7{Q(Fn z3Z$o3M^R~P1AYfY%N^DNZ1wZE|3Dp)+H z;lS3>JA#3KK1EF8@rd118*aF%VE1(tDlh6k?-vYYL=Vo7j&rAAe=!mD>Z0pb|zp>gRvq} z3lR#EztVqaUEWnzE+GBvP2=)*7R&vM7U3~-G29NrG=O%l(w0aJ96dO$h^G9l_ua;O7soz*2a}u>&^B><^CKQ4FqAfBXfBeg7eT(tn7* zmWL@}@STs>sN5gs<7gQce7 zNBX6Y|L;o#`U`rIYym*$aZ~qzxJhQ0fcgU`7X41)Ggz2Tm3$eLgHoF%M*EC}AzfR3#I+f`4_y04U9Wk%r7F=*kToSofKvl%o4>85_(} zKKxYU^ucxJ>zyJjgM+V}xECkUoEo+cKW)X@x|)>Z`DhYswMpAN+>sxH^mQ;VcKF+= zxCiyXj}+Oom|)`>|%D-rwm%3k-gSbGgH0n2FCL z8}hmJr*f6xx)DxE#M(_B#EO|sl?WG~WMB_Xv~=;uX;{x$mcFWCJC}t{g8}dv<#Y`z z(4qD2pG`n>9OBfZm(Qo^x+)GD{)v8KuSSwq1yxu+(IRI1Q^kp>eNiatq^@g~NB!&l z_Db%3%O;C+ZddlpRxY>eqRe^I=!J`((lk8kxc~+JdO6gw3Ymop)0Tb9hFRJ5K;F;c z4UzalK56X#ue7JJ|9v~_-mEcfPp*Dq>oEe+zd_0`{|KOCM|S2Qln4K4*yU0`3jDLY zrN}x0W>QH|YeAnq>QM5-7$zn~g%7h(#{Q|`ff8=;iLRnNBd{A*c*!LQ`N!$f+WRYH zXNrtEv#K;Q=RAUXd)hir+}#M*)ll?s)lee>>k{YN+d$YrT4Ji#8IHdvQ#A>3H4UVa z_dju1S-DWaAx4UKuXS+i3ew5_ml_}B_zLr^l`R!+8?G*Y95T9$%}M?gyE9&~SBf=5 zu*v+T!K;LyQlkHaLZs(2(QMSq%->5| zN3nyr&_5wq70du+ckZK!(Vm44wAsV)j`ZKlUt^ni1(5{V!pVa@-;urCM}*cCuD9!# z1PcM#hX#>4)WUhiKee${34{2;(^t2z4bMbNzc_revR3|$I_xg6qm#!4W_UUD`#cHk zHR~YZ2tb=3Ifb#SN3}!KjBHN0Jpan|E@ZT)O17?xy;7qOp1gtGYl*Rp1W*g>T1Art%ZTSGf_>{-HLAd{GHl3KsU4UfaAk^;3PTK0~mTOqi?7;K0 z+mjc=s?9aIrjN;QE(_l-Rsw|z5mhYvmSl6q3aVSMQiaoAwVY{o0xys;J6QPDQ6d7$ z4%fN9xZy|5++wAe{IPW3FHI<9!N{9^Ko!WCR{u}*!OKTmgvUC_}V?~HEdlhWrK zLjKx8MAv}N`->TjB`8mWb2eoN6NgEK$XI5~j%|A~c64GA%k+)}LEi$siJ5}ZcZJd= zM3!EI7Uo+17@o1=U!Fa@k208OBpnd3*)efNR!Fdd?}f0{pPwrIjmIC)_?7w0j4fnAnh|S&-$+?@AXP zM2+jq2uULN6P)1q5+Zk_MC3(C)=CCQ&PWEFa1o1e+n2M;Ap2A~yCj?$-F+7>lTRGRCL!}A!ZJBr7Pu)wOnkQ=vZY1Z%B~kABR$Wu~9zHFD=Ra=)XXg?DJWYTD0h`6jfE zhNX8pItx0F;PMW_dR|bAVcF*U+i+04VQBT-z1oOft8ws%zUb?ajeOB}hmFkk<6I#+ z=TgSox2fd*qSsBbDkJdR{=jlrL+Cj=&-X`dMqt3KlpwL>`)@!UlICzePWq$mFQWM# zxL4FByGw=NXZYbrbDKEAtJnVK)$imi?asui_uri!WtD68>Cz z0L2S;eu5JMAh;rpZ=R)paDIB2PMIBPJl2up!i4FRUjY7T?b71O1&|T|`9K%aiG(J# z*U!M6b%_Xj-Y@l*A;VuHjVyL@ReI;|gY=7y+?v^ng^t6*I|l{Zu$&n-@!xdcJ!$)= zq&-Ip4kf7(AB)m#T9rJ9mxK{h6SB zKqh_p;{rC`9bxAvTn_bsi@&M!<=>3RDecT`!JNeSyCSnrwni?EWz*tAq%2iRmd^Iz zM?2pyjmhbUjVKK>z5vfsqcKZXNLKJot1?4Xa^J6gxpL(2^kA>lUL20)w2t!hkx+g& zM4E(x-VSdQ^G|8*+n?UoyZrplU5udD$)J}%Q7b`zp;4?))8D*%l@9(KoEyK~JPy9S zOm4rPss%mYQoJU<)xX`p-JWj0-i*FIwTk_Ht_^xQ-46Vl-up6||8{@*_6PcBzDJ^$ zl|wj{e7!1vgT&KL4D@D0+uuAIZ9SI17Fu9}c70gq353KB7;ehn!r$)lkGkJp@(JH| z)chatI~^m4JMm7R#jYR99im@{9*@O1_YU8rp)Wd?zeVu3<3w%8IC_R!w=+?FhVK(i z?|SraF$bwDh8C&6P5GC6^?KDI3yB^>pUyL&S-^aaO#i%~ zLb5-LItX16c*4Hu_0|S_vCIY=+@Zftt98BEkc5iWcRrW@ z9rAsO$-hQ<2G{1_qjc6CS&cXCrEWz#u^)f(yHMShPO05mKRbQ8{@p+G?Ax2=*t>yE z2nwlpc%TV+_?XR03wm~bEmO*W8s<@h{d23ClO{z?$#_+@;5b8q<7glp=))60Is2U1 zx3HH*foDB)dtY02iF9|m0r&T5$~U$VL%4VHIDHY$@G8VAVJ+`Iln=Se*hnQG_b3!J z!xrtLZQ^I2o>PaU`uKA%-^+iauKB;a)}f&D?|o}X`Np{ZJOMXAiI7*?okKS7H04${ zEJ8ME$spN*M$owcY7`6X14%p|&fUHJq7R$**3!nqExQ+N83*d2_I;Ij5Hm+9Kc*yO z!Xa`w*`9ciV`@v1TmnDNkXSwbwap30pw)?+*%PbrQ*JDjjI>> zqE;8}onwx&c#uTMVK%FSfgIe3+t@oM>=vJda6jwp+z$!0&FcZd)k z1}9omlXqa+19k*)ygelpMLFO=Gb=y9H@A%5q2;nB$gnLKIk~fW$jZYA9ULSNA|wfJ zjDez*v(0PHVln>3ecT=TLM&GnLh0|3VL>wtxV~aSra_+lNr)LqX=3>tHn*e*dF*!Y zQ(Xs`_F-mNu(R@WXIpU;pTu!)Lddq(eJt-baGq`d;6{fZKR$i5@11_?yT4ogTDFG? z(hxRR%8S~)9ZbO2q;%~^3J}^Apvdr}ViGV#Ow~AR9`UhB6QWC{FNW6aR*NznGUi2@ zLT!qSEKCt#?V?TDf}@Ds#)0gg2og&SEg$ujw;NQ_CAnaFJqv#hzD)tmVd8rCbT3T1 zNwBzu;38yk5S=$i=BIz|XfH$7k9VH^Rsk4i{6?hDOM(#ht(FS>^EuS=u$Nt6cV0Rl);?U0(h6;HM0cp!jrx6k_sk{quwi7v{8;zZw^@gf zymuk{Io@Ke34X?mCx~S@!OxeqL}_K+a1)+^+#;nu&~9NG5rsRC_5^^g+=gOvF7ak3Igby);E$?>|fA8fF%Q=-%5 zyJ)Fs!{XAFH}7h0wUjT>XvW_kX9O6qyDLv+;4Rl+3}+Mi?Gcpe+1o8YP3$1$%fMr>WJtd?I@M<2uFJ@+lO;i;nJ^Q zppLH29)2NyW`y6BzK?ZsWD+J{eN#0rT``JE)zk8+I zeJ6DaU+ozbTE=_$Ivx}`MPj@yAL%RRwdB)xvn@v1$D6`=7vUCEz4_+{aUN|9V3mD^ z=>b+NHjB|o7P4}qaEjvIDQOq1h@o5Gq>%+NQ#ZM9K`R9cEx$vyg(+ap-pK(!!Q~?> zdDaDra@XL3k%c{PYM>^o+WbK73Cod0G%5@Pje3g~axSS+8qo+d?}m9rYXb2;r8Z%3 zU5%IpMz6}v;FJ#|IsQ=h_GVDIi_uM`+NrS0K_yfJphHwcWOd$|5l5Uj&kw;0r@(gS zz$)*{)5@g)Qu@*-P!N&5vFbwVKenjQGfDDK)?dPCd}SNY3%@|@#>`@zpB*x`PF3=v zyAwY$IYOHK*r%HI*R9~IC!#NVc)}M^OMe1jF>l(UTT(FyPK2#!%o;IXUx2ra zcy?+d1>)gG6UTm!uxvnWZyjgE7an5IQ1&LYA&or-G=l2+nuzd7>BM z+dBpG&{|nM4kCc1k%4vo?hC6s(n)NN6B9wX0pg}{OvNW4iUZucCcHXvtR4$rD)-=; zOadScx#fg9+pV}+t?F!~JxOD{z8*dL!42|$jq0E7pQICHIE+a{($)w~IQJ?=8foIa zf~-g;T#hGAB^#ePFny_;PN}Mk>kJR;BhazNN{{|d;!xQZMj|y%NgvT3Nm!?YVSyV+ zi48$^CA|Ie4xxYqow|-*+mfVyb*ivJ2gTjYAAqWEEb^@w8>un{c6d$pXdMJ(WKJw! zDzL@AEXbLfT)~_6Xrv?7dVg#q{22X6<2M`{Stbd%^TRA-OFGlI#&tpd?>>4U0{}z1 zEN4vetzetWu_mkq`BTbJ*qa{gtz4~C0l^UL zS%qj?>J;fS;>O&s0s_o#g4vF_!34n6Ssm?<5)T8RXAy8<6r9;Tko3fbb`nkkB?GC1 zDu3viHr!e@vTG04zCX>_lWfv$Jmn#Y#57-MjuWiFHe!%LWpNd z=ou~CngViDDy}sH(-@N6|EdD2@-M^n>^z;jcyc1WndvJJ;5mb?5{@NNyp(l}S}0O8 zjKG0Bt(u&4D5f4keRq-)D;GHdktwu^Fz>5U@rh5|X>uJC zlo5_)oy0}|Yw%con7eNQBlggTFzE^1@b}1HlVNki<*BI^I_l5JYhpK2+{z50DGQU~ zU%t1h_DTItN)cxAZIba0-YD9)1RW>Pho;zhIK#IJ3WVV(ryEp;p{Yg4jq3~Yho&lH zgy$i~53!9)GLYnj(*94-m>n?G3I0Pdlp#&%kU&e-lYL<&&fFn)=o6!9UCsn2-CgB9 z=rye}RX=B<^9ti}AO+AFVKnj58-tK%!qRs{6_RtS`6%#}5=rI_7 z2A$45$e~16t~P_Ma~@}EexJ*4{7&)+uqnz8ax7V4xH*df^T!uJ7l|b#aFT<0iw4US z5_nGCdGR*EcS~d61=lAhE+W9TQXZRt3R}KU95f<*6fs-jHW0EAGa^|Oomr6_L!8-H zKEc!uqUWs3Nl`iiI8?=eX^qQRl)=*0E9FZGno%9x!Wu=g2FJspbARf2T46z?#027P z9119@ZJH|71V8k3cRJ>q$EGQL-zjpEg}Z~CNrGjwVb7$|Q`nal-IL8UcX1?0V9CZj zV<;vXHRB6}Acnr18lZ~`S=a#FR#JaUs^C~T0f7Q{cX6fyga#3O>pjHT5g*_ror-4) zJ<5)RH6{=JO_v8%QwTlVJnJ$d#wirF~sQ z9MjV>?*G_gGtuECHFcV#+skx+&Rbcz1201xsj~ zuoRDq()f}jRM;i)ja2Rk(uxn6`^0|3?^B$JC51FB0-PN@dim$BgNmvI#!>cD&M8~a z(75czJP}+;T*bMiNsz21tc#O=(aH-D^(IhfA#g&u5ok zL?DU|ffrA~r{7I3LBVl1%{)1yzIO{f_QblPG~w!-jH8NfwUV)8{K2PLT3di1)%s<5 zPteC*51=M#?m0hzy)?cs_T_j9lX%XEq6wd%GvydihSr`+BuN8KSoADuL6BsSKtM+0 z#3F`Eq1@vmxk{0?WiZPfD^GdU${iv0M*Tm8y?Z#*;r~BAGlx0F$T7?|M#(AVEN0l4 zIiyHAglZ`z=B#3-EXQr-6gei!p@dM5DU;G1awepla-LJAey`r|@9%eguFv<6-*w&B zz5Bj5v+eb|pZD{AJRZ;I{f^z&2#bL0#$O6nut-^RL)R!;nZoq~r|tx=qcZXr%~50+ z$E(#`z-`wxY; zad3QrSZ4kMjWb~vQx4wwc3VSHo4gxOxhkJ8wsKR6Y(dhA?&{ZNrJLT?(0k4$Aj}hx znZ;XIZv)!rUH`#$ZtWWK<$YYSj2Jgo@|^qkM_i^ZjxFsb*#RL1w~fRM`BUH{JTh){ zDw!dc%0(C)GBx9BqDLA-0u~_z{q2Nk{2eLTxpx9QCLZjcr-rZ>56l(tBSVj?P7=fJ zeSAhs)@LO&S$S|ywoq@=HS~~Pm^btz1`F7I0CypxD;qnP4w!{_lxz|-qUx#`eVgK6 za2T=P@Qgkfr>p>Nc>Y1#iV?tpq*1qA5Pq<$D5xHTDrZ2}3pm*fR>`)FNb$>T$o zn!z&pjxu%t48g#k*6OhICa;L2zF9(VzX1lpzC1?K4LxZ-qc#2bwqXx$C!qH$(fCu2 zez2&5xuJIaS00&Kb4mn?j>J<5GYT@%xbdUTrsM90OAXb!Rn@3Zeh(v`za*;f^A3k; z(JPdnjkU6$be-c$#CY^*uy)U+ZoD*`y%y8`g)-wZBW8$9VXGC{dW+9-4zo2b=J_hK zG|=H^x>=)v0{WmKdjD1arDz-+(IYA={0v9wrm^#`Es!PVBo49FPUW2_gFncb(FWe6 zN6j(#P8@b|3Mi<>bL*`IZH0jO*@V#+lo|cDsn>QBqjDZcJ8D)4<}clk-x;p}X`C=G zzzA`kXHfsl*-zWStV}^nf}HkJQIffVAHk(B7w|Z{U1u%D5UE^8ZDEYnRc7!` zf9^cw2<815hQ}1fG==}NOhdyWZkQ!73w=j{TOeYwd{sec{Gi)J$;lS3mW>FW(52r_ z&&Oy7A_ZNwm)bdg{7EED;8am7qv%T(O&4#o<7+*AsRj#j);GSYChOltD#YVqWH?VD zmmXAN#s{G*ux^fU(#oD+abp689d$Rta{*&<@T$RA8kbg8FvI#5#(wINZ&Bqa_JNfKpqDFpf-s~n< zxe6&M%0d(81go|Z_yFm9DyF5>m{{^sbRJ%u6qZYmxooA*lw4ktc@%e(tCtuthEMs0 zEyBZtU@T+)dB`LjV~q@iWO{hR00jv6Z6DyOV=1WXjVKCA4Am)Zuk%j)!^@-ESBj)D z+Kv1f*v+h3{^jShXi=Et+Zr|NK0(ML>#|B23ys3 z7k{urqK~&Ff#o=@5W#ZMYP1zZ^(ExVUs~d3iy%Dpr^L+J_;z9&ury}P*~1*srJz){ zm&Cn0k0tu{z{Q@(;T~OC-t)=YRptkyU3e5z-pS{Si^@2PY)`e9;Ew`(LCRY0v~u*v#_tKDl9Z}__6OBG4SHc+Xq@ccuY9^czv?Rb{5ZHS=4PpF1Io4mYisBnE-w|| zf1R!u{`IWj%g0hN9gmnmTo zh098PMYKbym-?-c{<_lyNeCgkvxh%mI)aGfqbZpG*46B7L&d1kW|imCst!1|SUh$t zUW2EE^QWCbd$sL;EmBq}fbNYOt^d{07QFwooN~NV&kS0;ZD_5t1Tmp6HAaY$(gQ|X z&}9O3+yS)kA~2DQuSbIxd(YP$V^8I6bPe?58RO63ctiDKqq?NIB}xuWLM9O%pjT^3 zV=5;6z}`~4+gyG2j>eS{I-RPZ$ez|%r5dmnp|8;^L(-Mi{i?sD}5bY*o?)utiL3Jhv>PU6X2M(c9TS#mo@V z9pUB~fNwa#XGLJA#ltT%@FtzcIVfF}m}Y0$J(RNw{-I8A*HLbT+2E__G(IlP$=;(i z3NydBTGwp+?`VCxmlR~)WTo=D0VO@tdLEio5NU4j)QZRl9ANVlDV3jA9Mn;Da|M(` zi}+dqm1yRh|M0XG!3dPDevu-O2G@kCdg<~2BFhbZ zXO^?7QtAce^v9SL(dlQl&P&!0Ois5eWITrFylN>*Ra?w`9Z!ex@S4 z$8c6EK4f_D#KSb{{pGn2<%Xr5!%*hiG3*U)H}zj4&Rd7Iq27^Xwq7iGCWE@^$`9J`^VZ3^mJ-hG8qIu z&3rYlw)!7g&`D6QaBr;glz59~ul$QQTsV6K2Zgamkcan^o$?}hH8DP7vI%U}NDA@p z!)yr?1H)~yQ%=Md3c0+Jlp4~HMQg~T4)RnHcx^>BlOW@a_H;%75!uM_BHdr?=ssMw z%kT;p)tbBCV6;$Vvo+Roj9*&lP1ZpJwdtU#mSjj4!aDC@ljfZ0(_rqX)g7J#-jXV- zbDCuxT*frG@+EOsBX%LugpsNd7bVaD_@n*@DwoM~ncDcr`+AQkAGN$T3@yIMP5F=< zMxd%t2uL^k>7gT{ix8jCe6Lzum>ah7Jg{!2#Pz=r%$J)dFXqv2tB9P*yZ8b3Snlq< zn_?pq@gqdUqkUkj7#)YGeYzXGcOA?dOcJBzcl`2{(tLGrGfFgGJ0gaP%fT+7g3NjS z&VkA9*$}k}{fmfTwV-05|~$L$WR>P?mv{k`i9O zI1#L)cx8_nZT{&tK%}8D;&{pV%s6#4XhqkNOA~RYF!_4Fwvif) z#78%j6kkc$-|S#!S%KY`DX2SoNoUP$sJQ}KpOX0 zPT)1xi5y*wMpfEr-@`9h?!GYD;fK@^yp-gQ7h!s;g@Y-U(#Zjxb;`CJ&=Kr^e$cD; z@Oh;dEX)OZ+y{hbv|4d&MmOLt04OokxKhJc@-$1mI`y>ge_wL=a4UJG$aCwVmuwhr zThO&k9cN+i3i=tWS!REyH;26}&hMlX6;~r}X?Oy~wd8&_FItW(w6|RwC*EQENxi0e zQrNh^m!cccRfCB*hG6}mvQS&O$5w_l=Rt1%Zdo?fQbtPeO&7e!y%t+Q^y?huZzYMCv8l8ss66pVWj(^D)#Vd1`b|D6( z!0>IE!5XIy(b|c+`+QTaDB*b(d~7~%%FSSl@6tO9Zf{!R@HXN}uDsVPHN3miI!E$v zoi&R848eP>IJFREGeBdSCfEVtnit4mU8uy;fw7vbHWvY9`;dV8X3#?_hm463Q#dcz z)#I2GD|eq6Wm^~>o7&AwK+_v;d!Pq3ZAp`nM-vU|-r0fDbNB|gZQljYE4sXnJzm<8 zc6Z)1bv}+AzXiW*EcF{E{rslJ^ikax{?S`Ov_qL5@hlz6%?i-|kpcRp-o=|@TG#1- zUaUSO)h&aS%b25!XNq_m2CsJCQ`VyC8||JX0B*nB-Se+L-M=U=i`l+=>g8ipUoHQL z9DF(_Lj;RT%o86bdPiysNZ?1(sLmQU%oRh3HX`h}prlhh5pC?&*$mkT7~bY)zAgjL zpmx@Y{)`1mC;tDLA1HM|MVcaIajX;Sb~7Pb!Fq=;rN$&G*qAJ(xN|{gQ}L& zS>m^AJK;_XUR}zbM&=aR?}ZL8NQm!Te+@4o&x8dHM0Q!JcN_}4TWT6UId#ZwT>ikM z)A>h9%AfhJm0a@2t}DacPw{~3#Cv@}y*}VUIqdvY<)p@i-LE%(W_f2FXBV^J3E(Mh z9q#FmfD<8<{yF-{VOZt>%0?40q0{@V3%Y1l#>`6+I(xaryo`G@kswp+AlM1DD>YObMiaSYeUDhRAz?NU6d1wo8!Y^d${0Y55z|g z_US6XRr@VdK+6zgz#-7Wxh%lGU#a(O2<1$eNrj{ib4<;s>N%JvF%vxtKI#H>taBu~ zlJN;jmOd|Ll#eWRd~?lwOJte{X|Czq!@mY39~+-M8UYxMq&y=QcL7fete~J;d^^@O1#Y|! zHijjQK}=4>)&%BGq2{b28m$)1?m%oHHbJ(k> z!yiQ0zm~XTaLoszolc7(3>Z2aK<`7pj2*5l#Gi2vbiPWr0g&Y0izb2G-m zvg%UeBsL?!3bCABX~>nlxHq(3Bv(q#1i$fjlvi(?4E4yRNjK~(OPnS!VSBA2-pX?A z({W8q4UyQF-Og>z)ti$SOOnSf&gId}3nD~6btObQqE%K?7?uLXwvwe8Dksd;Wc-SJ zaa^$qnsU?NI^^0=|5?WV{M+YGuA)us6ei=AzQo7h9|JEkP8_<(me25DW*kF(G5x(i z{@%`^XgXZEQSs-UGJ%vGRv}IBPJVM{vF`JC5020SL7`WD+?hg7)KG8@N>FWZuL&tlBHqR*0kT~^; zlA(lP-?N0xXp!^>}^DZSgtSPU} zk~^W3Y~54V9y)awU+E?KJn5d0Aa(%Zg*3L&6~Br=F4S`e$b5g_8Hk+2)-w5>(lXm< z%RE0{CtF$IlMCObFpq$(FG55fIy=Wp`xPP)=jEs7GFp1HV<;i+3|SZX^TTsv&CuCD zTdmcyuKUSg#J9ZYehF2|J&>Ym3*Qdr6+JM{>ivFMH5XFJ+5G(f+4=7?0Mwdpsjt~K ztWl72l&Zj=^t!WCI-sDYa7Y5zOp3VJ!6EHP)4T_+l++@~ zRN1EVKRq2J8+3O4?h9F_{w69LJ@s0JOLN-hkf?0ZnOD&f1HkT51?glYz)u8Iif?)|93Psuv}`UUQ$Q*a{Ra-=?FvCECmcUMhegSi`~&tS zw}>siR%4@wIad}!oTvJF;taq`(@61| z$r}QveYuNY`q&nW(Q|@q=D0}v_$G5&)Fx3yU7`=Xd~iBR@vgU&5yhv$m(giCbu~<) zy7@Uqqg*RFYoblZJooTmz>(I9+aN2Y{98g$@1#6mS)Npr?NIUVTP~K1=DppE>x`+`6??`1&k%sKlxC0VzCWOS{U3w#4*#W{hvEz$>=s)Z2B)50 zu`IU613~%E1FE&7ae(V3g<*;f8%>YPVYqKCsUp>W-dKL5agkKQn2{gBeDi+A zE=BJcKVup`PCj_sPz}r=ptTxRNZ!L+XddyLduFO>^3k>q_SH+dlgujOL3l%e!c9Bs zu^e2IH$GVcHfG2M@(816*KN>O6$%B#S`Yoyg^lv{O*N>YPSn)t8&a3akBLX@?%An%C`Nir_KrI_eAT?lqX*?3S`u^zyAQ{9krKu2}a)T zysPleFVZvo-a@I?YQ>&LPJg6*2-6Nlepd+V+PA$LgtVNzRn}bjKaNO8hjbP?Y>vP` zUl!2kPXQ>xb%gVxN`^;!dAgDUE;Vk1w0FO@uI5mt%3b}bDbzvzH52s23~s(oGz*fA zEf!DOKz%h9=6J()-}9DHmkk%IN)2&wU*Y?cW1aOyoTv1Gj@kZX?vwgWCS|IMx%6tSh_U9qqT)+mcCm~lrY)J>@}{#D&OudnZ)7eXzY^vdvPzbR}W48 z^ARMk1)gxL6Ax?Upo(TuX|b*G?Z16_YJUw_Z5jVpH*~j zf*wQxG+qk4n3L<2CK)U%tzUr@mtcjp=B?VOBt z@trjw5kxRJ;G@4voiGLv$%n987&p~d$3J54zog7FZmByRQ_9fjI~)-hQh>h5gII1S zXG(S=tC+@!r@+>O*izUXlyG+acqj7(13*;)#PY1?J#T1Ou8ixbM6Z z*$G^nv22#26K8mOnO_(8l8gqf7P0pZcW@UenkCKB4Qw=*kZHG{?Z_W$k9)){>%`a7 z{=xSRNL?8SfT-~{T&G{vor$WAzl0e%u*TmOJ2xeD{qi+_lNk6_fG>kGi4;m7w01&YXE_|-iLOhk2TpO2dtWcD9 zhOb(VUTFvRh}Y$}Z~RMQD9-8Xu`XTB>pRO?sH2Kd6pHA|CxzD^-SL)vu5sEkb>l2R z?@I?0@E`8U`V>6W2AHRGEQ)>oYTnl|ct^c?a?t%J=X|rs1d8N9xP(de;e0*}_r6l` zJ5EOvf0tg7MAg?_EHHAs$hhn9ZGKcR-x1l>U}Mf_ZVe{eX-aT>gLrM!TZFXxnV=H5RYi>eR7*K*zz?PJuBYMw+=-Lj9w^#X)I4a} zlC(3vkQXN?Tu~#MwbOxc8iiAa5XHio0N(76TAm@P1W0U7W9E2CeCthS`6dU#JVl?2 zLmAjqRK7a82T6~BLez}T37*{3blz;neg2C%`8UCN?@+NE)Zx7H^^nhu8yf58tq4U4 z9CTW;DCbjV$066Kx0vUzJzBlsTKNQcG$5Lge!Hne7!X+;aFHO5eZ(>BMJRrNe z{Xha>F*!3aq}XR1_9%9wheV!vLL8YZN+RB_0KntSqhQNU_zNonSmlM4K0?0z_&OM= zM~}ew+s=H(R}%|@8D2T&Exz~CgW`_NHype)8TDuE>o_hd^>g|M6|FM)oBenn*sEFOlmKvNJuKMz9BnQ{?u^W>{8YtYMrQNtFF_g_11$ z!iY9JQ#g0Dvzv`N>O`3@=zzTa4Gud?27x#-tVaub1S&l*5PywdID#}=Ps;7r_Sf-Yq zQX*CF6_qdeZa?C@ikVcREeSn$oeTf|tl3pV&$;5Dw`6!<$>j?mgm|V0w&^o8458pF ztzJ}f!>e4jX~@<)SlqcIFr$Qb zMK8QVVHcc5XLg|Ooz1NKzXkvM-~^dS&hdS$+4EDQljzCFX~I5zg?jo5GN^cP5;SQ^ zx_8ov0hFh({ndxfiptKz%Fn~b%1Sb}%;q3iN@9hXF(V8I-d9>0#_(@KjYi>NYgnMJ z-GwPn18tOjwyJwm(B)TVC(A(-#)RETKTw~KXrIxV1YxC!puL1OK`$(26aEDQ7}m`k zqa0AKcO>v}F-^x}yQmS%JS|3hT27z*ORl&AaQ2FfOI{<|@NG4pwp|!x{;gRAY9Z64 z=QQ_rT$U4LKr{k|xJ@w98aI;he9(b@-UWU!p(jd z&uTE!)95|&RD2a%B!!XdiOBbODKc}Uf8MGfSH^p(ot&zo^6UrJ812*2Bh5b(6@v*t znWM8vRZ6;d@8J>W3k=lh(U)5AusYB2K=bpax8Fx4-rJQ{+i(o~tuf`afpwNZvHxUr zl^Q5Nf$KP#qt54@G38TyqB?o9HJ9^IYu)$Ge+*I^L)U0{BP8$+4dF2#xZZS!zHO3d zJe(iRtPUU-Oi1(ZaEfm5K77=On7_3}54y_kXHRGL6z;gamm#Z249G{x#XJpXsf+SXTSKm=z%jEt z@4R98O#U1a2sNLE8fRFYHN@je7KQkvGNi-3u+xC^nEGLWC$aE|5BjqL@reml%EFL~ zNpAeB@!(|2TlpwMO+wuxTFLJLN|`6c_^%p3#;Lg#KDLGQad+zR{$pm$)2qdAc%Ga4 zCGZG6h^gf!cO!`2=B@w@Trw&zwuYKBa~Egf*TD>5G!_QU0LbUx(s^)KP^h;IPmX-t z9=O$>%Lugc%61RYL(npT&hPCMGb8`(@9l#|D2*lz6DhTVxGHDawV7G}jZm(mLqO4s6 zBKS_03oI@}Obp>Vyj*fzXeDA zQg9VZ)|>9$6c@59Ir8m{Z~8T$WBETj|DM5DNDa@N@nv4iw`+Ae={M|WT;@HuQ_1~nv0q+%nRncyhV zhix)!)!$JcIiWu%v%mZrNA+cdvXaw)l_%Ry2!a3p7Io(|^y-J;!1}^A8N3NEKuLP= z`{&VPRdry|vpj|uU>CDUVIT1XSUStOL19aPFdTbq_8; zN4MKwtk*Ye*D@>&06%2COk<+1`X#KK}Gxd0ff;=jlU> zSBEYu^5hgHDc1uxSO^%ub;>g@a1H)#I_CY`*n0_w%6=iR4aiY02^sn7>%eEB^7a-& zc%5bxN?0Zi^vFC!Xv`M&F2RC?#!{j?Q-^st<^prE66`}>MdOH(a`>NfQW!nVs3CiV zSI4gX7%V$6j9Exu1hO_ME#cb}1oP3CeAKDOD8!kkw4W+QJ*dv2dpHJagTQD>^>sS< z>O#!IAMVe4e5JqkId3Z#Eqj7OwSxMUZTQj^Z8~SuBC`ME=c$`Is#gjOT$6PSgK*9A zDR?(lP?w`|ie`;X@!#N1`=%9rL`~jd0npue z5?DW;OhN%xwbzYx?9$hWONCJ`1@L&W?Po-e7Hm-X?LLd~Ip5d%V(oNzGB~r)>^ops z*(~@v4-Kvj&A_I@3lFi{6#)egtey3`rNwUgF+M_>{y=5^4eCb5Kg)_qgJaWdr9a(p zO-FGbm^q}&3wV0pEY+DFrGgA|jpO&&*v7#RE=|9+RO)|gQ8l-J$6gAa(rOL88PilF zNl3ABO(7EYwMFRvQ*w49(T2y-Un~w4OChQpkV)*2{-Y1ut!`C-pO#rR=n`wx5wT`20f{7kq$*ICN5m}?NoYS>iS;MzYotm>~< zNqi?RCo=VMvqYb=lk90JxsrubVbZX6z}WF=%lk?|0_pq|fGDGeP+HG0L%DMe4^3LO z@XnMxhFXd6vo~-s*(3_Xhi^C04fBhyy5YX!jL}Per{Ay=0Yd%It45gPi9oVqJ^P)G zCXZU0Fr%3->psPq4k<0ObSXJh>?kfpk2vg`^{m#4a0XqB?~s;BxGC2A5Jhc|WBbm$ zLsbK_4R1v__Ak5<>!?GA(|{OESQqSH`iiO>v}^_g1adO0yfh zgh=aRKu!lxP!=kQtGI$-L^<;r@ty4MiDF{W2b@3#zth4Lq)#|$yb<<+cWd`wh{Z#? z#50#?9<8X13BiLriD5r@?gN_gt-Chbjq&ivbbHVlr12KUO52XJnh?#WB#(V7$p-zP z-WHctR$iQ0w`e8fI}J--!CLU@=x1k7JkS{XW_6%)M$yJ@w~Q2ybOWWIGh)5HOPSYM z+ZS-6pzRIqlC=}S=f*3DQLT@88A9h##tX)JtQ)rtT7vWO0`Fk^gVlVzVv~N1OOL$L zUcdC*%vT6}tgY}v(CuT_60b~1hr=C#JCWlC@T%*F+Zuq^)hA-LmH?=x-dUl z5jZ%Zm(|c_>`6K+nIY12asE# zZ$pIL&qk>k;GF^sqLcnfXS<#p#MSPfRGC7(Rfk>D^}ZmAz%^PnM2VS8&aZz1q8y$j zsQM?xU(6AeiRY(};1W3rx;@NiB7lbZnG};P!uOA=lG7fi!SR$}Ko-W6jXgnT#Glx< zcL=v`x)WHjhgsd>NAR6Vn2gFutL*SUoU}8d{E#A+|PySA(#<>9nj%DU@2;i zd`F9T7#%FS2IiTBFT6#0>2y%Vv}Es!6?JWZTh-|O_#)y=3Eofz-+`LXKm}Pbj1RSD zI}U2ioTd{3dm6kWV7&>hDkogr<(2Dq&%k?C0AQW`taq+*enqtJOSrq&<E~BYqY-CK}YM(JXjb?qy-iMlp~vbat3_;1f?w z`x~w>v0g#C2Q%*@NGu3g=EL-_tDygg3A&0PtYKX=b#BiQDZ1L^F|usrI-{lCKp?5& znm!)T4VgkS*mIh?GabGA`D$1+fte3SeHBIX(WB`O(LS-MWI)SFb?qU`qmgg}9)3QK~fZ$sHJ zmDB!&s*wy*jrQgZHz>g^qdgGZb@XE{>SONDj{O_{goVDZ7@)*no>#t`b*cBAj*&({ zL}@;h9!JphZb&@STAhEB!y6xlF6OTH%(GId%4rXgZxoc6B$4<6r4UwW^S9TpScKQ+ zn|Z4S9n%>R{?=wSu=#&V+Je=8%eou#P%uy|PM6akHT)~t0}jN?zNtoTrAEV^K~?9! zlSl?`7YyC>4c*2JfHG1USlti=lq#QZr26k9srQ{4_X=|gutplRV@R04CThe3SDi+z zIx?uCGcn5Z?iJVrAc?Yz;v$ul^5rn-JQFcMG5g~_m1?D-6PqXH_YG5iw&Z@T=!lt1 z7P1d#W(_ukvFXv~RsqsFNf063NhY=w$e`-^z5-C+-A{o{~2bS_$wqC zM#j6S0A(HB%HiA1$`~cw8zoe~(&|}mLk)j~yi~_0H##7t{ALhI)mEejVu;(k6drRU z7+Ws2-AKpZ3)K#w*%Be(O}o4%s4j)sK7dUk^s`VJCr`-p$VW5}w#WCkSJT!DXvZ{E z-g6hsoERN@Yuid3oW>ms~-6N8P2WV!L*9C+=;P4;Y?y zsm@AO4;*>U^5{ZD9u~|A<}Vf&%9LqYM+B-PIxvCix(#JqCW%6pN5Cpy2XHU-=OwRU zjaJ&L=`qq$b7}B#SkV~@**0~O&a(YaAcFXg(>UDCHx>utTTRY7n(vK`!99QwvUak{ zqI#Js=j!eq;5sRFa83s;K#~JBu3S%L=L}V3&eR*0aEc1Y(R^Qmj#;DKl0$ABcywAI zqVbs1?@4!%eR~8<;c3i6weYyY*BEm-CCu+m!|Nvj7FKc^_1xhJZ|pM>bS;w{K?L*4 zpD^_~ZseCEFK>5_Sgh4bzNWgq|gk6bRipo355Ge6$y=+bhS#d1Ugn3p2?JNs&m!ZnE?DQOC?{)}f#fr-Y}`%+(BPhhIBc<{ae`auVcq1T*5G zY3QhVAeu=Imzhm+7T}*V?3L5+UMczDNcu|bjI_3RS(rbHX8;II(#+cBx18?hM)i3W zOru$eUMs>%`zZhr+PBh9hVL6L^+$*H2d`Guwj+h}Y%4~LTuToXkAjPh)>3uYd_zYU zxrHmu2cF5hXASfmC1H?V88TklC9A6dysUJjW#E)`Xr9^}3foH#kcV(zaS0}ydwcqR zd0Yq<<8cRXVa$E$b_Q|yPAQ@DD^_jsF$JMK|FIkAPkNCK+i7%)wQL|J0WofgpXw9Y zyHBhnkKC3#QsQfdk<0T>CNP!0vVI+ypOqJd>Ku3j$o^yX*pqg!>kM6OTC6Xq_h^Hh zn~?1A?;loa$yQtOiG;oq#N)!d*~`9X_Pa9+^Sa2hr0^f4@Wl5wP-HMy7iZ45?*ksl zI3?wd2SDcZ-JZ@T6F}*?V5nx~)WSO1^)8Qj#DK>iYifc0K)cjF(y1EIn=}DUF*8RA zi9#i=Q`%Fp=alG`Do!Z6#re6UvKI}^7YERSzRoks|0HuG@*n#~a~J-uqzu(F|vOWpAFVSwDr0^$uOXbEPKXbl1BHQ*v&VUev#GmZ&t zkNB;H_G+_iR_Txgye`Gykxe*wXGOg=plT|4hF$Q>yIa$o|7s z{$1VX+-DxE26}}y(o08HxQ0zn(7!GQz`apY{OZrJa>=vM8B-H1>ziG!G`tZ zE2#%Wd0`V$A*U?C^hsFmD?>(`!211QszgQ=|W6vrVud23waMZGJ34>Pm0aEXy z_=e(lqU6tMZAE2x?s6S&;7I43T(f!q=$Bc_eetzOvMAT0v-sqQb0@Hjo&K7CCXd>r zCX(U%Mz?d<8VFdOd$T$1W<~+0zAB|q*{!c?46~G@Wi48cmIiUdKZO#1I6VhKU#sGQLa+)!KJ)ap^xZB#l%4VN6}0B z)hAk>0%@@LCSPlSG(3`$Z>ZE?^kJOH#S?ExJX^#JazzubcN@QVMn{iACX;_Y6Otq! zJknG80c*d2C;f^()loos$S+UbZUDSxS#33+8_`FpzOrK1sUkDZ=j--W#iEBQdd@{} z(tH7b&koq4F1Op-XesSOb<^H`LA5l!R=-|?Q|u5cn~L3-R9f4I?$MMfLpb! zYv%GytlFcbM}|N}rimbUUyCr9@R@v%ryRTi@6y zdtXwJ)w!y#@ph|$&p;D}<1Fqe%D1-gm?3mD8Y~BrIw~1|qqdt#=(!p*iO$g2D3PhV z@P=y3E2httloOZ1RL5c>Ef=Q^a2QAcxa;I4K7)ARh#n7q+g;S04l>SRYrZ`sv+vU* znMZV5F$a61!C{cmPVUj{Nqk7Mve&VG6@dKkuy8-;VK5Il(|Z4?k@(teH(HZ^I-3>J zQ$#1U%hk=jmBVAR$9_)DozmxNe5r5T$#t*rrBEUL)rtfMQ@g#zq)bEtG4-0%o6m26 z(V%OZP^Io`nvU$Z$JSfS6r@?)$kstgO6J7%x$0CYw|xtgGD$cU zwP9Obgm@AQh1BVcCvftvGul>#p79-Y)hOz5_=GCz!P)B!mMwyl_mWTTxq;=T);Peb z+gGmKME@Ju8z~sPrpofc2&x2 zTtgHq(KlKtx4vlgyFsk^YI`NmYRKa4u?Df1S7!#^d^Th>h?g4Cv(ATY2&mZ zd1sBXFHKyTy&p3cyJnS7Jn6nq_{BpwzIa@@?^D8nM4wCxr)iR)?OuKLVgM+B{!=If ztYMSeYB^^`HKjc5rpPWqm)j=Dm2=FHq-feVSICv3I6UDoSAb(gcB_1Jj_a0GS1$Px zpW{yV%EvOkctd2Vq*iI^?7|-7jdci6E9|Ok9t!(?M52!8M=|@I;IoXvM5N znw#Z_sPT$8e}BID8o^ol``qN+_TM4JjbFD8q-^dT@4j>6Z_47-m%oK3)4y(UtZ)8J zS=$M``)8^7dtr^7OojEU6Qw32NyPHwBS}vF#v@6m{7pxa-28ztkBM0tA8EZONns!4K3kc7Px9M{09xN? zLBL=9KJfmk^MkM2D+R+*{|5g(Q)~jfrcZIhszxRyxNzh{M}wok`@fdoziQ!M_0yPV ztfcn4&-h31;`6J{XSQ7Ro*ceaCinT2@eiw-`}~DO2-`{WOWW7%__6ZNmy+*GQ+iLrZvjK53O5V0KK&cY zJ&`Q;c}(GEdhpJhYt9>C?MZ$QQ|cTKS6GjgNG^%#J+Zt63~4J|FLe9xZ)g!1dOPd9 zWL2|jJ$C-`8cXgoLNUD1%_HTtZf~zo9{3$To5&$#2)-ZKLDi zFO0EQ>f1qCk>lU%bH&FOHToJ&A2$rTS47?*hE%?~vi&oA*&}p!dDCF3aam_#G3b5d z__x=CvqjqtT@jU^F0BNoZ+qm%y*{H6^=B}bE7Ydxu*~wH(9+_=H`}1S>m8FDRa0A^ zHvW8C{PQW~@5Sc7L1TXnuKoQTJ{<6CHstSYQtL9$P*s_x}!Wc+`Yfj=Xm9pLlv~<>Z6yCm$m}e{b~r?{I^Q z|M=6|<&$T&pOi;_9%%Gi^r#809Qn`ih3zN9jea4OS>sRtujb9ltS?W$Z$H^>^!wjU z$?Yd^8~v_Vx{W>kznbBdZWB+_wx4`!^!s1UCj*thS6=$_Y46XcuYdm6FR<%T6H@8+ z%4O-MKYL}6ckln_p}9i1Ng*G|NFQc$GxArZXKu~St)&!c53?_kdJ8-lL340g(Zv6f_s@8VV+!Q?<`e&_w=VCLAv~uDj6pb6RU{EoJ4^*yWqU{-+8Eql)#o zbHygjdGxkK$d_~9LswJmesKnBx6O{2zF#+3SC2H>H4vH%R%r1QWK8!`+D3oQdu{AK zk0EWCh?#!GCyi9Uu>1A!<36`rZd-48e%(3V^f|07>}g$Ha7m@?zPGs#7m`%$&In6? zu~YaG+O++}-4nC8GZ%5~ZwKe)K{2%ti7{=7yq^0jIxFM~#ruvBSN@qH#F)VENS|Gk z8^3x#?rKLy9?IG|pyht$#q(owmtXM6eAwDkY5u$H<{5ZgD$4`zfaLSn%-{%5P@IA(Tv+3{Nr3pAzZ8bqpedm{eBJ{ z@fOwEU}J$T!{g(PMuKJ?ozDe#Ue4H9YL0Uvbxkrg9vr&N9V+>81jWndpKfE2`tE8Jh{u0qv{oB!Wf0?n+1ur*^N%O2Bce9m8!v;D^eQzx# z5SJGhdq*`%J#ko@BcsKGGL^Q+VqydrNU-?-#Z9uW9~X zvptD>74i_0_%n*(-bD*JjGoV=MO+Zwc1%;wEoI({@J!{ zob76R-%0$ZoPk7{4y#RCs>^{6p^bRPL6@eaOQO-BH|k?Cp;3dJ#dPDvy2a0fJNfw2 zo#hS}1enI;s^fTvENp74NPo{kKRCj-R=P-zPwmqj>B4;3C-EyzSDuOD1nY9X63j!r zW$DL2rzk$=Kq?n1tKMwcLUUniEiyMur_b29TTvt>_fO>8G3(!9QN}T|`|fnu|NXGT zqPSXryY&qZ&tJIONV#Tfy6qBu&Fj`H*v@yjuIJ$|nv~=0x|-L9T%I6fPyJhl`SL*e z5-z&~zow>))5nt5mF`lu?wZC3M{Bkfrgw11H74R)xYy<&Ci3}sIds9EPzz}0^-V=0D5QZzNgZaCRJ{4zYoqk2T_%v;VzWWDW<$HiL+)qHEq zTtMTg32Ne>{}W|wrZs+;UwSR<>dd9N7!B1Ip>KffFZG1ddC6kVQBJ+MOtH}R)1 z^ks2^y46a$q?wTl!(_)o%B)&`(|FUGn}rflN5s`}*rE{U+<< z*FGiQjES2FYX1{GZ~xW7GyC(_ab|F-&7-vArQhx!$243n{V=?)5$V{HmM3nTh62Qr z%wrnZU#G8vjox)nkmsi=qQ8v&x|c0MKJJ;mb*4+?bVtyy`QJ)6zI>^C>|lTDE}5r~ znK7Z5DOmjfko6WoafDs7a0u@11b26LcZXoX-Q6Kba0|iRU4jO8cXxujyF>mVdB6L; z_x@F|( z-4NT(Y(9CfF_#@|t3{v#-$W(ChnA&*tqFh#;$oSQ z(^2orLV8lYn(;f-GG`x3{Q|_AViv^1Wn8s}cQZDK0tO6#sDk z{Q@BovMIo{>k#zRsKV&0%?_GX_xSUTgU^P;*V#2_PXRwd;64z1(6Knfk!S-@NiTJG zM&OmwMPK1dMiN$nbtjA1*+1z}&v^&re%~E{_NgxnY?vL9gx{=jVjcOQzjEucPqm;9 zPOxq4Eog-s1k=n6{R)v(K$|}dTtg)*J`^t8rq4}qK%NnwldYaL$W)`xv=mPVkql#A zlo(gK{J!zb+@gzM0UCq4T~`_V#|!ap+$tJ$K91aT#m2o z-bL}RUKa}=`}Sj3qcm6AS+^}*eF@fRUS^OxLPlSj!`uCTetO=!HeFud)YGDxI;j4M z!)w;{%sz$Gz2mDX0(_8cp?v(s&&s6Ht3F>G&Sabiv{x*DeC*^_q)R#7L4G@y~cHK#e zM~Ir=F$bSR&ZLd8&0i4FzVqBXD>Or9xPgX)vN4N5YeSlt1EcjO`?%6JghY}5WJ_Z5 z0Rwn|sH2mBrmu?`^sG|uL}|u7q5Ba_6u0smbaK)s+%vi6Hxema2R+UjllAS zS7R}h8vo>AH`Ivj^Q}GzFVw>yle6EhWJ@lmonMzGX#6L?c-D91P1+M!XTvZ4h8%!^ z`_m>84kaC%!o;azRk?Otpx9~5OnJ#Js`R4)iO1!en~92Q2XfX!1Bt*BhuxSVzpt* zWwUMxV1^aq*3y+{NOD^9R_b6@Esbv+eYe4L%(W>kkGH)v&uj44vI>i`cBj8%)=Fpl zL^B?R#+}yD93~Oq))}UupL_(I=JCGDb6WRq6{*1<8ycR<&87u4mm03`FCIFboSAiV z1tIl1g;Q+-_Z-=2kwd#R&8eJYCc5TokY1JCg`Yi+KVUeaOQJ{W?II0nQL>s@plwYW zs+6tRv9KpFd(tD{X4TP9jB@?6MJH(|uLW0pfjx}+JFd(MRV~Uy80+Xkd`zoo7rdcx zfi1Nb$qr&`8IGAjTn}n+09g%Gaih3Q3?5^?Y|IRlcDwk~*M>pMo5Bdm8Zs#39?%e3 zFNc8n8Y9!gYddz*phS>4rskpQElbN!C z5y45kR5WQgu%f@N$t@d{tvpCBK6g~?+3s3PPJta;644*+{5}oMs|n$MBihoxbk}aZ zDRe)SlQMtp9wh}xBl0JGB~ojkWcM&?OPOqqIOzg4Kw9UDs-eJ{;_g;51| zX^OpRXftkXGb_&_)fd0F$^h$9RV-}wx+yGhd==4kEJr6kUu#ozNyA1TCJuUB61xmF zzb4FAaTWX2zOOX}vw8q`kUBT7@vsXpfpgI;dGy|+`_Q8u;MdSeYj=gH&?jp*9m-_RP=1Z>0-s_OW|){) zgZ;67q<7)0N4EaVS`JQk?!#QlSd+P@F8jA=_tb%cE0Yayul{9N^IpQ5xDtJ=Ula5& zj!YH7yPkT2d>40*f3BpZ2n>2wv-rgLRI?b0v{&?68VRx~NhCZ~{tzvnE5;O`v1^x* z21d}ApKiU`WGX}@CV6&CzvO0p&M(dg^7K#(q5I13Nr1P=8@cmnMlDF+{!k?P$t z^Y|of);7x6wJd>J&!JQXY)($BH8l9~9pZ8OnC0xf1UaO2{QKN>0+Vldh0vEkou6lT zOtWIGoxM?}Z0kkL_{?GBXWSDuif^U%V(S5$lH-bDnYCUlbxaCzxNh3(lsJmy1zTM^ z*lLk}{<(lfG~S9mf+S>&nH2Z9u3de+NYAdRpY_4g<3lS>6^2MFb|}S`vG~Dx?SMeH zPKrcwnUqgoe!HQvUUl(LjoHt%M>N4~ehjiG*Qz!_FbREV8efmAL(S&rAwSLYD#`|u z*gCOS>(V9{ThL;RDuyJaPBep6|3!>G=HgO#DHBA~8}2pj#J&D(3^^gXR6GTSby}lH z42HRuWQ+$?IxFY!r#EVrtaxH{on(6QEIOLc;oRD)28M0P+KeghRh9f+jI>hNhITkP zElSt(;x^lHszb_8*~M{U=-kJMm`?^tS>lI}A+VeP9;auv)&wp7R-hMGCX(G9{!I{b zzq6B~*%40st3h_K5XP~A#7xuF?#1wdy9_1a+)Jh_IrpxEguYKpml0NqL1BC#0Y!-; zb)r`39hhZjrb=KayUs$~0VO@?1JADiu0YWBH6D=xd z9wrLs!ld-fVL8toCe%I_NstWEf*qRLLv?N46X@EvE1WSMKmL zLny5{0i6boR)8QYp}gg{`=xCXYvWE8))I!~Sxng@Sd3fnh^GKCpROv1P=9Gd)yrU* zgf29VI1@!~D_h0&Ye7bMd4{z`4F(L^cy z$qtKhi{S)2W@rm{%i1srx7Uvpl8~(X1EqInIT=~r3V6oG{|I%XIF}`XKb;H%rIb+P zYvbfZ^9$>PAS>>Yh5`?b=hYR4VFOB8lXtBm1A94a4Hnt8HEN%uYokdabeop+Pc)Y~ zum_uY&Ei|khCp6Yg3y6hk!bQG{ajb_qcO(8S=wF`GIbS;`G~2J^21$!lj%?w={t=1 z@osJtR2SC28(c%cEUsuiU^I_2wO^3Yf5a%&aZBcpknLTD+V4x^Ui3cD@63>Y^x0JRcuMnS^+7+FpQgxcx#m+fwTLmyza8~RoY=~XQn~umG-y<)@Qd3 z>w7J!Rc>>QC~+{iMlt5LbD>5)B6Hin1&+qp(vMxTNsdKwF;XO}@*qz!dqc^oheufhe*WRG}Kt}Twqm8W5=;1A~12yOG{{Jk%7 zu9iDYs9J2D*vXv{|L;<~z$>UUk;&NxXK2)>!Kmb`L7SWd9F^gMy`@idhhbP0eNky0 ze#8-g-4?A-SkOdQY@(t#LOw7v!ZCtX+a(jXmchD-NOIFFfacPuG$Tc&)KE%V$U~(z zGMtcGiJ_LP!LXMo`?qNK5`lt~0j>>N;*A>G%$m6M+w#ijGKYb=^cZRfar9K`Lrn9Sedf&wGfwV)ycWFZKJ8W_!{I<8byP!_h|pat+?OeTSK5) zSH6|;4p(Dy8`q?er5LajtF zM2L$q;g3FFB$^YkOSK*ROl1|m&{gf`-G1fdto^r(b3e=e-Nm2RB0$hZYUo8>Ou|IL zZkdVTT)gv4D^v)KJ<^aBw3vkeOm<=!Y{lZc6y}gprArP2P8}O?>e#d74mr}Mf9h&! zMDpVT;H^W~JH*`Wn8nB6%}l30i>3hbL&|3;zuj0#ucnwmb2bUi%I`-psd$1=v0{p> zf4v4oLG2#IEgvH3%*G9KXw+W=Li2zKEv2{X%hBgoY`{?}Ix#QIpv``M$j1GBxC-G%}=y#lXC8FJN)w z%+uZfEiM3*L&Q$Aoap3t1#r?vWU#C8d+ZL(q$mOSHQN9`i18bnTfONy+4bas+Z zWVx9erjlF9J4{<@rKSaFRU~GMD*=~o0wXqe zi@BCK@)v_|nGYek@*I}jRBFJR3_DZQkJUN;ro9YT42lH++K~BgF*O(hr2(LHL_K=k zdnxgpk*d|k^Hcs82`f@Uffpj5kH|R0Jfn9lL}hRqMau(tuQpg1^>NGF4+9VFl;@4gTFT>eIub%>)TN?bNMCi7e|U9L&c~%T(vS?LsE2zZD0kqRVv|%~Hb8YN zDhS=YKB|4!Pd+hB>=+}9c0gJpe>0#9si!)kVy|{+yf7`E ziQ?c}5uNC!4rPJPr4PufitdG83Q9eQ2zNZX27c;&-MxS7~a09_s^H2XX*wjw{4bah98g<}rUQG?Rl4TT_ZW z_BQGq(mjgoku$FV0);kCw6Z;~!|V#7`gmHUGe~STib(v~G#arG-5%x-e^2iqvx?xL zoo}4XF!X!0|Uco_KW@X@Mtk5&XN&qu^G=g79^Mx{R8UY!qXL6)z;`Fa*gt?1w%SUphgpOZ|Le_nq6dChvZYmND8 zJ+QpPBftQB7l~yLxgp;{2E*24U!B^}jVo|t6Lg15JsyInT8>v)w|??t#_&5VzA03Q<^b&tN$q7P{o(L}+~ z5Mvh+MS?*M(@EyX$FMvdQ1R99{tAsocmn9qjEBK`M*##cUM6emp1X`q4#Oo1Z1rla zKwB<`pj7=f4BOYiemZYQ{^w%Ja}*XhJ9o)J~V_NHGRyJLy5F1j1*$i%_k}Ph=vj%)X9Vi)0{6G4$wt3KgQ!F_^*#f#+z- znN~@GMbxdR^kejq5EtQNyDS$=aH2>Kc(XevMI9s3YzSALn1r@3{k;5>*(A4Ug~qJs zsD(*qMbdrn`297bJ(fVLXayERO!8t?@gM3??-w<@lbx+OBImiFSB(9O4kIi zu>k|SLz&n0OmOG}hze3O!60rN-Py91xKD^tAbTvIGZpYRdA)@w7;Yv8z0B29W=S^e z-~_XfcD$uwjM8A)JaWFOfBkGF$vN=cbNNlS`UAsEDjvcfpJd3+A4O&FiQmG(+mDh% z`vZJ;Q)iw;;4hcVAM3tT>2edv!*HJ5nd2z;5-5NoL8YL$`}~NJz#EH+p`hdagc_eL zc8!vyER3~}^*s?Yh6^(6l7+4?5_HjEUkn5xL*Hy9#=wCzgjvVijtB zVYtWHOTbEb8b3k`EI<$tK>D^k zmv^(hGQ(4$TT1@+a2@bp&wTd%%%+X4fDNLEt>B@|BT4Ngtkmd>rs+qgb{{;;$kpRL z*Qpb-?SDJiBq7IJ1wCilEu7oWHhCmsw73rQkzZNeebPg1^(rME$-`5-@#VvF%j^(J zxMa>s#;TK&Ll+c~qPwyuS-7p8dl+~6HtB61W!q;O+=0H%Tc#-f zAePsMlR}WZZnnxDIJ9Ff%dJVlh&)ZpB5AL%%b~JDa%;wZ*NQ3;hbqy7(g)_%+68Hy z934P`=7llCmz2y$)eDIejA|pe=*=wIN6c7{*G8xN)kvw|mcBaCT95%E%p;8xv*-km z<<|e%Gj)6y?$U^9)1UyuYh7B%MT~2NIBE-A4LwfmJ-Uw_s8Ph(ZfsLz)Q z@@^(|pxA#wr0|ReTP=5Hmu9*=Md=eaS3*uL(@Evl_oczhPi`quBBpTx!;Fhqt_lu= z);pZ(Eu;NJwNg?h$?YsJ;^{@(4QWybch}0r(DNJzD7alJiaL%Q&y!Jy1&XNUc3b2{ z*YPSWy3ugl6PoifIpiAaeehrkQmT$HcT0|Erg!hhxjD>a?Dwoq54IBZRE+L&35Qq}A!ZTzM!q9) zcQj%+cT&+z#Aid1=vq2Ll7g0K6X9Uo5}WKWKgTG%D=U@Z{lpO)A)R-WXe1(Ab@*-O zKmo;R_I#iIsW_QOi5CKX^E;~T1or|~9&?zg4>VPVGC;i%HM&N1wcW3N2GqZJecIb4$d*lZ^zpMJ1_%Q5_p2$uW~`rep~r` zZ!tr95Dhhy`Dfpz{aTMRWut?I!YyAAqz>W*!L6TSe7&_>`}<$=3OiHImb!_qU2hL7 zcMQw`k4+=sb5kNQ)7?n_phO?fzjX_ZDl@Q4pW~>X^6|R)5UeBii086!>+Z{6_a&} z3N3b-KV~+ik8@$}`0jsDBZ0BrDAxTv;J<&STW0UlVJ&hs`@Q-8Bonmb^o)$?XEa45 zQgP(I(kWpDT9LzRaq9%TCXe)opV8#g7Z@KE^W;1BkadOeg2{ zxluLUf#YRc!7+7UL+h9f0-bO4^|jxKl@FXL?sZhtDg9?S#4>Gnntd^zjB!ero=}Ri zM76TYyBkaPx;stt8!q*RvqyL6T=*<2^Ah-d{Mc=)@VH3E+UT1yD*L+-; zwTYR{T3Wo8Z%s*eXQ5S+ts21f?hHPpbQi8RWBTosvJ@xG38M_o)4dnh^?W6!Y332p zS=0NAZg}tu`SK6=gFZqgJJb|dmvKdc#-BxpI`Rqlnc>h1H1!TP$S0ZKS2Xe?AYB#E z5;kcQ%)*V%E&SmMpxkN#S5y0K5(j9y7-D!L6q{%#f{qJNROv?kvW9^Sv0_I$aS}u= zR#ogVArmZXI4=R%)z<`Vo7x+t>?cQg>Kf zs-!fure$#If)cp2FoVO)Eu@|$W`}wwL0|dZ{r0P89FD#s$7bwrwtVkY!l#G!I`PCT z^Qvl`F|Lo>S>+#5XcXJ0N`iX!=0N{lsSCr_^+ZqKrJ^BCQ@$N}Qh;Y!6%e3%?rlYX2%0y!#q$==7(_-8aGWb^reFC}+KOi$=Lf2E4=$4n+%5Tw{rT zM@+uhj$1s5%bbMp=PszpDtpclzr$xvApI~$UZ;Y3SBgq{popHRcX+;Y67)XsXNT3$ zgP_2 z;Vw|Rj1i*2=NmSK1q z)Y&h@BGHFZ36)pA7IF<=K|}?`23v!$)5|-F*)P2+kmK zX#O~-!SaBRLHq1cn-d}Zi!1d>5@9r#C%IU zYxykXNo?kdL`pBmCz>%eqHN$Y5ng^4yAPS7Hz;Urfsg203CGWm@bXJ6%IeVsM>%5l z`|<^D`B)mdhYPDjysG$2W;}wjv=hw2i>|p)@J;XxBk&1gf85Ew3QZc$zLF>v4k&C5 z)-coud-h5bEIc{SzAkM%CHW+Db@j{q5#-LTB!UdeL71Ve%h8R<sHx$+__tV4y|**Zm$=C@w+m9>2hKrvo(3Ji*u!Qu?AtxWwTtR{L=TZ&qdeH>X|(@lbO=! z4NZ(OB0QvQ#c+X92KP7*>SAr_;`nO*3<|UP%(Cpkc|<4(nmEKiiF&>iYN-bA^7Nb! z_>##FeF-g6LSny}KA^hez+ySK6SW4%o3m#@{ayGE6znEF#)~{Ho0lSO_5Y#?CdVP~ zNczX$erNOlArtHF{OOaoe3%39wx)L+Cf%e@rCxvV`?v2TY0rl_mz)JkvV;Z!pzv&- z-ZtvxdL}vOA3MI&!QkTSX9t*s5RPTc58-b_lPFYywu5A{T%gTQ8=dS9foUaFZuUf? z>w&X(2#l^z10%fG;obB?=;m%vsTT!m20Q0aP7eVffrG=})=`S8ppE)PG#XV}0)I`D zBL^p%q*}~_ib$zUM*1Hp(%Kr9u5gtE0V8u=GjcILr9D3KZ%F-#bOMg5F{AO z@9wk;hnP=q$VZ1IqlWNEAqL|fcay4P=ym!Tw207i%b z7*VWthmxzKtf)W`n}`=91-YcOF>YwB8D`is9T7}~kVZTD!@Ucsa--MzK|wA1*x(>R z^F;pSh2vJJ!*)Q(>T0B=w4k#PuA=8OpCseBg^s{5b7wXN@8}`{AUp(# zAm{UnWrjO3cJ^*#ex?v80!2-I^4%u9Vh=z+{3uAwI$OD?xh(o$)_ujjmCe1 z!?Pf19K?0lCZ%)ZVYjIK*=~z>f=Jkj_>a;TW^e~5zw2^g?9DILj9(+h5LeGtY%{v` zuUN_R%2}|WEFvF|8fsTa9?it>T5-MNaJ@zh`@Z?KcEMYBMt4&Ja$}KiA%l+!Ea~l+ z{=kyAuswNLhMb{<)Cp%;+c287(5uHD0m`+y1D*1r=2}4C9o3a#nHaCKK*jRW0k{xb zhgQ)3YElRvjodz0*+IhAk|%+zu$SajepoAAtYShrpbk_gcE!*~9qKx>e~YXa9u>^M zoZBL{USUmP(`b(Q)rnff%xLkIOgMPjcq;#6Bo;)1 z!Nd546=gz2w7M;M&dS7JHPIJmUx~-Mc0=Sc2WDo0lZ1TeL}b* z?f&k#N02qw$>{4kR6;l@Qq(wALh!aujxJsbYWWTkF^`X{uHQZf-mNGHm)qxYMt<3n z3PQHm7_B=hHhj7GQE%AGn@eizw8XRtr4%JJ4@!`k%l=99=~ts_k49?*4m)od=nyn| z|A|oa_Y;B1shx*SDoaJdM@A8`S$nJx;A=@}M;v^7dY!|tuPof>r7ow4;6(SDK_M8+ z6r5q%xZX}3XW77WwII%I{eI8sT3GUA#*1LVMd{=l_JZgB+z_k#s>g#n!ofyQw8$p{ zow~~z48UWv(S)BisWSQ$#N;m0<*!My-w(FLofI65U!++uI1}gud3|u7231Wn)*{WC z$s}Ck63-_eU^+a|Y`TlZ6Zt1II^ShRJzAy_y|g;cnu^-!5e53VIBH$+duQS!f9E7* z8zN^mDxjK24Q4QVoZ6rOUD;4-?X&YJ^xm8JayR%9vIC86T>ydC?OrR$>e&Qm+Is@l zx7BOnjO$`$Qy2eg+1(RsRfG^fW@8SqKCo_DVM4!>Kn+V@1{Mb4+ac4a-N>OhLV0v! z30%2vJ}s$bg;g9;cNt+Lo3uDn{Lmm?|))ptE_%Am!~f;~bth*TMZ- z=1qa4%otxOTup?8dx91)S^bK-?h%cYidbRDlZX8#@BJ4jFr&DwjD7WevmCbJ91nXn zr-zvRYiDJ~2zy@nP-{>hWM5OF_)dG_1jEyUmgn?3K)iU*LB(Yyx=_RUA`UZQ$1>4~ z8JR~!ago@w;MS5DH1sXGj`;6_tRt8mYr}pSgL*Paj;?$wlPzwkF!2b(KGHXM)sS^B z9m8uNu_@kjRJ&ic=3fS;I@YGoT@7C1C6Ndv0`u~8mB|OIis8&scvbKQP9>2Y;uY;} zTC=%L7E|9_m(6QC0lJ@{&uZ|w)FaoBpvOz#GNLxk9RaoSfpX>eyMZD$1a41{9?ll$ zz5i}0ne!@tWB#?QdS)IKTt=LWa&w~gx#H_0dV)bU6W-fLHIg^tkkuSZ;I)0s9@xH1 zhdOSWVl|_;p;-pp!lN{1UpuqtG&wgQb!Y41@b$gXI}jWwftD{5vjumH&bjTD5XKYQhxod<$=(KxDp zI}K|S!)pC8EbhRn?n#i2=W#pvC7_$0hy=nF=yPDU{9#L!%HQa)$dQWaTxm6@B#*=l zNq1jozkMMQg(**WL;*2NYr|wRLgPl$x`?uQOP&ZE<0kDJ`vX4@6amq;c3Yd{>DJ?FU+H+g#B^Oz{l zED|$Ww%rd;W!0Kq05`hVn1sSK8yE~2$U?KCku9L_lbvV9@dQw8hdG(?*Hl;~nMYe0 zWlqARl)IYFE(S|CH+tNtYu$D28JmB5*`FdxZXHWaFhM%&Is{l^yScY#vHEI;eRK?d ztXNLNPx1Z!7zEc_fv@+gvs~z1fp7o{W(-o6U>N>_#AEiLP6>JzS_lc7?XkK(!-tPSn=Laz~Q5Ff4N0vcs$WNw`lO*p^$uQ zXMcKEA#qfAvC0iRP5Xx1y|C%sRE};W3+Q!!8=89yoZxKJFNt>_OiPp zqa=ALoi>CY{|~n?c4T|!7Rgu^KZ06np;4jtvZ$7>eerC3@!-qQQ6DZLII4(vVDc4D zG>z|dM()ayB1f5)9N4pv@X-0$SEgBgZKrWD%}=5+>?R-xjeevyL`epvtZXGFacQZ$ z!(BRgY+8WY=+u9cE`Fna>Z4)m`B>`q_v)TzIjPjWQNT$t1)?_S{ddDV44{;P$pH6Z z+Ep$#J&qe@T*A6@#c@VqbuUqqnc!YlxcS$1m@__Lirz4jQsjP|+{WqR$S`BMg4-@6 zQ!PT6expjl%%yg*e}4~7TXGQvt#6EWSrx+La9={Ii}b~Fi&TU1v8f2^v93UOh6lrIl!$N zG$Z*^#vRlOYU;C)z{QCCn|ti+uk0e3!BFJ2@5&w!KcjW%frG}q+yD4McVCm|r8BzY z)pYy(&M00Nj-`q`EMhR>qkUMqh((v>jt|Ezd0{IG0{IE*|IRH6!8;B*^c#7M`!ZBp z=whTQ;Ajy7R__T8J{Y}Rpwt@@@&%CE=0UF@=i@*&7AdfOQi~?g&1Hw1YAFVHqqx=f z@Jy!04cR5jO_U2s+72ly7ZW<_L5O4iX^|{w373l~(<3@ldmZ$%by5KIE=R{iw+H); z17azJEXS7nsj2E+b>JSPMuD5X&HVf(%k)toCbhGUxjDr(bCXLYe@@vslTYmi3<=hD z;^=dfiNH{NjXx$L?J#xovomdDLaE;Ox)1;=R=@WDK>?_U0XIeg(UTvZaG{uU(?zLh zIz=>Kew@9VA0{s-57OO|M_4}+onka4lH{TNw8;6k58NLVrm}|&5`wgyWpL=gDO!7I z%07l7s{EXl_Uu0o_qe;)Z74=)iI;-dyv1`_%taX73rG9TGJ0OW{`4RDF^&ev4|)lH z0mSr1(Wr`N6WoOR+3c51OO3KkQw7~middV9*oy9e`q1WU1BeA1fwAHyJdz=RG;*N+ zxEe8eWK^KqNSlQ*)>@knIsB}_uWkJGO8-oci`ZPkCNFKm*LTxn93@6FXC`Acu9}Il zu$3~M7?H#Aix8|2bJU!*Z$p$sr%9&y%11 zsy>&ac&Zn=a~wYSe?-XP|B8@Yws!C|>^Jp)A_OxE!pYiq!#B(E7>zrwhzZ*yLug<$ zEbQ5fdB^M`_JxJSYb}Z+4%aTRFC6;WJrH-%?^BQxIv^sBRC(p`3%x~F7#5jv`GsQ;s)k6l znP~;fCj*Nd?0RibBrUqk$RJz_Eduz#tC_$5EN5AkqzFek)=Q0fB0<$Uz z%tq(;e^Zup&MsA%&K3EIWENqdR&|Vo?j~ArnmjYCzsjh6uZWjPl14|4Bz#ib2r0JO zSR2@ZoPraW35mo@X2Y$8C(uf2gXM7kgMGCDHD+U$9U=v?shs1NoJ14=6!|ti8(xcq z7%q@@BCoih(`KcsU$cug8Dsb|ZYC&Ot$tBH*%_(J7)?Hb5j`XRPdD@F+%pQEL*y0` z>baGDAjNOg%84`ip70Z{tJWM9E1aAYQtlPQ0#fweEijk6V6P%0b zU1UZu3@N|_=f)$~OeQ<;MX1>3;JO?x~)nj1gFSE5%RFUrJ&l?Wh zspw!UZYVT<$|T*IU`35G7!x+L#y|>uh64Q2%$3~!`WL_+RkM^V+V8Ymc>Xa^w#`Lc zz?^xP@A_RmRi&{%#uB!wAj~h1T zpSEgfCgR0Q7?C0kjI;>EI^y|LhRVbhvf4$C`T@tov1(~&DE7Y;h{Jy?kg1BL(Tj$y zGzxTS=nk+e)2LCz(etHV?!dl(=4cht^sM#fTPE}&w0Hj7Xn&@wAp~K8WsWW>dndl# z1qg0o-Uf7EW}owfn5hDc680YR6vVeNiop9_Sd3(?=rxR=9o3X14aw#*?Ae%sy{&TP zKT#=c=|*Hm6+gqio1-P{Gq@TX@=DF&UbkCNZobNY`NLZOM+L;fGN{k=!QjlYe_e~z z)=7HxW>t-!ZA6VU3IDp8?1>+-bzN2HgD;SbEvb7<4U@faVVliJjj3M09KfvM{m2-e zT*8W0XHX5CxNb`xxmN_|hfFZ2dXG-n2@NF`?L-i@&XN92Q{cHp3l$8a`Ud3WCe$J~`S6VPj8I+l&7z=zwMo>O7W*Phebo>&GZ!a{R_|E6)a&GPT{| zO(&3?NRqT)J#_Js_Z>cDipF;AKAqz2HtL>`{dSL(l6iiV9-N-|2&P>^=1duPQSySr zlPY;|U=MxnN6gpIwSaE_MOZv?GdSKJ*LDESt6d%!{Fc;=!Y^pQ1;b&uM6id5qFpWb zHj+dXOX!KpY`#ZGT4g*Ed0&yzR(p7bDJMv%(12+oH?ZomM`rdvrs!#>J`kQ@JpTY) zRIDa}vK^9CjGniHjO(yIe0D*?&ITceDC-`+47HJbgjWAoQ8GO42iZWUVlpkjn|I6o9V0-FlCyiu3zMLBQAD{1LhEMTWw{5V zu69#!zWhIqXczkb0nQmqaFku`dzm zRG){*MUCXc1LuVfCR^oZl7*x}Uhr(&fXR!^x~=QZ++{xU$Ars#3ZO-?mEM0_dv#?k z)83ZD)^`K7*AO?9{{*Q6hz*QJppi)jJ9m=u?uP;*+$?CQBPGWWj*2l4)-EE6K>uqJ zw}vn>m2*>^7c+IC@igFv+WqxI4d4Axn4&CUt@RqI30XEwh}KyCr2~$ce|Bim`S+V$ z&^m{}-9c=NGZ!faI*^lpe(1>m<%i1rj~}YsZHKWJW&rdjj^QBU@|X^dGdcw&Yexxt ze4fWZ(lRfETRt0EIIR43^d zk_$57_3SABI-g!Lu%##%Op|5iL5<*1+Ew#h6?T6dpE=29tja! zmwt;O7@rvkVqIixE<`=(MVQcHg*4)4;<1pM5vTH&}hgRRH;*kO?SIco>Hy?%ecwuZR) zfVw+6wi)$aSNbsOr>i}KaSP|6a74U=9$ zdno98f1fiC@~!~|aE7On)BFMdt-^HZ?U739Mw3;8+2k?V%}HkPG43-QfCh|VwYW+- z2+W-s7>UCMIqZhd>_kN4cTY?2!}j-)kZ#c(etM4ju8RG_Yrg?FA6;8OPr|Y<)GIWc z=j)NHXhA>Wwc`HD{9opfR19x)ZudUc30<)K?q_aIBj{d0wi z>0FeiOO((tY6#HpWEv030-yp{aKQ?uQL2Pz{Y(}5?ot7j(nl0eQ-FfzqVns*mTft zTZG|EUK~UU&^=U*Wwexnb-ZiaYqx2AD7l%9C5b zT=f)N{JprT5+o4|r|WHvsPmmV%uTe!7=uYHtYOgpbvJ57iR2HO{02|Y#N7`MtdC3w zN21ad6<+Ns_h8d66HG8OlP##Bj7eVW_`-cl+?k#BYi&v~CrS#xbNJ(M zEm~e1F{e9o+od^bV=x|2yu{o5k<;1d5;Ui;3qOrCec;&~tA#Q7rpI~|>G0@(@6#QH zI=G8sHbge^vMVmRT^sc5g+sc3p7Owg>a`q%ZSTy`T?>nfx^>wKinWOsBnxPabgxQk zFXd1~!pOZPzlulEi+202D`l(67#o5W%g9xk+_A+EI&di07)mLW4fF;c9%V!!+N*z} z?n)3?Y^j8U47gYs+SL_P8ve%ZA%A07 zRbG(1K5O}{F7>^gwL2BXa1j7B#762=hQ$n$aSk48sbK#)hwJE<0r`A=+A+NJ&)HBM zzH(o6LX5U9mCPJTVJZASiAzJ8&Hs`YV1WA}Wc6RP;TM1n8F|Z2HsSVp%x6S^x)@ep z&vgxtsiVQ+yjRZa`Cud&%HzGY2pW;uO{60IbHyQ-Bot4H^?ThbB0}}(hxp_GY2ost zR7KXaxZ>J3E141L#IXC*g0IoA@VCpYRz@;YKB(CxHe?p@WRaA{9y1ALBYxOGQOMHw zB-IT752AEfEeJ{uArtibf29Qoyu4CbG(kULa?*(R@vUyC$Gbul^k?sb0P(T3Xbiyp zl)@EXZGnTnzjt=CjDsP$W_+cx;kLvR;3bp8g;@U$5y)I(Q!Ky=kw2lDB0Mu=pZpmg z2v1OY19{6imPI=_Ekv2R_5TtTa?lOLbL=|r@u_0wpF^99Yevq}jp!B%mwYa;*a-Uu zYqLqbK;F`eYEwPm6U-cFIn;%xD*qJ}@%A*z9TpCdpu&Knpr#@g`xm+7fA2b=-=JhG z2SDv({Z$l@Db+sY{rTm_h%yW?j-0YJiZW~1M=(G#;$9UzAKz5Br2ZuREZn1TEpoO_ zsEE0QaLcB)dsVfObs@+Ph|kbe?EMc_AoJjTXySaQ3ae;rm4^UTFk-(YayggMRN8NY z1E@m$J5`8(rwTvbF=08tnySr!O?I5I!-CKO^thUZ%tW6KFf%AEbwn!OTMn;&%K7CN z@8O7D5;~!)`+^a~st%b9+MH0d=HLIkjEx()*aqCD%B-OFlwiwW?fr*EvGWZlT`VeN zLH_3X4CGJNPQMEhCB|IpryCF_`{5Hw%<`KSi1SV!YgKGVKp`6J{%;+z_*X}mp$|i4 z$&H@J0?7!U{tA|4+35cKIG2y8EM!C7fRQnc`tTp7FtyV=RVB*Q_5W89vDhj5THhsr zjHSC?JLN}-xXxKLGX!{v1gga^PuHUYqQSzy6^aa@! zs|V@tA_GA|C`na`d7u8-GQ z+tXr}`?l;EdZ|0nerbO8MEfhp>Y4FH))vmm99TOZE|eu zpX=e`Y4rS?=P8W#q6ah!I>1uw%XH0(c zvh$4=g?;8a(08V}VTsi*v+M-PY!KQ_{>#@YYwbZsjMN;KT|tdo_7waFWR z5h^Dr6-On{vumA?J?v?WH33o~%A2ls5?_pzVFSNFe&i9O1Cw3BxW$Zg4Jk%16Udy= z!q&h8Zz|GpiAQcA6IX-Fm-ue2F@FlB90jrp$`1ISAGK|3!5KK-8*Qw5z|v2wC()Y2EyK%|En#EGpi|6KuTFSkdO#DR<##ipYc`L7cLZarNYVI zLYFw@$cy(Az!%TPVD3}nP*Q=GzBu)9C)K zX6UUL6%XW{kzg>J6u8j|EYCZCAd8TclxOTlwKB$92P0 ze`wb0ckr;)=}BoO={jdXn$GfqSgz_u#z-&-k|6moR7imn^#2j{&w-UR&-(znNjBET zwr$(CH@10_jW*fXwrz8B!i{a)$%$>=yr1vy-uvfN_jI4B)6-L3_0&_BsV0cbH5epR zqqybBRWI60R~|tEO%HVuQb6Li=^UxQ;CDH5?_TDWD1KgandGxvv{%WMR z{_Xpdn3d8!bJ?4X@oL{7%e`VYH;!N>7=)z%Ua#7-#7D?hF^tYeXSuKn+AR`&-$U-O zN80cicxnKmy$0TaJr0v3-X#e??ssL|Lx;4sSisA1OAA?E{2}_|g+$P1$dJ#3U48Qy zkPC7fi|)>Rk{YV}r_||5nLY6eENYZ5GX4J3GU3JVbA$Xz{v*A;bD)(g6W~~)5ev)U z8EJ@pO&o4rhCJ=@1HDmzZWv1%v2-13fx)^jbDt8cgQ)#+5t692eL%Mb_7S^?Qv{L` zn^%oy_pc3?2+bURmzog6w;?>EvbsY?u)_!TRZkZQb8fl2^j&VkQL$iG_l1vr&Plkj zT?O-Hd4zW>g*9cFRl}dDiQ^7|2VA9%u97Kx_5A7r4>#Pq9i>G7FH57{ep>&>jNHIA ztE6j-*xeVx+72PKJujn7Z-z4(FGc+SJe3#hP5GzAs=oI81(8$*j{hA!u#p@^@DCUi zT4Z$hpgeiAOTBlWv)`6XNFt4oH1GZcJUmt$%# z_CO(Psc-@L{G}o)52CQ^AICp{`OQXrqJl;YpL3ot^VO8NHS+9eAvu`zvvBAM08iZKb-%# z(YjSP%Z2^Q*;9B`pg=4=5-55U{&G+j@~Wu8b3Z-AW#C>EoxCq|$g@(s@V1szNZ`-@ zm%$-QfYx7KZy9C-E1F{}ZWF<8K~OyWlun{M=zLapU(g-aM-AUhkBRTU>3f-ee3e_V zz1TNR*SwyMX23EvS$qC)ab5Nr7L3rh-P(8mX3)@GYQ6(AjC1(tHo>-p%=>TFpLtFU zAuGTG?e@cGyMMzUqw65mUXKy5huby(4pXW5ttiu*z(d>eOg&_QF#20jMveuu;b*aM zV3h5y=_R)9zM#`qR`?mrEsA@h+$!B{{e;ddV(w8{$zli_Ct82@f!ylz81^ zeu|uN4z2meKn$PjivUKOp%uAq2#IIyZLKlB1kG!2UAHkjbng2CqV=AsLeX%xy$N7$BH*N|5t2_= zsOLk>My?J{owP*tfM_X-DJO;a zZwRq)IV9x>iP6T6H6pck{lqq{vlL!zWFh}&N3;&|a35Ai9qq&6g0{;tCmV4*2RBUu za~8u?2u0)YglD?HvO;+A`YxCVH9m`zXAHf)rol}A=M0^R3c+`Bm@q^N+sp`O`EQCH zD@lOUIO-~>9t&DZ-!eBdzJkOSaUeN>(@iFZatKXC>Yb-VQV||Nk%*o~Ex?^1>J8+>TCCZpf2lF_!bq zcsEkiQ)_^|WPn_Z5VLxSLKhzrPD1awmJsO|E&@n8!|E7h4J~wVhrRg~{#3NTxc-7x z!6l@nx8$w4!l)_6$#kB=P&s-iwYbKSh#OK3ckV@X2yB^XVJ^GE;;=N~sqR_^$SQ4% z2B8?GnNSM6g>WCpW3wRfTuavTp(+nlG2ZL8T zNBnd(!_>-U!an>udr)aO?hwxXq~Y%Xsx9nDAefK-WC;*7A$KTR+1UwGjuu%}nfx?! zVznTQhIJcVWo9L6;9bv~*A+Z1>V*-MowEFe=T9Gqj;i!x=_iPwg3_GDS;rzR$k<~u z2XKv&1FkZwUuN?vu=vlHax@PLzl5u(+J65Cmy66W0oSiz*)gctfM_>_O*esHYvT>= z^Fm(wPv%r~gCOD^W*hQfK%?;2;~0|V|F(A`ClAx_0 z`+F!ucmL&Xs0@9lut@Lhr}kK8$R$%%+h;kYmhfeKXYIiI9cvm|jRh%*FR7E3d~I?J z2`cIPQvt4vELJ-n;l8WsYEW@|_O|LEM;O}{t36B%hXi1w`i>#^e9&~t#?$xqkSFeW z_#y(*;{9Ra73Qy2r_LkP^%eQ#tLx=@Ylt3mTnC0Qxd{bq<$k+irmID!BM?!+(ez>m zkF)X0Ph$^??h-AhSw5|&DO0dRLMsYGq_EK(o6kjtk`;x#`4VXM>c3?N04_qc%H&@3f8_o46L1+O7oeE#>^d$+_RsOQ{aY6lcmp{6 zc)TtJP3OO8bPP45atyBpepwcB(cO-eA4GfiFY}p}tjis-vb?9_P?C9Wlu1 zh;tbRdg)@!JaB&S%~9@?Xdc-e?MbM&i~5n~18mgQ(-8k6N%a0+HNaL|hjV>q4d9u( zl%kyyV|@IV(SppgEjnRtL8$joJ15x~XKs=;j=p%Y2B9+&=Qv-@rNm`fvghv(@*4H_ zm<%ChXF;o!BSw?QGSq;o!PX#spP&%?Sa+Sgy`_$HN;wOCJ1X5sy=vd&d%n`I<@AIZ z#LD5Ccd*<{YzH#+EkQldK%%OEB-U!`&IZ1m7IsQGQsuUG$!HzIS{+=Bc^(wulL0CEd+;vLsWOMNx5lsmL z3qOEgAYnJ1tdGs0Rtr5({!)nWM~|8pf#+dbn>>pfnU2|ITyPMX2;73Zp6hemnTuCl zw#MYPNIiY9vCb_DKXnQR8@&%9)KL8$`k1rQRv01QTpnw-*0E^K&U(&X8kCLTdkz~^ zLKz+c(GCm|)`C`JQne9NIsOJW+A7!$cTPSF|2r(QG!IP<4?$1h9*xqNSk9i$#4i^_ z-X%{tcEXQe4z$jC0s~EmdT9dRi+UXUM1#)gFuPoN+-n3_+jgg(M6T`z*!ab6pw;vC z$NXX;>22o`#0Y9b)-(sEJIc;pE4yHrv@nf)Okmat zK{E>xB>2yM2ei=P%u8OokO{WMX3+`jbYWYG=lnBaDg_-0K~}&|JwV> zFY?>m&l{nSR=|79pO1f^x4EC!LLbhS*N&g(xkG+6_wo1tD2XB~qr$6D(z_6eXwLADtZlXZu_Rn05RQGdy)- zy$h&k`;jBHs>Y&o!3-Adur+rew;4`7PBTfPoBnoyLNU98TL$3XmNi2iCw z151Xc8@2xiI}AT>@IP3|ub2M)j=y28QZ*3r=jl*04Fx1R_2BP$R)MBfJOf#Zria($ z_DtOmWyqLpS*sGCB;E(%x1YN)o^fEHYT}nL9U1*YRc4HW!nMF^mrc^N0y}RSY*gkV zI5rJkpF%ixMO%%c+w%Rc+e4}?yf&d4d!U}><2+_9%F=I&2Da-iYGbg!eod1`RuA&{ zb-MT7j=_#S9p2r*R0_zFxG1;U*2Cn~Y_|FbgqCO{*x|dyrtiDaE@!|07CcVvKT3-Z zUwSJK$7#{`>iPEUuJc`=gT2V%DZKHBcgt}SOPx9k*E0XSW|A{IkjgoA9mP8ZyfLF}!c4YikQBLfhISUu_;;ZzTMwr+|D3{^Y`Gf6udnLa z)^zi`T3*EC^3HP(e{{rcH}EOAe5%Dp=7ipHfMA}m{ck4d?bK6Qb?xJo+&9gfXhA1O z;X%cqT{z=*(w2X!bIOsw=VF+f_pdeEHmLL3eV595!Dt&4f4B!`Tl5Vr^{k?O}JN)PZU75N&K+dZdCSqQdjwOV(QxuhlRHVG|r zw5ds|#ORODSLt;($2e0E1@mT{>lTJuRnFB0j-X9mZ|D+%%c{t2+ijMvVPIBTpulQb z2p_VDga4HQ*Nk`(xU@5GLW0>LDGRiMOR-!Kft`#-Kv2;>8;RfdxP5pL1M^W))0?yy z;eM-xeMqyG-4korX_fMs=)vI<%466%SqhIOi){fg$Ju+l3f4sGIFf11^lggap7XO8gWs&v3%p3u%u9M6F~O|%mH zm+|_w%^xt+J0&a}<5w~%d9{O(#AO(C%6#gSr>@rSrqLt(f!`sn>6e@BP}{VF82k00 z;qOU*k(}JAoocy?3R~_LP+r4MPZbYCzm^7Mbm3+iMJ5>|)vts|$JLUV0hxN$)(>Gy_UEcCMP$4uy4Hql^*r_kVu0*`c_k)~?9PF9=(4=ne7RPAri@*H*C+vJ z)Wkt)TK#mMDWtCeZugMb%eUCfjzb-6EbOEX!W&3`HTq{1iFhEze0P>=aoZ6~p1i z`_tKws~lhHauk19&C;Kezf4c#qg0+DfCC%D|KzYIn#yq|i697V8%?a6%0 zC~Nr*hsy7Aq`h=3{NoJI;oq!+l9$$ZG}AF#XkVqylfqofv4s9a>#|qrUDaZR=yAs~_RRC}4#j?pQyd5}Ja*HHyDSPgKK$c_sP*Cb z-w%Wf1(n9;fZ&fw;j}N};d`mpG|G#!EeCD)o(F;zlXn^3X5Pk5V?8_RwV-hbd2B(t z4okOJ&q$RPuNCS9ch9<+*flaV1e06*l5w7KV+U$hQf_{Cw3B^UTV01M@m7nj+m)KP zWTUrVp4j-{%!<42w!7&^0<#22ZZSL_Rz$7HrDy{GPz05#&AHC|$e=4$@h9HnrZLS$ zp=YVe$7M36QA+lzttCOlrz~UrWQAk)S7RjGo?C+*p&-wx^V`2k_(rU=6Z*eWzW)?8 zC0aybyOC+-A|AgHj{#D-nmwMS)l74z9>S*p?C0!)gQT^?XtjPcVPd zg;T#r&%tRr`4v^HOnT$d3yTh>*%>Skf>v5J^zT-1Vtv_BSAjU-FHCg{Ncx7%Co(KPZG7=_ z(Yn8x#flcTHt>@x1j;4pcb=R|$-t8nNz?h*t^s8y5AAA@Z$5vE;R|#beR;-Db9*jbq=dlpZdQVS8ZRCuOMsZBjKq__+l4?= z?`ml*?Ot*4J8)nM4oNbULhI>zjF~T+DqykTF=FLc3|s{5eTI8bVgG*VDofmI^Cn07 zZApLHg(D8fJR@&vM}jfKFeraGD;w3Kt<$|ix{QCqk#8dIrNuccvUHHGj9*D9*O{^} zS!@j{8kAR*gkoNE0QvW?^@-EO_FTE6_A)Q29=@44tv)HfeDRtvf7z3JR~JXld>o~y zRkvVSGPZT1!x9oXegD&D@48kcFjVyy6lGAqKoUWw*>Zl8xhNH3Xf&>mMtMOQF`i|E zF|r2ge{$tioL2+v#Yhc4mU1U2a+vu@#chZGq9rnU0Yi8z` zpMd~m@G#FaTE2-G42t3_>y7`Sw3TX=2p!r<&w~HeEVxtS&g8|rvc_}w zj>0}PjVG>3gJ|#0I>8ATQwqVw}8^=BlLcSQ+;!{W>D7>E?mEpB6In-n#Y!%e}-ZiX{S5cZDQ2; zmFl~+u4Cih1a(ZfRnVY*8-Ek@a1g$+L4QJuZMjn``RPA3)mS&{3>_*&>?#Uf|HdDT zL#ae=wFQo^ABux(ZNEea$6Ko=c(?NB+iyW2OOD?4$z&^;hGrbZ9{&dOy#Y#5gt?V~ z*80!Am;fnAZ&ByXHX$K`Isjp#!M1~5ZZ6A_BFI%JN7fw_-(i_36p}-HLRUJ-N3es> z7PX&IN8n!F{>5KPV|BJ8e6}a#Gsgqt`!LMT*+f@m?D@yHZ4QOS4#p*>Yn%8NHXEaf z8^-zE=17`$DrkrY0KoR=~qb56p<5&`m4QXyi}0%hj?gz=lgLahZgp2{)bY zaPPb%fofkjGv-x!E2bFl_#|Wh9ZEY%m!E zu-n-vc(;s-w!RF;JVCt58K_DnDXlm<;Nbcxo75yi+2KRJB4}E+!`=9# z)4$oKD@J)dby|dGA}yXO-YejXUQ0!@G4p%!?%eBfL>w zx~gjk98N?`2iMmPB3BEm#V$de{R3COITcvvmg@S4@pvw)3nfJYCI)i zjsAIlIj$UdoP=%&;cB-nDg!FHntept>KK1fY$OMIdO$mHylxs1w4GaaxaWj$2A_G; zX=`(MWf0OfJ#w5nbp&Kzj0RfqG5yuJ1r4d#la%H^G#JM!IZ&$(clrKanaG4KF)8IM z=@ijMiyb*Oi@BOCziZ&IyEQ#RdThD;JA<(~g8#MbInhg(uczApSEoGDGM8pC%umM| z13dWYy+>KKc#Nm}dvi4|B6gXNAPtHzg2==OXN@VRiz2e!Y`VriBF?T9=ChUilG88- z*EIc7vVt^SO_j0){)pXd%WK&Z1=9~c9b)-EDnf101F-|*Ooe-gb%cO6P|ro3#4Fp{ z_CsA4|1qw{1Bdtg@n9?$r`(G?iIXLOe)0t*7gXF#cF`n)2{UE5tEg`0cw|6B_h2^% zfy_vkaurVGq+d_P#Dxl5Lv#lOaUz_i4mb7-z?==elZ{$SwAPqB4E7x;%^5BJewq&* zLEG#?O|ywh;(YH20!s}n_)7vx&>Q1*TnpiIVJsF~{BEATw!KRU`?z(yVd4VuE6WkD z=U4sDkc-H^`-QH$Q!MAGk|)I46QpV^*B0^h)r#l6y(5?KW!>)f zInPjC+;!!`IG=amzw(zV?=%j|I!%*#~0O7T+TF+OjJ;g17F$siU`@$UmPB-2oq zy~R)TSQ(}x-xZvT5V*-&OZ+q>+rjG3(9yoUTd!{b7k|xb$i{Pgj4-z{0oot7s~sR> zO)YPns!UA#wy_;RRJG3`&hI#u;C#7aPdX&4W2eW(goAbPIylbKkNbcxDv!0|$85$Q z&rTtks7b$24U9?0hk5!ZRMHMtrQHu(sAvzl%;fO%~;2Yj%c&B_OSmkZudW@1hD zvn)jEkKJ4*5MQ)Lw1SDnsTRW8SI42M3yA%DZGVc>y6u_BrsvA{~Jaqm(<+X&O<@noe_ zZr@y)3Dg05o=}&*s5y9gA|3;L$D}FIi}4gN(MD@F?J0nZtmuqbD+$ws(g#_gFOO_f zk{~wwOjB#yg;x=u)--hNINKgnrmi;_oN0P!JTmZShM&IGb->-6c8T{cY;FT-^OX6% zD+J%8zAwy8fe&#-Op(j`H@*vHo98wjktf~W9vr4z>M9C)CSh*L0Nrt&t^V=;iH=1- z-ts7iy+aAk^4P+L2Q`5s)n7Kk-Shq{u*~gWCiqn6FMEVLJf6cy#dib2->YwdeeC4Q z5ix+2eVRZBIrcnV)K^QA}>Y^{E+f2>=Hy1qO`%+uv{C*-EivKg}ntB=m+1Y(zA9GlPqq z$@0W(SfUAgcTtqe*Cl3D{W*C%%7yVT93xl@Ay<#6aSIzwoH?2MsrloBWB52Ac)>9b zdR>@8KfrCeBA&UE6H%s~WdrNPp)x|rFwF8iYi3I#;{0RCSn}2T0T=gE$Kr?Sp=2Cp zIcQKaeBQ!ix7?F9p&{ddl|f95d~viPZ>oHf+i^gs=3yhrExuA>P{=sjl&0Q{cia-i-2}T;jtd~z6`{~zjN2d<4l%v7gYe*19ffs@wWEyWmj2dmElaT} zeAO}h)WbkW?2+K2Yg=5-%CPUHe;SP0Xh?Re>r8>UuKFkAS|=gn>gWCWd56L0me7*n z`VnEBhU4J+FYQV_#@!)X3CPWGI<2m;16Rl`2G%DU2;@i0x~A*9Oy@x-r-3>m-xFM^ zRMznznoIDcD&}*9YrjK=5)S8#s`X(Xq1pKfwA^OIi+OThEe@i2G(1UY`@SBf8MB`r zsC(hXR4oBDv*81^u|da^i=If2=a+E3YlZ9GZ;6V}Z!S+Yy+;d)wk=-W>{XW|#}4zJ zDTNRvy)4iCn)r!Ge>RzztO@|;_4t>b`TK&pbmRbWXukL%`xPXL#}x+BYSEdVl85W2 zaIq2nn(6yuIHjcZA%WwWufAgL@k=|?m8Z`9m(#KR5IMIvLanrGJrG!X)!3m4?feX= zhtn!9wL`a7!$SMgX!uJtIKB$tKP#%f^0m} zUhhgdEled{#ZJEU+sqq*=2yY6DYps|<8GgJe=2IIrNV#FFB0X_U6Ie&)yGRw!Tt1i ztI0O?v%Ccfq$}jfEaOZ6X6Tp^5Rhlx?4o;;MOm8qD*E)zHIHiGo}~}4kHYq)+~ETX zDXuM_5Hgqdq+x7SdXM{BLRl$qc+~@hu{6}fRUX>aDmpFM%w$~eCde)CYA8sIL@bkV<;EPIzFpQJ_Wlh}dO zVsq*z1J+Zt@_l(e`7?O)B-aV~5sdtQJB#I}frJRVg3I{fxoh2EUzCz@!TJ?6_9c7FU3!1e!c73MT zdnWb#h&*wqjbO!fiN{ytn?TwcPEy3kkDuD~1{0z_e%RGmfa+>7_?0(&zD0Kc*{y+;q@i!|IG zM_=sRI@=+nhGa^uE%RVi)Upm9gbxAMrvcD>=F1l!c164yJ_GX{=_agEc;ZA&I)~ zu=(PMADOW90sR&vL%`ZJtP<#Zj$nQR7Fz{1{J@X-OLho3v|s!z&3uSEw){bdh{bP$ ztLr8DATSjHJN7OI>2~V+wW}oP06fc# z_w)0No=$GFm_WUxWPAbm8iSV-({OwNT&@IU>O>+UyJ=5MrvAs~d+xeR#{D9>Q7mw-SrQDusOKIfLf5wsmRA?9yQ zZO=bC*^Q;F07Hq_%9poL7d+Y0=X-kg;soU~ljOnNo}^p&TDMY1xPW}t+`o=fb-iPA zrN@Lr|J3A`mDH0Ec%tAGH*kF;`=eJ?BvRdi`H9F{1r28O_5Zg}4=hC{F%W9B(in+B zMK_Xaxu(OA)*eWTGhd+1b-olp^hDLl1oN z!qQ_>-Sf&^s)+adt*N~g#hk}|B>AF6a1V>`nF`OxvMoWS^1eSk1QD!M{&bXYiS0i7 zxfUG~yU90|4z>9Q7Rqd@A-I@;w;6zVvsRh|mNvjijk1z-Tj$_Nx9dh(=v(rQ!yRab zPUJ%i+cdAsdLhY;ic&JcXB%q2JC8fJqn`XxaCz?ocHD3;TyB$0a(a+b?@&m{LCA}~ z*V5PpQhjkuCQw6L{MWAsF$YF=yrQW|iE{okBSsEY`O`LItW=;wYO|6bW^3ZTYKdg4ZTz?iqoi_n>&z-y7=la-QuHld|qXmy0i} z>WQ_=SF}3QP$Jbhc*RezCRVG~=^P)TZIoR)2g%$Y27|l;b@PZ&^VwYZ-^ukJ=34il z=)HpEh{f!A0NLRPlX1T4g0%FR?P@Pq|z)2qcB=Z&dZHp8C=EJcTXf4SGC&o zf*9j){wEKyw$V;Cip_77S~{7b z-@pB|ouw>YZNj$?7+o^u=l!m*XD>x0sN7y2`>ZD+E)|;bkIlHuOEy7(`kqGl{)a}% zaGKLFky@*--q6kz0Hqb1U^qq2jJOVWS*=q;*q*Rilw3z)V6Pi+qSsloceT_S^q!$6 zo+d}p=pVppCWi?jkuylqv-*uwSvkZ`<*_j-5;KWJmlcniTI{bGi}HT3>X&@PE-w#Z zCE=bD&59bGpD~>Q{i{!dHnnP&`u|$<|7&%Gmq7ea?qZ%W9H&a;y7a{cr|uw+hNFr* zc0@bbNkTyrd+d4dLsZqQJ_4v#rs1;xBy{c>l3rqwAiN;K+>OIR4@e=e5N8pQiY0$6 zX{LvsufAa-+~c$zz-yM$zEI&KI*18?Y&dTlZxfBk4uo`?rBfKvD_hK7tS2pMtVlp7 z!#jo|mHp0AnSt7pqLqJ-v%*n2o=^*GPDoQ#EDvM;#KIwVqd?=uslo#^D!9?^ zO+_+VH2pquB~&b|GV)GC5F_g!u>0C5ta$%SilyfN`{q47K~io;jS34*7MCITQYnf3 zXFp2%zJjXqtd;RqZa{)$q!A8zc?}KZ#qTa*m02qks?M@{@I*;V2!S+q+GQc@Bh-BF zoccd-^0*8Y4jNgn-UdcKO$#ckXjt7j>>*P37?Ni+FlFUowgNR^io%Usn)K&@-=;SWypsH4`~O~jucwkj{q@x;YFW)lFcE0i zOLF-mZK^*^;Oll+6D6cJNvm77{|%#oVxy5WoIVjJ0691S*+3fwQlisU*+BY7bl9KgXZ>;`(waiTOxGBZwYV}A`o zfk90t(?lYh=1#CKvRV%G4Ac+aAR(DoZ`f$@|yeP@8Xp6{Lg%S>iN(R`7+U z>R*i@*OdP5hysT2pFE9Yc)Vf2f5*?pI3d|dplCjVH|B&iM7tobv zy@7>GXLdhS%Glwn5`e6YMZN0SwkA$-aHb02NC}Y9^#$5!8ntSp+Dg-1pufjvA!J)g zhZV_$>WW~gNyfr2MzXfPz{Rux6X%IO4A`EZaKI2GS@Blg%p7Y(w$w1ze-bthdcQ0wpdJrgHZ-+ ztez`U;#4jA{ou%=^e>V0iO_iq3`WA6qka$IhJ1><&6k&p_sRaB4(Y5jDns4{x|n{>%ZY+#ei7saKzn1 zkn(#UoL`K~9Tx&Srwr~$=dMwHo1fZQRjJFyN=e~5%Z<+Mh@9wF*heC+RfD}8Zee~o zb9#4Cmk6>oiU4dsL#-cZu>3tK018%K#i^@NBkZ$V`*nc0+MhhohFa(oC|SkbD?}f< zmxblR3ft;VMJucQ^_2R`b<_X5`#c*x9WBS76oLRbemLY^>LXp+iVUUwg6@0 zV2N?wkknItvv-I<^jh-?#?=PBipVja~*fE3?__R0K(BN>G|BPC6I4z$B{d}~xdh`#|#!%jgBkKL`4 z)3t0EbWH-^Jul8GKN59DXtU42IoX+rxVCfC1>|X~b_uM0Tn^rGF1fM~TnCR;&MnPme|84n(?<86FxN(IZ0NU*7?M=mmHGm?rO0po@6h35 zSk_Mq@Mo0XPOy4R+A|CN)=lgPP4R+@`|I8t@dbG4r}mh5CMd<^F|r6iP?B#){}yD^r0X-Wcdr4ksmn(3I@F9IF+&d4Rgc zV65AB9D*WZ_HaWW+4zw#qRntjjrLS_D(%7_x1d#g_G5B6Ku?TQX1Njq7O#342nNZ? zl@Kz;r~0GqU-aF2StDGri2xQQI5;8%-iKy`gddRiB;(g+r5+nftVKDGrZfL^O`Z0< zp7`_oJhpWW@A^%6g6{FXy2@i!P4S7zl*TgOsq9w`lZoiwddDxlF0^nI_%iWj@R}ne z(&%0nCX3Cp!;~%O8(+STNsnYdVt{D1vKpjVm_9gFT||0H-TI8Ry(m}5vFJKA&9Q@u z4T-7{A6)nk1Go@W2A+JQL;WGKq%CE-PZ1xaYuU`pjUksTPW-_f_ zi2X3gsigM9?d?2N?i@fVIYlyl3dz$hEZ9^oO4cLVe>egfJD7nq=8PrTV)IQLmv2Q3 zVmFC*h0`y%ae~{e(J{P+lt{dw?n5ehj|E2*LUFoNWP*`Uyq_`VU;SAqpZpmMi5rT7 zR=kAjjKw8YE`i^I?H=X~QjMY7f-&dsznzmdgnNZz5S!Jf))W$V1#MDp%%((JWIMGT zb#(FBe6%KQSgGRMe8_yaRwOVH#pvqbv-zxvp?;=6DOrKyNN|ac3|*`zn;hu_)&OQA{JF~Yp>}sQ6ECKWcBk)FCOnIg>%sJPVqDP zyftKUrj(?QU>tgH@loq4C_1BPP!`((wc^1^<~R@Udqc5R2mTeEyVk8LeY3_zi*xzZ zV|BH7iu5h?h_Fzjm9eGE)*_+t;7VMMI{&GhKepcwm-UuZTJ?h~c!ZmMFDQ6G(Rmpz-;^_|zIRz}5kbC_FeU+;XpQgGTBP3bZ}6!EJ_pRK`uP`AomA?y-gGf-D>5Yzt;$tcs&(FSuwqL@e4_pe@oZ@BE z?z<&k5`M{UU~}m*&AHe2v_|);V5p@SvGM{p6Q3wQGEk`lT?dC>jBZ!<{hIQSTgowv z_E0u*Nv|%%39zfAZp%>W*vVWpKH4u?FDv{4;=r0xAvz+|w{w?s|92^L)xi@-Cqm!* zXydXo1SfLQD5+qt_DFWDgx4tYvbnNNW&=N_)DaMH$A1ho#f0>oWkqO7o77i&>1HT- zE|OYbi74o>#tHFOu{`GICiNj$fMx1)#6^e!o znh?c6Vm&(*sTHF2g1X~ZeY;tADKy<6J+;AB1v5}%6!6f^W71r?1R)|;$Ab8 zRODbnYh3!NGXuig7@D>l23H0C#eP42kN#236E7KYpNZm?K!a0!!et5nHQs1?$4Ej5 zRWXDwmZIGf6@hnnU2dkfkNd<nuBJD^mt6 zx3aSs`S)P8Kgfl^eDN5*FD+e=JbTTw7M_Gi17V^M39pyX0K{KAnLgpEc{<dVr&Q?reL9EVhfEA9nDsUW^^D{{^nb4 ziS79VSwTYpx)Kj6l^dxNm_NSc1!bc+3NNd{03C@pEKTuGZ}4Z$M1cp+gZ|h^23O}A z>lvis$}uOaCZN>U{GXm=kH!eZzRAn$>D7eSxVM0*02VE@vH7xlpz58TGLb?^>>@MM zL%{?#ec0e1;?S${-2DO7U8jE|kLy%V^mA?COOr1e!r;$J^xKs&L zK=TOrwQ^ID1-dpn3eGx}_!$nl9imsmDe$sYwBP{pl0keQuV|ZQ?Pi%vni>DjX32RA zaa0IXI_CAXE|2R5k4F5AfLtH2a#L5L<+wbM5fVMY`bf+xWo#}dgE*HaMc7-!TYB_3 z1JP!{^}7c*_6>8tknReRt}zxDp85(U^AORnZZI;C?T4g)taiB1K)#_AZY+aMMtlA> zFSNP&@=|T3L}$NsUaTg zq8n9l+}RnT7V8oE1a>h}NP6vN3Y}oDtRVk%Fq8HQ2WzY{7^t8?T{L9^e{f249G0^( z`XR7+Ex~biFDQE(M$0Cb6>7X)54t@=Xt-Hp=~hn=0V`~sg4eq>^n+C_Q;fF+%=e%l z#;g#rDpcZEnJe00SV)=ry4t1ske`xSCXS0Oow5k1XlVE*f8RIfGZQ6_>t2r;wvOo@ zSXgd-$P(F~8oFEQ2f=tEJvU!s&i``_;Rxf*wDMMHS`&YbodjYj@Yhpk3+-I}MRKp_ zw@VpHDXYhxJw!&j6ncH^x!yZ?Vj{rLe*2F6YAWaZFIQ%}ZWEy6ApsrqqoY$_ov&b3 zvxu%eDe>1`5$}(Mu7cHNj*Rfj-k>oiH9~m3X#GDje4eNh=WedeF1P5KlD$}XuuJli zG)E^h8tgh_66hLYvL@rRurL~8szP%z9Ap(cQgk^VD^xkrir^*`?(R=-wv@X5Ud&Ej z>}R=LFt|J_lnA)4Re@bK8RW-F`2zjD2By)W&u`fOOi7pJgBVl-j|W0NX--5w(-~Yq zQG4MVnEgq_Om5qGyq3AySxBTfgCgSE~iO%)dctU;1--AHtXHDO%?oEhd#gXjXpiTjNWaqlgW&xRwa;XBz*9Z;c~wZK24c4S0U zW(2$4{cLt|;SgAxGtl({(|O>fjgq~W7P%5H-}e`|@eJ*^ARJU!$Z!RFx}}%;$j9Ic zPJp>*J=)H|kgN8HC-3a`H$MsTz(i3zdqP4%4*n{BD1+2#T#2aB*wdv8Dpv`ubUkLA zGEBvJ+20eZAPKbXXsFc$o}?2F95!`39+R-ZK|~&wBbyNodtYv@X>N^n^g8KK^@N6hsAWM^arH(Fg>g`q%02kG(=a*%B=0p6RKdGAM=I_P+ z8!vXxUxLx-N9-j{T2dzn>lUo88}yA@mvOC zU{Cg1IA4|J7s-24?#fhtBH6oWvQ2`c&;0rJ%g#GAd&`Xg_8A*5VOq?W7skPk`JX23#` zQHp;qf*@?VG*C%H#L(#$2hxU$bR!eb?V%6JjYo2_Q~G)C5gRnqqlg8SBqo10x6+ev zW98SA(?C$V@^sTN6uF=V*V9|JFl^||2tv4aNRY9eFa=ldPWq8+F&RDR!}1x#Cw>8+ zA9A&?*TKE&HspGDm$ib=KAbWF-jCh)X9fJ8^ZSK5I^A_-5_y;c2Tpxhi-!WIv4?!k z?$ZI{H>51=9G8@Lo@VuW6pL+WwmOQ*v7ABUuq^C;YKFlf+*w6mU&__^?uS-iJE~~} zt>ekDRj*xYBCMQB8(Pj#5k}1L!QGTW<8evq%}d$x6f*Pii9l+pFl8F>Y-s#wdVZAj z;!tB5zGqCMUq2<(+(ov*WAu>{GS8!*Ii;t^_l}#B1j=sT> zgb?n5^@YcsLqni|3zw{^q6|^5fHIRW{8tiXDuo5kR}I zRSur_4{ow>9Z}i7AnDj&C+~r&tRGuyyJYEKnV|WYG)w-f;BvGNT`dYH#2JtjRdD=P}7!=tN`b#3HIfhd5ai(e>}~?41(fsP@CR z55rVgkh})geiL|L{H+n5>N3LhDg-~UH5tEi8$sWH4`jok1@tYU2)qEc$Nl+8iVSc~ z!F9}o_#|JipFEfJkLK@ZNi(7*qR!?In-WyRzy9PNBf1G0rLFh@27DeQ5(L1DEv2w* za?5o)C16k=UJZLLFWMVe4U5!gg$#7bl8>zyb<8^vhFbXBzQ-RBYgvO&rSN>hIRDZjlJE&92QIjZa5$FEO7oD)RU+lPM@;h9dvnuGu-ML8D;2>~n_K1$1*M zD&Fiin!I9E5n}ZfFZd%QXf!D=Lx{>X)q|yoegO|he_^+hm~JX*Ew#L>;c&Kh+YaX% zYfC?334U^lrMq(H^PgtDc^?%Q9lawIj69d(2MvDG5bgJZYNjFC0TSe$OU@C7CMvJS zH*VV1NOTk6xSHB7wf8w{+VA2n%U4aWRJoLF+N&RwKsE6T+p7UOZ6z^A5`ol{xcnAU z7umbQAy;19tJ85g*KD=8JJVfijk z@*x=1I92%*HQQXU4zx#AnbMpkO-clnM`V}~J=G&q|7)`JY%(8M6zn8g-9JN5L8emz5*diD{}8jyXt1x*4CupFQZ zDOi)=7!hhh3`r2Of!aVEof)OYZ}ue-vN8}j#c;Ywit89JL{SrSlmeO~c!ts?l01Dz zd*VE|#~fcWHs$T_G;u|u<>Q&ce`8!iMHMSKJrCs)!Ww<9xlB+NJUl&+IyUy5WEpT7 zR-7vJ@a4moMx?i|b)S)OqscwC6$%UUcTrlMRgM9`nkRLzw$<3O6lK@nCW*X=atos=-h z?OyXD$#FyZT^5w@u|q_J;MzfPLj-c}FnGs)FcB~HjA*Obc8ejQ@X$2#j(0?n+*Rc> zLO%d+8p?E6r@RjdF$W{~=Gv^j(n=!y!FzX4B~Eq2qv_u#x?^61O41$-zQ^G;a;&~I z(%bI4IgO>g$qaOqyqzUQQ*MZ~_d-d3cFsLD()+1Kf2!4mN6e0xfp~$_gh1v6&hk7B z_8>GZf_np}&WVC|3Az~$uy$BL;&2B3VdGt!9+N-eiXt0&A~$OPIZ7#71|!;da+(97 zk{OJBstN|Upn%LU2eK}HdtSGx5iH$vKom)@j5uh8hws%&%}B|q?9(Zw+4Bm;K{sqG zC0Zq5{AhSQ4vw{}+vy~7Lj%R-3I@N3O8=HF-wlgzq|@k}MGxHoUip_eq5RLm%cO&p zcP5L=&gYG~fIoUmmr_Bj8*2F>$F~TS42JuQxbj5b;Klr-P=wAz@=lJm8!vP~B;wVA ztO{J0nvy%>7^BLIwU-=|=BV4ZLVf=+0nNl|?f{Ok(qpYJ!m>47|8CDcRUSSsBn5wv z&4t7k9E>i~wRzeTc%c4&b5W<8%j01qFnyFcGEZbtxs zDJD22<_7dw)$aG>qNTDGqlZvYTKh)*Af5-ws_pxklyh~))av{B^hrs2d4}J^74@UG z+Bu`~iCE5O{**L!gUAn08&I#;P(i3cThpkb;D)w8W_MR+6PDu@zbACYN%dYc;`|qy z2`i;y3{6mrUL*s3#|~9UJbJI4h;Xg)h38H?H1J~+fucyrgVvpaaxEwjjG_Td5IQL%xofmNDcTs%)_v<>$FD+fFJUcr2o)d!(bMEat;23?Se zr?TkprAm>&hpkjVS*d*MDTmDDHt%iYOciEG-7(Od>bhMO$CUvTITkowmS%KM^t7hj zs(^sw;0P@)%pjwv-$&P-xh=QN&(qLVcjmKS^5^Ewo02{-t3)W}W)AqXN9?hsy*YFc zfFcE&BrMH{xZAVS`V1@^f{6^w`NRA|G{2=_)yd`WCjaM>P#nXf8DK*m@o0z0^=PQP zS-HXFxIpmX`|GrYYcsX&zdF)DQ!@Pc@L{om&@~iLp)n7Qyd;1CGP^C=D-XmE1WbmvO;*YA!>{Y<%oarUqv zI1rtOap-WnbtRtHe>CAXt(g^v#}5IDVuQ;`Nd-9gB?<}uX1XN++w@8m4WKE`g{` z>jyK1ZnE|56D+tA%iuf8J&h59%EbC(+=xKTev($6y?Hl6=NmbOqZ(ZLYqdH9)6*(} zlssj{H-RqdQysU|0Yl*Bf<54n)vF)B#KD%XqO4;fW%s+q7swiyByx7bu7TlN!);FZ zn%~H$D2C$cUUkAkBUit&M)m`Gfc)u#EwBMJf>TIopXRF7N0bvK0^G)hAR;i!XkSG` z%#~pfM@7=#4B$+0a*T~rFXb;3aV3;QEh#~5N~y!3_(~NS`(tApt_*{jdQLhs zB%-r8nr6&xHN&5L(&GwEa&0$29r2q}Y(hHx7)~y>;Cu@(3p-4Ggdy&Y84u!#?%NY;zW}^0ETvd+&j54CI!#* zj5cZ`hhHRV`Q7l-`<@}m#Tvi~Ifshkh{NjVi;Uts#P-SaNcL}MsW@;f(CG5I)L&G8 zC}tI2@aswwT)qIrw49KVzw=6p^Ct-0UU$2AohKQvz~SgB3;J*%KDNJgo3sE*{}HFT zbj=@S*Wzl_+xcDgg361*_65Q8EwmTQ{yU-Y`h*Sy9ppg3@wFbW;~k$PBY1Hr`i=71 z_&YcvcpJ&YsO+F;4Z(gJSGh110Vud?N|cr0F`v{_QW*v&jxob zH39Ft|HudO>8P=PEoexE)B)z_)*dHjVG}rCi&$m#i!W<%Rtly5nNzL-@B*8;F)fbZ zF$~i!FoXj^n(gkZP=#<8!K$Lksfv#BqrxHJDjoA=r}YF_6DaZ5T%}EdLhH+AcANCy zC7Ly@_V`~nIiu-gzQj)(?)Lm1-;>7fsk;4ocz zfeby;05XFDw+Q3tfyXZlVDT2-L4!!*!oMHye@md0tHQ0_m8Q`|n2JcxYcNH~5ggxW z>yFV%h_^|G^M)?=PI#lbk1r95@aE&e)G-eH!RRqqdY~r*KrZyu%^}>fT4Z`|mu*9P zIf%J~XN|7~JQekqhmFtHz2N21b;$nBtn3r%TgwRY7h^6dbBw`B{&`-`>uK9rKK9RW zJ%wj`{4;W)fYU@TR3eKNQ560GzLl_mo0wAv_mz>bIJY8?7Yp70N66O8(^; z*x4R-e!cw5JOZnRJS$cFaQ|?2b@Db&JH-bHu|FeRdi=fNry|xwK0v#2^C_;s*@(`R z*-4F%775=lUrQ-K3t_ubZ68zn}TX#6k- z%$P=G{HGNV_-^D)f8g627toLnr;4)Irw z3ANpq!C55zJzivCm+WKXkhzt4zE>KqBHs3~?3LAN08SQ*A87K+D1NaMVxQQ1)hwct^~= zJquRedxabF7qzd{bIfvt&G)8>?xvWu>9kx1AvmHQ!ZCKWl!v5mltj22$+*xI@J*WQw--~W{4p~Lb^r)*`1%r zYvglqO#hbo1Yy{T`g#(v5zL#LGjaLVHFfaI*W!uU5tp61P-X{Q=d8vM-=QmdIM(IE z5q^j1`Z7(GU^ddjj`S4jyXU5C#<#D`h1;>|H)>1fQkH+K#cMWTx|NL0;M~Y*7$?zk zfJo@&QBe27S((NSsSc{o!Bw`}mp7X}LQm^s^?k&g+Q`Kf(F~r5T3#0t0|6Rs7F3&U z;Dr7n(f~Lva;XLwXbsu9yVR)qLp4wK88Hz8mKes*04i`&U5dfmRu^lU)P+kgO#X=HQ{k`;+FU+FbAP&r(wIrsajCBfBtzHE9ST0)=?u&}j z3%QaGxw%{McY}(sT^^qX3jxqp_$jY!p@WF^90>t%Az>x_w2qTMDpXl&1fR_~qX-%K6^F%25?b`4_PHv!aV_0C=8%nu~s; z+wkRph*eWxjNfk%xVuO8~wD`5qr z9GMFTdiV=~G_pjR3Kh*kcflVs#W~}$alAA!eWn#L>pmD}?$l+iL!RW6M20FBCDi)y9oOsYe^$fH9i{D$5wfsl zDT3zH4@`bz+GW9-JphC8^G!VMyjl0l$+G)+C%WNQ`uZTacYUpmfHRi&P>Kqqj3#eB zL6~L4@&<5ec(+Wu>xkdnG{`c1gQ&!lO|~z_vv(FrALrL*O~R&1&Y_nB&t(>j8~3wQ z4BquKOYIek&kyOH{ZwdU9va;-jKMM7suy5$n-P{icmdXu*D2xDM72{6vfu59dhbpo zjdAYn;2N}`5xU{6&&Q4X(T~cuu#>k&{T(n{EifF~PQTfM$RYj;jUTiljr&Wnj5r^l z0a&Njp98TNP1NbaclDyZ5LocUwf1MH-clC*V^EU((_ao{9Fgw@EWqc_) zKVz>I6UAvE%=oFOe%LXBl?X1UwN+CJF2;>SdYaV`FwSwG#_b-(uF3QD=@T?|&Zv-1 zWVnj4pPo-uYee>qf_{#Iq{*uqVZ(FraKc`VBbE~b<mx}|Ie^d zgK&RoJVA98z<3OB>1F_o;#UV@9Pw%Hr{{#YLF*2p5^nbAVyD}51;9dfV-GW3b17tY zqdnSCe2BTJz_cDU$sw7frrqLUk;1^s?05K|avoK<0w>?RSsh8>&6m~R2wgjal-W9MU`mfJ$(4|of?FDOYLs|cq;!8 z`@Hd58K6#EhN)2F4I!<3au4ptwgaH53M1ec4}RE~-9A{k;!d>QR22OyiP&0tzO6L? zuPFm4ZTg!A-uae7*q)pxEmh|JcYsO24NJ1;2JDjx*Wsm~uJ#@WYhr8Tx^k-Pql`3Hv&r#5AH+_mJmb6^%{k&=;#f%ix!>qy! zar7Lq)Xgwoa{s@_UU>`7*@>y0d|5Pz(i<_T9c1B)(I@MNw;zHqRi05M5K)2ud^=dt z>+u$GevV&{Pfi^7Ce@5j9B(ad&c)O4-z8s@i1WpKFwoJ*?=RvN?}7h7KzhZgQ7KPu zJwA~a1FVWyupa{PFE|S(BhJIJb>IxN#(deTUNVhXZ$j-HTdLO9ac9vBPJ_J3lkdNs zC0P!WULn^_%O%vEm*{kiRQ;2c-W~Ztr|Ugv>7fi-VW<|UP&?$ve%%4slMgB7vfZ_7 zF&>WGnHanDMXkYwRYhu48iL2jo%T!bBs*)j0O^&s|6%v=rfk+sc;%j*Ht$H2@#f2G ziYQx3c^y>1oP*eOWKiY7i!~6&N6(&{P`A7F*aEp9pD(SDR4WgVYsYB_Y4zJ%^lV(C zP(M+1^lltPagKb6#mG+0N$c-~cWW6?Es^SX2ADOjNX2oKa1*)=ZFwb(&X=Rqm?O z-KU53tB>4ZW=pfj$jDS1CahYDIb{LqkU@ZYb&G=?h%^JAP-YLDGhJ4AJry;fv^08O z_rT=bWL6HmY|5f#c6iyV^sx`iESFd%uMui1iuP0ogI(<+&?_$h)mt?Vn#Iu~^y5#! z+pd9avV>sY!3^}cIdaOi|7)JYYzHYg_-0&0Aq&vEQxHDcz8mhoY%_4Bz0ia3uwyeYts5-==g=YQ(@?-e6)+G+vFb>0Bq|2g=A<3t! zqtAu$E(%~vtu+@&F4(L}bbjB3;O71Sy*YqmODiC$CSjs-OY`mOh8 zQzGoc0F%x@R8S}-vZBe8P1?T2&CVm}_c{BZ2 z!e{6$KI6m8bbob>alqjAXLiyl_L5CIwRkjs7lHG+g?lShRk0O09zOinL#!Gbjq1k8 zk8iqJ)6I6R-6h%yJJ2V!oiM*# zF56Wf+IV^SA6cEbOwu;&ZXG?@UEOC?Dz4EqRLGg!bz|jLWt91!F0ufpF)75yB`e%{ zo9m;ksPiOGaoI)i*wm!JViU^h5Z^~qO{4jK>->w%n6d|N!=tg6k#|;YX;aq1m8I5J z1$I$4ws0C@kH}CP^5G-pbX#|NhW$>H zN9D!8y6a-kVz@07T4bI2sq3hsZ=LQ;LEEfjQ7EIIR!-RahA<^u{rjv-3y}GjmeoQo zRYJ$2QarCSLJnCWI2X<=yB$4vN9~?-ONj;3mOStu;0=ZH_kV2x#U>e;_ZFqp8R2tv z%0Kb)$KG6SIRzR69SH#wm@e3--Z$w3rGzqaSv~Hib!Bv^fRka?IWq9E2XE`S$t1$ek;g>_DoiT~4;tLeJ z3R%D$@_-CKC#%3%FwGF}lp2i63b&S+v+{ZEXrZA^Cg^Qz9q$b~ycoulrw`XlnghC~h6gKVP#5nW z_x8nVAR*fykI^STA?id)hMR|IH0kah!Od&L0jb}Lm=1WHHdox}Ryb~b>qD39+*w%{ zKp5y_{OLKDzL&I(!lD0q{;?|Bjx5qP_yoAQx7(@l*H4 zf?NsPEeWBxJUP?{U5V;%gcG%@FZ$N?4%&U^IwhCU?|}$f#iD9}WYoxd?U(O7gUOM3 zmj<11%ggXy4!yYCvIy4u()!=y+=s87*1Hz4Z~)T^6{cs=;kWS=X`ERgouOm=G%;qH z2ibMvIY9kVMedOP6;4Y*0YLfM4Kp|!M-L@qc=PqQ+e<8Hf}rVV>u|Ji@+pBomo7x% zt@SX@HfTWQE9l;XK8x#002+pi=8FwRjhuw<@g%nqgr|yVTAgv}G&}JtXt1K=2K{|G0+T-S8 z>6nI_i9O>abQ0)ebjxA>1k2pqS6ZQuGKSO%tWHjfrl*No82 z#YIkQq`(-J+%D_LN_3lkhgwrj_fpX-ckIrC{u^@NE#Qpr@1lDOSCJl18Mk1)+L##4 zQV1lo>Xif7h-oxnFV{JFF6V@M(c8V*35Nt7TN~z9rAZ!0#PHS~-m^i8=q2i(E=#Or zse#B;5`YVk3e0P1CxIDSLS}ll>&N;7fpso)cQ_vHZP4F=G}nT32~F6(%`C5N8i01$ zPGpyv4urTu8cDPiA0odpjckZtzMSfy-l#T$^OwwPof0j_Wgins`vmWIF?+Eq1R;eZ z)%O|~K65w!^=V9pN2Ltr@wiAVtJOGL$4D5hc# zur#7Hk6KBs&8o*G<@xHhf6*K7Qz%Ixsc&N-R>@R404+G=et%5_H_ipn&@AINya zT};&85CGP9Y8OFoFZj~*An%DzUK#bZjHK0ejTsxrvMgw86e~y~Y(e#vVol|n$Z<9g zZ$IRlKEJK1TfcOQqn90pElVT;!(v0ZGf^MdZ4^^=f!4^Pbs%tDv^}^)Z^f^CdI@Ln z6L+gC%LtoKC${j_fNB|e;h}dA0SmHL#KUPfmgujtX;EMuXxyd(_X|R6^~qeI+RsuX zj#WkuShtlo&V?ZYnIu|vDbyYQ8nW*tmcI4*Rak}rwp|{&u&*D99t<(;UYVA$HD?}4 z-jRP>T(y@c^itF8YJ{FDfv0YWE;!*Q+YY!PiYf^9a7n@!654{;fD+(?~fLX2i#U);-e7cN;CG`iI$v;*bS!Zj|OQSA)X4amm3`s zxH+(n7kHN!p`&H{#Xq1OQ2RzI!+U5hlf6xFql$v0#$uB&Z>FQa2Iv~q`a}$=eTL-d zD@7w5cT;qa?|IQ?iv7-t)ZtFbhyD(=72=8qUhLI$Dq^D!BG-Xr_T)JGW$)w6S>3#7^JI%uwteAm3q?twS6E?1lk`t(d5_)m=gJ0U|)=f7$YU1S0T;-TBYA zwy`_g4S0ExSu8Q>w=+-kz*2fpfq3ncdIPL91{$AQE{T1ngadrdeniv6>jbQ(=c`ZxkBVX4;a^Xnj^PPDZT0@gCN z92tUw{h*VHKyA+kg_zN>Lf+3;zIRPc(723R(<$rUcr{dfx!~d zk95?CGqoPXy0FUCqUNbGUH5*YT9ZD0ELue~owgh>kQC{E&Iae;Km%M@l}38T4L3=X z#h$yk5;Ic`=qCj!LF;b;LPHAkvQVN7?Oyqv6`|LqYl|27=l@Ue2kx!D%t^>5yy@)p zT=q!PI$%CAuhc;8?MeN-^jzkmL+$>Af@~#{NcqImg*7ApNj-YFjjEo^A&0r$GT*a3 z1L$CexItT!tAXVAgpZlVi6}iciu4&rIg~) ztjF&6n7&#a=y0HXz1XZ#OzZAdUM*hR(3?kZ?R8qdyP`K?;ZZr%nRvUNr?cxR5WPEUGB3%$bRn;f#HHi5k^H*MC;TME%` zC`Y#Rs}eGDvoiAE*f9@RJNv6$=~0HyPS$j7Fcl7O%-1gKtnQt>!0;x4Lk4d_7L z1PWcAC`vob`UjEO-Jft_lksxOPPo@NJomnHrrV1Ea~&BiG^-zR^u^gulVt)^m*dHF zwM}xshiE-tKo?HO)xd#1KzG;rR(*DUN9fjT$8Qk++A7zeK1Sxf ztuxwImv=_Gdfp`DMozf$Oi8omhv?qEv$trBiQb!(@=n8KSK&>uk`&j$dx&5NbS<<@ zigTRWwOR58L{M2ex0DQjOTt;%1CtF(nU{Zr4By=0$GSy%EhN{-{`Dvj|2(!4U*&N_ zw9ZR|H1y)zgs!^uK1`jJF6`Y^3qFya(`N(h?>Ms8j97`oXtSO5F<5YN(yklz#?Ual zb%wq9^u3c-y!&Sd=*MvV2No9SSCjp9(WM!j_V>{vKVBPOLElp9^?)6Jmo_?KPA%v@ zA8wz&@3MpYBSPdv#~;zXJ}2q@-jG5sX+eS(^K!!LJ(UT;NGV)IxT%IF{blK?wN>fA z4)=0PV4C9y-1Jo^aj6RF?zhEJXF;nrWmLommm1PyG8g+5@^~_rTN{y{P;Ur} z*av*QCJ=mnXh^|z*EUt7R2FmK78Ps9CcBo&$uZntW_~4YF5l?N=*M!%Gu5c{x+(vw zpgX;QsG$Am^D9pfXya7MOKt&#%XHw!MjP99@<@1#4U(hu|3 zBrBx20}gh|HvVahjowX9t=kDJmG#<>Wf;|r^9S&dy4{SX-Es#|3gGsa2D*WJW0j5> zt}Co1Z&Ph=jj)c_bF2s5Shv7#g_>(91UjJfis4<9Z{FJ5uW#FRDb7G} zJ`9MiDvE~U&mwdoo9qiy=;%?dUAGok2p6w8#ZL<+ssp+zr1t+oVK~H-u<%6_kk^O~ zw;an$K%Mpz<* zo8iAa>V}Dgny}Mt_NL#UC{x>0lNH$EN*K((kvjUzgpob@{s-}w`-myDOzJz!upzb= zCREdh6r9gFDF=UeI1F5(fm5pfta70(IL4qByTg0CpAp@tmY&F$SXsenCbUr`2<*mo z4sK;PojUan11^TK&v-!7RJ}O|!C-=}}VZ1fYn(x8{IO3?$noqT7 z276tqO4aJV-&=`d#2@M&FHya!kA$ZkE5-gR-{b2VfU3te$f+>?lf`#5K~=?- z8iKcXz^!?yIsJ-=C+@n$0jH+n(A;0I@gdd6yvcKX64bN(9bDj}b zHx>hu$oP>8>uy#>nTu4D(6(59)4D#Rr5@&Y+k}P8f+9FM3+5C=B>!}D@j+go5Z$OS`b|)K_&IBQuizXmuPrFBB%PM48yNg?b<<-+`kGkoQ(mnFrW&^Q~g+SkVr8VB(tHZp%JH4p^B?<+*F* zHqsl*-Mg7y_uT7^aB^fc|fb!gDQkValQm;X=n#uLc=&p7%odngzN@}x{UNRRj zi*6A>Ae}0#-?yShHPJkK|5wrlO!+M%=JB$|c3l;&tUB*W?3QeSFRq9n6-bM?880`s zeVkMy@i!qJ#3-T(;{%>%;rzCJLW=z?Y$aY3Kz1RA8KqJ1H#nK`nWe{33JZFIrbr}V zjfI2y|D*2oW^?tQ9q zYzRck*bfzo;B3nk+-P3iM+LcshRdyLp$u6XXwcu%Mp~um3_i0%W+LBEYbqkqlK&7w z1JS7(^(8EPaGuy;kO(56ZI~@o#izW;&w}WJge8m>_5It}0IPHqhQ_~_Xv++&DfRe0 zJZ;Jjwf&QMsAJh{B93pkfu(d*{Zj;5>49J6c&kp_SI}-{W%pr~;lEKYzuz?yG7M?8 zDKH(mIGoD~o%e}&7H{4@nyu;aJDzvGcY1zid^44PF8F@#UVOiFf1X=>e?EFXAA0DlA|zEHgt_;8}XvpD=s6*6log^g-$fbe_Ahe zE==aR^~3hZbkl?pqL(v%I}``7(B%LCDd3;{Q!<-6o<0-xigx{@*c-yU*UVIk?W5 zlSW#Xp@_YiM2MJt;i_!>t#nB#Wz16g%lp^!>vs-G7oBlid$~G!#x$@5q_TerL&jiW zYMcjlyd|{rIhQYg{Q4MK$24J)`yG|69XG(+X;cqw*N3318n1Kn}$b9gev#wd+v>0{B1-h?w%bENdhSMvCa z-pK;2TcgGSRdw>fq}CgqP{Yr2qp#0#xOl_Vmf~`q99F&;d2(0i_ii_Nt>y>!jmQDF zr=o@Yvo1kwhtrO>^##22T}`Wxipt^j9MUdoZ;A#>s#J}SPak2IST&gxbId&4L1|8v zFzIo<%6a#dXZc$ybIj%o8xnd$23Ik@9?MI(u!VLnpfm1+tSy+e?&F1#xuF6+SXi&K zce;D0Y{_RmqYMLwF0?W7fSgZ}zHRT~KLUDUom?O@?KJWTgGX&#(MCK@vRjO`^rCw; zUXrnya$?Qho^<1*uN_z-_EnOZj8uXnqT5p4MG%$vOB*O-cv2RtB1*Q3t(+O@tgokN zGT)u2K1-?&x@cpDAy$Ry(_47EHt5Xs+Ggmtjbmo4e+n2|%P39NsiN4UQWXhPxVZ>e zT#hxl{J6UCht$eQHo93);KUoy%M)zk%3&G-2a(75K6yXyoK{}0%_x+lV_re03SS=BO}cusC9VQ9oG9h#D3ao{XB^1a@=APC-34)qVf>Ck0t9|;-&;c5pajxL`#^~ zs1Lg5a%{PI#I6u4x@2W6jvuo-Wa4 zahXi6w{t--uD!N`;E?Cyzqb+vPzusIV7~7A3=(IY^&!4Aq)qPqo?2^r1Z^qXBIU~p zByQ%hL?ukoC~ZZVA!zAtij`nA%QyG42xz-1ov*~u6+chCA^{K(5oV{6b+)o^U5t(r zb9}kyCDWmTLc_~QX<=z!H$nCn+ovsxn=<32N(Nao;QVN(aCp>pi&%H*TnHRFCLxFKa*DkbHKUVF*Hw0dy;d$61nVx>PGnaTV_Zp7vOCUy&KjWWbxJ}6sIJKeyR$b|j}^0~VO0U7&l zX8PTeyusP-xypngDsigcmf!5&BZ0`F!|cS@$ls@9EX}mDQ-=^-J&fgH_p%{>;yUhS zYCn4EF1FOB!&k};9Kwn+6O>{!?uo5#KJVNI$?31Q{OS);|Ai3U`>+pKL=XJ+^~s@B zKRwWkQOUih}$78yNA(6}gY;!M6f?9*4VBe85<#A9vndY1BcHcI@ zx_)mBD2@@n1@-%N#krd@zK_(Az)E*rzAt33Wda#rpIsrkDTx*SSqu*kV{YB@=cw(O zo6H0!2EHGOij`D!>{9I{C~e?+F&KBi)IerO;C{Qv*^_HJ!`k(g~^+%VV6yMJr-?x{ZudkoC zkDjj&zVDHr!yc_4hwm%hpSzx)=bN7|+n=u-@~4W{&kuaycSB)c>C+g@uew}5mB*3b z@6|bca1NK`1#%z;H@_4p53x08-T4QlLcTp!#q(J^^(RiV6s0)VxZf|7np^ zK^&(NP$#9R2!h8?R1T<@lv9EHKP@1}NqLn_iORwC<7$cm>c$imF#oTGN=^lIyqsSh zm7*eGi8E2zzyANWC{t8G87t>iQY9+?t1o|r3#u=dQ$Zas7gT4Vr~orw%B{poR1U1S zkW+!hhWUl@ashQ`iV8U6rM$}D3x(95%cMH-io#n(;jQBE)be=f1wQtoo%zem18)?9vr59#uuKGvC=e6-9LrpR z$sx}Lfn~;LKooWW9@*TqW6Rwfhjjp6U1v67&)UXTZ~565R9#p@6&PPqMbYmF2*eyF-ia3Ou~k;(D_1 zyWP6C18`5&bsLtQ6f>4&CPf0~_a9Oiu_R@mDfDV2vF=t2X>Sp5K?hg7~kW z2tAIZOpsC#-l8)P$Q5`#O0@%ya!Jko_hyV2zY=nN-+Bv= z;Sz4eMj+D~^5M@cYWx6PtY^yue7m;k_?>4a)IYh?<^5lNit%N6fM3^H?br<0V4GY$ zoX$`p@i2SC<~zS54BKW8V#1ii4gt6$@;E@4)DpJE0m6+ujS^z_LF}@JaG}d*gVS#l zc^uB02KsFvN)kcE7z$-OKC$6%k1HYdcuAKW*L)**r!x+)dG(8=FcEbtTQb6bZoV z!F36(e`~Gp*gmaZb zcvw>JJKJe6_XSdTub&p^Em~S5Y;!Mgz~aN~W`T-+0JGp~^73*&Zc1cgG0W|IGxx4MZXsUTzS^|jaKcr^C>8+V$+lV{8MT@0?4(>J32Lb2QuL+WvG9KTq zfe%u+`!r(M?|PAI2BQ@AReV}e8dlyHXhs<(4On#tvKgdB`OY$hm|oy_BICnGSnZO8 zSE&d^ZZ?$nCViXH7%R8%b#ShAFs@2FbTH72#poD|#;r9VrcaSr|FLW<1I{8Gi+OfM zONiO_h*o6Q1T`>h_^rWxy2!nO(vSOQR%PZWKJ5{{B7nMM8YB7m>uk^^g$|hN%47^& zBN*^W!{K`?!NTFwYTz>D4<+kg9aHgX+#A5wQgFr!1TbsNIFslm}=#dRMo9`^C(^-C}35DRpk!4VhA^qXimr}69k-BvzzN2wvCRK-1 z?=z87;HP;rh0{x8@MP4pBan6UyJZd!OrDA$Gl30nTO@Y(gcpiWng@0q_}8l5ZK?A| z*>Xuc_cAW~Cz*trlmkmzR0NUf#VBh1dgKT&bc%3nwdyEZUclap+5wQoteQH5_+_~d zvd5%=-Ol);uP!PF?RN+G@hz~^v;jjZw@EtDJ#gr`W%Jzv%K7w?JAqp&i5(@)SRvz~ z#r8&9x!BN%kuwb&2NaA16^L;YB2R_Ob`{-dD^mgwBZOh9dBrIWgi_X(-=u+~N=jTZ zC6=xXYNGFyPuy;YM0dv30 zLU`BVTta7Ta-SwR`3iwH-G!<(wm8AKHZ3C(sW|Bb2vLp*(_;)fh*gP*O3l9s!r0OF z+BBGCoCK2)r4KXe-S&xgaY_%g4+he*x-Sb|HXxlGEuL+PAiNko_Zwt3rl1nhe+Rca z7jrIM$dok80nUvvx(x%=s|g;B)`kj<7J(OLDJD|!f<0gfbr1=CtYm>W*ZT{6Lxd7c z0=EugPvT%3sYA|(9zF7Q}%C^6YE z<%0#$J^f+^sm4oI(KO<)yW1205*{Jb9)wi7WX>z29VuQpYXAJo?X*ehcP_`XSyL1L z^kIch74kEa>IUwg#uc`0a!~t~SjU1}ukY6Ta;CswB2F8sOyrHGfUv`J^_Jz)ugo2X zlSxTDt2>8AH@7-jF*Ai@j`2C})`(?{=|#xrpZ1{?xY56f!NI|gNSZ1}O6;>}vFg3O z4`R6vSyGw$sY%cKA=U*a-u5k>VD`VEf#Nv*xr|EmP?0%8ZVQLC9xWdyPnTZK-ED{t z){2{bo(y4qdxIe>+RW3blbS5-M}m(b2^5Pzb`Yy-fCvecPzLEUiB}*GPr{un%9}N( zqC|e{hnv2=BCYE@Ht$9=eWEg9blf71^f`NA;Brg+Y}h+p$!ZUgph6jTkX}zOgUOH> zGQXrFgC8+aG~13XY@Vaq>MJypc+VO#B3)5q(?a`~W7=xoo9C@_Nvr<&zW}{JLcg7M zIF5GV`g|+aKt7Fu+p%O(l7}tHD)_zpJDbU7OR`eL#9~rx-J>~}6!SehPIoCTNmgsQ zOHoNy2a{@%J0!_hq8VzSG%zU0s!sgoP(UJePlrk>DbHr0p>mWAW}zvM)xo3W{Wn(| z&F)~bm~u=Se=iO}%2SPhXEW(p>|#q&ycW4QBv}+7*0Uig3Ab7yn@D@YP?8d|i4G<; zEJ43BOJO*f+47+ghSY#YT2?RUksU`{o`@-Vm~=?8Qt-)QQZJC?U{W%1l1q}!Bgtqj zcTTFw9X9!)wQ|j~Cnt^xHi@Y&J>e}W=Bwjvqb+D1rbQwayXlaOjCBC3FO|pW;8DV{ zE+&hINvcaVUb5QaINPV@D%8J!XEI4IX>+m3NHQdu)#F_qOp21s-LoOX^y5RX1>;u0 z{V2&3CWG=$I~*^s%-{pYk*4DUABW=pJRDC$O-6M{&z4=`q(AJc5XgD^HB%(_&v64% z^wkny8Qof4aXXaJ9SllG4##VYe52iT_VkHyg&ce0bLb9Vk2>}|r#MgWDy$C~?F^q{ zZ3dJa`cQIca`q_g>R^&~VKGYPB|wuMN;|94_E@&`^fwoqG25^tHF}ksgGsS$t3#57 zd_9Me=bXtORdHsiI(uwCZWeb`aaGA>iWXQtibA%SVd`iUX_x_;qPBYQF*$5W7D|1! zm=qtyu*(gl-9&bUU-Jatw3y7+a%ag{D0ZW>G89I{m9fANDa()`e5_!AQ^@Hac4SjL zfvLFK&lbw!sTPxzYJ;77s+}DzgGs{pG$g4x zJT{m?R5XL)N{QstZPt$uQ<6nXvxm*3M3a1{n~*V+A<2{(^bwwJDdS3ZU0RaDwBo8C zCoc&B?BUZrK|paLpD1&?=BspdYq<7gEw&^JLz&_P3kj^2-fSlI_25!LoF;5avRccX zB%EEkZJA42U8){?k{oAdgrQH2Z&02oj!#E<-yixLhlXqngNly~<-JxcLw)(#nO!NU zhV;B{s)I*vJ7Ktfnk4%;vVFvl>jE@r!(Qe{CA)?gMdL-gW;aUFF8|DeA=4b4;b@~R zPwG!p3=E_537G<6fj*&2FfLF!><)->tChoUrLJ%}&Cy#it&k$#8M4rwEGLIF$_v8% zfd=Gc!ZB7Q@!>zgl86uRJ31N5klzId{5MoE#84dm{gOVQ0~Y>h%Rj6(AXl!0MrvcqC}0(MwCDy_g77Ov<6 zz`{L67Q2(@PXrdovxD#o_Y>S)IL79&LA5csh-GtDCc+So>nW5@EPe)K@$Z@V0g<^d z$Qu=-<1J7>yJ^yp-vv7the?Ho{4U>Yi#gjEzv>+NcKrG)Uc~YBFGR2VKr}vq5-={v zCt?AHItdOXr06Z5xDpt?g+Vh++Q$lTVU1QC;Oc0upx_xbzL+IT-plqUXo-cx;vgMX z&=x-*_TU9+<;|+clx@=E&EUSl&M~IwK>J=8$>9YfdG~;sAJr1&^-s)wEMN5n30P|j zAAe#SCHa6Ml1D<4RQg$nkKsF_hjiJXC16AnMuISD=M}cW9GzDD1atHQ$iP%tWm8Oy ztL8tedNB|{@Q5UAO0O}tLGzG4))H{DFU?qMvCYwaEsFL}(tf`!Y&%|t3)>#jVFfgB z^Whl0$fLcG2k#XxY5tj49Iq&Uf>0Qc6)C+~mkYAP$;fl?szh0?@!OMa?vwb{<-`;F zrpo6eim%E#d0e$pIG!A?Bdvu`4ow)^rt}z>_eYO`73x|8ZH_KWHL^K4uXVxhNwVC% zTz}TIW3FAK+gj7_<-;{NZ_ok^K0NxTycwJ~&^)sQ{ z63FplKk?|`mfo?m59R`Yb-nNceSMj+5YpG*98)}=>e=M*y=p;lav1tcjkDvXkg9F2 zC^bo!kBZvhDxc0SPTEJ2X>b)3=kjKjEO;;5AGOLx^>uk3ipPCOe`<%fe7?P4kuyx9 zQ&t}p;wy_x2WM}rEIOpv*1<1WtXmd|PBn_h`UePsmq+^nxUjf$3D1uj>HSg@njE@L z%UqMg4qhvF9kVZMouoxN){i>T;3^7^9%t&}WOA4jQYL%XF#2Z6g7>ohQGsjK6nhR~ zSu2qJd=v-i_`SH<;=_JiFH=mf_((P%`J)ov$w+jlp7?$6YUJ~hhKXY_hYwpa^c`bf(&oW2HPOh8sO`{^!L%OZyt8P9#gY%{^ z*5aetq|2MZc~eDfP4Rdm>Tvj_ca;@;xqd}?r+ntlN#B&+T%Yt+-Lc40{`x194=!}l z;=AMs`IQCj#Ia-4DVjXzEp6)2aM@=Zo?Q^v!Z>quSS!@b(Z^aU=ALDCbXZp8#p4az zF4Ac&_Vn`M8hmWZNFNVu`ctjmGGK=;3vUJ=n{wQTvxm=Iz%0hKQu()^$Nq-L{$hc~ z&N(`_Q2G`rnamqaA{0#3*3nu|=PCKo5uZSaT zE)U$t)^$TDtd>K$X}95$J#Z`~#$SVbvm{4P;^@%Dic#bU^^|Au#;gw*FCqZiS=5JJ zQO z?AWst7g5A3Q1!@nyXBK6i#U$Fyxp27nN!Q!eQik2olx*OtGc<&BJYvcu@uBcGkem- z*=q7~u?1$4U7cCBQ}sd4`RU6a6dgnB!(F^trBf3Qu5?XyZ=&*S7P_N&u6u5nqO9e! zBg%&2sZR#GKa<&os?_2km`{RGNom)p^6VP5gDOfV#f&IwkK~*@1W(n>PS|Akswz1; zC>CNdLW)Jx;p}FnWgTmr$8e-|bT^KUha``=h}%!YWpMHj_PAJdYX|d} z*>$^oudf$WwpL;{XtjU(x)APpIZUe>SIuG6}CchY98v1kD1QKQpcT*AmvT<}$>GT8JLCzy_YzvWfO))DkbhWwRsuVcF!r z+^}&>=pNeq^J#~dXpQcX;l(yFsg@j?zi*w?CF91ftI7X9KK8(pAP)Y+sP;L1%m zstLGQEpnR8ZC=RZPpFA%quNvrnmSU^+=p~Qm2S46LgPNTD1)cD7hOv*941EhU#>d# zxk)#mTnBeNL~DPz4^!Oe{mrMtugZO`;+9_UA9^jnOTqE&b0rB!egADOi!$TPakG*; zyiH5uYVnxoB98AHW7m|?+P_+dXKMNM;*yX3g<43mlsiqOlTzUXY)o$BJS;R1>vTR3VqY{IKGNu%?Bklr^&ZGXAOX&kp{ zK6P+}Iyn2e)OyflCrO5fy%l{%UrY||UQWF+6817>y`der)X%Yap|rJwBWb`Q{BT+f z+k5nSxmuWEXUMufImX;T&zc*j;VSDf|`SEux*Za&$PqGleSyyhXGPR*sIFE+6N; z6yPmV)qRpZ1WArii=>5Obx@>0+kx!`T^UcHEyvRWIU1&@H5|z^>vLfaY%s{W9Ika~ zCqZMSg~g-U6jLWLV$(2dzj+r(|2Tg2fo(&5rVdwEkJH@j1247~m^PQsq2-e#UTy6w z++3LYr?TiHVv>><>QWYIgp*{zBqjA|xEkU#S{}UONhj`Gp7N`AW5pHQ+EJ(2+y+`& zf@Tiv*ZBRKhQRB|6ZtNylfq0vSX~e%4rN-M2DWW+DxGlfOKN||Yr&W=3#1as1Cf;D zm(#G-4teK}00~L}IJ+AEkmKbzp!Kb(PRVf{Bx=8PBWoIr>;F zI_pYkZ=NwlL7JL_bbj%U$-QmfG2eA_S&embbY2Z{b97oQSaWn-ty5EB{;_DzH^CP- zpqK+!XoW8EBzu&Nwfuc_-WbB)N5_q+XZnPq+soz0Au%25j~ZLEuybbJ{PtDFC%dmj z9UI(sjEqt3p!qV=F|F*FR`!EyXNBAHC@k5#FR*TEeN*7pTq)HQEI1PMJe4$7&!kb5 zErUJ4Jo3!0$?kJ-E0W&bEfFp(GhgFUo37r`-LuE8#)`jvl~0cL4e3Sq1}z-zHa1mz z%FCKoa!f1v+de#l<8Fvb2aN5*X&RmG+83bvExSAZTv{QzkOyqKYTUQ%TC?g{v+A#Z zl4qc&{7HdOy4|NKJq2dXt2yTNqGC+_Atk&(DQ(47gg`I62m=gd4I3D$R))ID4x1O% zLLXScvjWqv@Y{DOI10&Hc~zp;z2GL|W2&B6b;o&GD&FjlK8k*kwp}G=SGQ{QgFI*# zWxR{Tay(uXZFykZwPwoGgh6YjJWUuLxiH?bo=5PS=<@qbT9da4j16HWh-lZY_H{D$ z&@IbY$HsOX*ZuiER^-pliWPUf zmaEdy6hTWlJ!X^YZ$SuoZy11vA)&w?_gY>=hea8U#*KrIzk4N!< z$v}KjPOqaG!#4U_4E5q}FL~j!MtBUe0@DH!HkO2Rn9^OVYtH-~N* zN7v4!H?E@}=u$*}q}}nJ{a!1?+tmcc@Zpwwv{@n*QUmS_b-Y08*IHmthmJ>brgy9( zWEPgnbGs(!kF^z;)e7EEI4$*To_l4sS^n)a#6LQU;uv3Y^zvNyiz9*VLuNjNf!MbI z`mH5+o5F?mjP zz>g}hSxK%8!1AlbZb_J`NwAr#-A{uj^Cus}A>-Ii=3sI_Rs@acfqCdB#UmS1PVJO3 z+)#>ElssRJ>D(+wvOZhR&%!*EsQuBC$N4sfJ=>hm&t{maps};;`D(1=+%Ax!?3VZu zA>HwKu1FquA|+U>ma{50&sWn)u^QqFbT;s+WyPO$G!U2Oc|6!kbkKI6b`e)vp>eQr zsf0b52#SwkQ!etj^2{%Q2VoH&%c8^t;2SuTM%l!l!7bx%!WN zOr98aY;+|X8nF+{T8NUM)uqIG`z_HoLl0} zW3cPp1jmL#zWBFztz#TS^~J$)et+qA+3DWH+(n-$91r~7jixv z!b@)k$93@U4Qem_sYTp3S~DBNo0iJ9OKjyaY=MR8qb)dDZ1qha=k}uM#w6`-deQ90 z8!0TR=FM2Er^r$t^`c*2HsNQUV}E-Gv(|kz*dncOX-5a4b?k5NVAiLv2D>{urQz?s zl*XHuQOC={?#3|T-B^POExmZtYS?jiuZb1$!MXn+eTLLAwU6*VfoA9||-ACNZYw~Y|ob1|=g-&!MvV6^s{~oWH zF6QWm*mAUYM0z0y{k{ii_9| z4=wH8Up`a0xXpTH!)4Yx9w5(`+M6e!wFsAHik?A#)rHcPq2c9Q`iVRQ~n?(DlM?gI;*88h7k|$=x*%Yw^P# z<_E+bO#AOIko$N(=31pKg3_ZRAO{yM`!-IRF3^S@&lxWu&or(10v*Go+Y7+Hw1C}wh`dsp@46N}>&tJmy(o1k8}D$&ENXK;K)`E$v9c#j^^3S(H0 z=t9IAW-MKMDGmEBKGv~bp?L@|`rD?wDsYbmZ%;;i0GL~@-(ycI$@Yrd`i9%~0&T*s z)?5~^y}BctABohv#MQ5*izg5BDd88!LVY2%>hEd!Zi3Bk2RH^7lkku2ZU)l-Qyq$r z10UU@ebe^tm6rNbx0mns46kmY;8(%k?dxOrHlzOI#@2#o{L0vRwat7MOdKyzisP&2 zk>ixVApEq>y;hvZkas*eo^P`^k3LUZNpnw?@s~bfi(is&$O`g6GhJH>rELdCA2{WP zFCtmU<13V`RebOSr!`lgt(eyapYc05_g9bViXsj7r~!?=0`sP4gY@V_oAtoxYNmg* z&1*fUj*J9_^R+t`Wk1IB1O3?WnvXYl#wmH6+bJcNlhfrkb13tq=+wdV6t7UE?M0s| zJBOiLP{NOS1&<>*Iq)zg0Oly*kqnOD>$=s=5>@f4dI0d~Q~+3h=V}ViUw}dz2Pt?ZFGP4lmf}lKDW4J){@-tv*~YkYIWP zmo^D@*!)<>x`k#FUS#H=yzFyF>$MfL%tlkz=0Q8IUt^|eJ6Z=yt#W&TQ2%wLW%Vwu zUB}ZyctPS$-4CzrTVjV8mhXE~E}jy0-xdx=(u=XW8m}gpUf2PS!NDB+W4qhl!2e8# z;^V+a?``bq`Pl!QmijZdm+$rruWq8?SHa%x>t(k)JU1R=Ygye_#@4HC=Cfd29kX7T zu}=-{-CQ2~_+gzpnQ$5Mjwi?SZRTCB;Lu&cv!_D;OW(PV2bA+V@I0T7`t{&3$`3Z z@meV7sli^lzb2csLiajc+0w$&bh`=^Yj?o0tYf2(gHUaF0I6L|Hu9ScF3Rf`HT@5V9ufg45(*7exb=l={HkEAzU8tuCliJ?1E!($O`V zHooqQNuYxMdT)Qs7O&DKHY&qgiUc-w$ z>*#Em36|7s z@WgOfTt6l3DVtT2;~x*My(hH1xhoGByg;yZ&vI8EFYXmjsr*yKFN}uc zh1kLimHBFhM|oioI0gr6?2ip^!@m8eIu_3(AOCNA=dvSNj-%=QJVvg=F-Lc4-X+ke z?n$EUC()3nwk+W=DRz~lz{lNcUGF}7ju;hcIzD*#H}Y6kmIJNTmj>w zhbR`U| zCUoclp%aa?6CP?6RJ`;)m2`eEU_5AWq*!(3w75Wz8`ld-@bs6u-q_MGbWt|IP{2tE zT_zUEgwIE+kEl3afbVJ zQ2Ax!A4vz9)%hBa%|rTIrlEk>F?Tm3F2FLRV-@J%OT?k~A{K-OvH)H`qn81?rW$@L}#*8uB{0HrChb&&;?5V8?BY{$bHFvkZi^ zrA#H%fjGsji=5cP(kl05OOo2+R*#VOst!C`C$$xO?mgoA3~iCfkwwdr!fialTqB(h zFy5hrX;b5j!o4}RJ+{VKI58?1<$fn(e$wZzh)pn=+7~8%)Dv)tusaoqFN~V<%{m4x_}4Fjim4ZbxDJuBe&jaY<^%T;3NiTz}DIuiekE-~I!sJ0@U9QtOz^es_TDdik-zc(BLLy!omSWKCERH+= zm?{ao1>N@sFM7F;?tEU@$Yq5mVYUVcny94x)Q)hgG=3&Xgo|`An$;!fgK502ieSH5 z5)3H-@3O`QdVB2Ne4S$(YG`qsz>kWc`j=JLdrt`EvRYjbOdQRlgJNBKaY%gJOG`jf z&kzPnko^)sCCDXle(Q{*s=M)GW1+tZoaScv7of7M3Y#HYO(S_0+3g?8MbOL3?M0IE zi?Gxb+bSuSw9fy)gWDS_5Avu}NB*)_datVSpAfH_Ap;vd(QvT=3VR&QxT!_=*sxv3 zuKNaaT1@S8&D^Zti|v7JEnoT=?=6I>O_)WS1Z^}=bS>dNLBPq6^1`bA@HOL1c+WSce+dC|Aig51x z&V_1>_elgySzg(HT8OT~I^2mZT(u<8-X?GXhq+sYeHQW%kQx^^8V=`{BJgu%ejr({ z@5*E_XQ6RynF`@;EfBana1;#e6^uH2Q11P%yh`kg0>W>w`ko2ii9&?aE!1A)sYG{# z1EDs7)249R1Wp_2L<`(|`};DhpxFHyF}E@4H`qmj1qyg7E8X3U)z`0wN^r$5PQ5DN zCV+ofvdk2W@NwO99Z9W+DHBd=ai9C@v0P{&VJ|a4*>>z(^CY^|=pJ{D2s|Lc%|&dzdfr z+u9W8hR;~EvEex_tMG|WoL=noOwvh|xC!R!JGfu+@)^!ndD7Vu)C_ts4RBipH?|4Z zTq1mU=adQL$X77!X&l!re(4JvW|AD76{p}RSJ)*;QXp&f9^hhTTPb!G@9VXv;_?2Vz*_W)u}xs1?GQhhqqSmZ%J^K3i|Y0(Du6|DKUN&Q z6c{y$uK2Nb-Sq(t<|TB@Xzl`|xpPJ{$+&%8qZjt~r7Jq!h*)FNZ?H?`3bar9uDz`p zr%lk+_E4wZ;FW-L7r;L(SVrnaNViq)(2>w;7-KbN$GAlP<&Kng^vKiEWbxk6jP?uBitD&{b{{y{ zZf$rdxb2V-0uKic4P72*oS;(_PUlxon2GC^aA1Zy=X7>~)7d$v z6Gb`-IMe17+Cuq71#*o^zrijNEKtCveAw&~t8Gf^I^zrT6u`3!;2)MO!>vG=zGozo z+KBVXOll+M)?>NQhGG;45W_tm2?}k*lT}y5^(kPm;T_4Ya9ftbZRdwciw&QXSr?AK z$LMpQ^oliY3SzMT2LmhbB+SpXm=S61p8LQl`2iu=?S7DxaRbHCj^EU#I5&L8qKysD zX;}p;^~CALPR}HrM2VYVuD+A|B`=@gZ0*$*oh?PpmA2tHz*88DekxGj>+cxb%Vn#{W`0^Lg?Y||iG>_;b% z@NBin7is0=D~xH8Gs<>OptPwrf!A^!Xe!tAFz@`_bDY_t=s?`X!wq#N!SEK_Ui){c z6g-~X00{rcDw1ieen}~YFA|@xUk+FQYM`y|5YR;-eZO3pX%?VdSGhw+-GAZ?5nJCB zW^%X%PL&G{P;Nybe6>4tLPC4x<9%?Bm_FK^05{7>R^SmCw>5sK)JVId7r3NNpzMxF zlp|8(91(X!g9lsp|5+6=_Z4DBih%XYA$=it0|2(R2>XM+$8C#$OS|H3$7d#4WO$yl zQqP@U?D$O5QIxn1#{LsKx5y2*DN3ezS(1t|?*)u?we?r-MPP#~gztQE$OZG?$!+7j zmH1oQ+mLoI-c7a8t;{;!k*HS^_ zVOz9BtoU%N_KAd@FPVs4e(F$rO!{0p;L|m4VMA^U_9sNbOF1W}0v>#K+M$5JN-Wn7 z1?FQY;dk>Jns5M5#cKdycic$cOBUQ{%^#^#xpxUynx!#)u4*oC~~T?wTXqvy62zcme;)L1|#?JS{-gl--k$le$M z2iP{4BQD~K2_JXX0Uk69XVr;p#H_ZH@cWn7p|Cm>R)@gqAgpH49Nhl?hQ^9}`yKtV z$E4q2mq`}r;Hj^{myIFvS_Cz?p`%da5WqtL|FCEosTd($$NeWpVr$_;nHO8!LwtBF zms;bNkx=%kPA10ReIe}LKR{kY9Yq)jP)8BCt?{1INLw5F*qV$X5H>BYLl~pLmbjAR zuX(U0VSHc!Mx4~Ry%ayNaAyF3ZTmk2|Df;jOWAK}SKRIRj8EhSVi3>TsV5FFc7i79 zFiPAAQw65%X7I9+wQ($x$0g|*^I`@VvN{A`b_n)dB7FMjkO}0@gPX_Q{Y$#q#i@bh z2{v6|z^8HnJug%6SU|VWT`|p$vZ`!_9m>AV9SV+XH=2kHG8%r6QA9d@bw7K71C`Qs z#n+qt7)J^O@+29}uS1_gR6(c&jP~m{gr9qTwO_;^TNcWUMj|OlBn9O5TYRp?1t7M( zae9Bz)=b2+AvcPC|Yv9y>fXLrVL6RGkF7myrymr0nZIRKRJ za)>gXs2Zc~4U;T{J&!WPL_(qq@6{pRo=aRu6l0G$!yrn+QY=1M!fh4ote^W-e z84TSe^pMa(#-6DJ0$mD9w2WdZ$wds^ zCG?QcldG9iV4^sWZOKFPl(8xZRR<`EH8ly{CG?QcQ#lKk0)DD!Lrfi9nfT7+l(`Y5 z*RxcFN=Woc=FtG!&ZR+|OablpND-_%GQ~|v!S4!qDB$^AI%z6WzJBBKV6~AU=~JH@ z@~txV;&0fjRAgqQG*l`x%+%+&2{tR{Bt%bzktN8ZD9PT=U^L}!*|^~b;5(%hPO>JQ zWGqE}@Ea*f>vtj^iin3I;-QFmNUjCoqlcv5sNbN+#}WcNtlA?>=z|k3wxx&-fQJH} z;TN7sDx|;pHdrGZX4Vkt>Uj_;?(GEu2hJ=rNj4X0W|GniI zdt={IDTS|!Gh+;TVQ4SPm&N^MG;zDY2suCim_|D zLnkP-xb&!95!a`HL8p61vMJoQOX0RDhe;U5bBou6Gx9O|kXpN9g-C)J?El-PN*JFO zfRQ9%Z8fA1jF-;urG}#fnRKSSfx<%J-_)kK+wd8S7TnRxlUC}9(~F&+NjixVH^E$e z6ZcDAKEc^?t1CHMnwk+0CXpp*+>JdgG*vF-9~bP&r=&RY;L35{&6G=Dc;6vK!o7Uz z6}EFpDr9q0z_m+eC`%h=NT#-&;n;U$GkJb>KMP5>Gi;erZ0+_lEbJVQeR2Y6Sver$ zm{Jwid_R4T@B*^qWh-9p{Z=+Y|80EdU?GFwP%UvoC0}_WR2-@4MF=pvAbY`1mrfXO zNYEE?hj+o#-7eP$*u3*Z5V$E|&vH20Xn-kXR*B5zl|fhAnD85{W)ffroSIPM5^|Gi zBfUOm;+)PTa5@v`bfREfu3-I}UsJ5ux8Kn(drbNbc9CF#0-nlBcQ<9VaV5wZOraVA z*f9&5%H1znMheDAuRC-kH82+3q!y>{4v*zRi=7xJvjN1=?$8MeEjCT1MqHl)j+?1_ zl1t&XRE686947IA>m>0!LiE|8CGIY4OAN$d|6i&qVSHKuMoel&u$IyX#!Kh-QV4dt ze}Q1!zd&&??zgll?lyeJq8&UxLA6p(oL=noOwvh|xC!R!+qhry@(IqCTV2W7($tK2 zFr)?7)&bzgo)(%a7xIq>_T)Dc$dLzEj`MD&T>8SX;G_}cim&L(752D5ecsJDmnmG# zY81vC=ynjgKb$5cwn73Lp#I;;bwM- zLdK>Lfm75r^-XI(1b+>bbeees;IT_=vjjeT=l}TAAOHOCKYjV>AHVzMZ~yko&wu~p zpMU=SzcP2*mo=_`;>zPx>84REUsj**Q!M_2qDQ#xWDy%-4=iNMox%#yQ&@*Pv4!X& z(5{>B8&9}=IFkp&C-gFr9&R}a=(Y}Y@Zz|oLEe$v_rcH0XrxUB6Ky7E)Z_)qd{#OM zLoSNKMG?3tWD*o;YrFqlvy!2o1PK4gDidm~SBDCQ$Cbk8>z6|%EE%L7X9ZjY@cnXS zq*;V=bLHP81>r_LoT{`>p%vdhv&T}Q0m55mgs|y&BN+i(Xs>*{3*NO$51Bp%9H;Af zl9$5mTne`rKOkPYPHgQi;YfRoKBP9okbzrbAcl2-H3{Qm0x)7y1K9l32gXb1wo;ti z?KVH?8GHkUuQR`?O>wv3GZih!Wjzfm{=}yaFLrt+=_E?r1XJ~8?7sR>A9k{AZ51a= zQZeMbWH2sdFMlrFbpktFB7Az=kcpg8-csnk-Cd)U3tBu(X`*3D6Fi^^SH1IA1djuB z<8&{B0Ic!6lsnXvj?yYw7{%BYs{%dT?AZuDZ*#HY^;_E(H1PNp58szCWpMTL8oayqyIr*!2Ymc8EF?H{lgbVLR)c5 z7b6))kDbhxAhX4-AtCIQ9BlRb4}2foBd*VmXdpG%NRl(exb0ow7Lc~Z>tSSZDJ-`b zeG09|`Y;43xc~2}fbls27+C_eKKFfzAO8UCM3F!VNl&DN zs3%S?c5)`^7)sm#WA%mXl2;1kXSvmt{47b$koN-0ss!&>H8%s_#}Gk>0}YRS+NPY~Qm0-jxlPP+l%2s4AEhOu~B^~_h!^XQGcK6ySQGO{(8lFZv1zdMQATE52#FyVrcaOxE zl`wB6Q(Qq|t(5b0m*e;H;dCmN&-6pCCEl1zNaO{HN##t;)Lzyzek_mCE+YWF+Ajs| zp0wkSEKQL}7|qkZ&>tCg>s!)iVWV z=*rd16c{PaV_Wj(fizWHma*PUp1OXHvXmZ@exokr z1?+o#1zp0el6_JZXnX&Ma8f1Om&AAHcH66cT&h#D0+uM(r}EYa+W8@IuXpE$%ugYG zXnjQ;fa98}vw|TjWldSBuaatYGQEn<1zi56pv_|gjF`vv2+Y>(t>w67f8zD1MKD4{ zc~?5Y%mg9I7YDn=1C-A#6vX44-%mtsem_DB0&!YIcK(eMdW|oNTD($*fr%n49soNZ zp(qK}gpZO#(x-%*Qv1+^Xc)?!w-^ONudfH&RBTNV8vsj`t5i!+{ABOwb*2epz;769 zeeyzSXE5|SyQU1I#0rT%I$`|o z3BX?S6kV#|mGn-lX@8pv+53V?LeW_qpEt4@^EY(s_X6 zwOXJ@*xWa8^hP+jiLomdCZ%D60ZEgEGLbXvTdV;O7?@ zR&YezFlu(IP8jEMBCxq8QYtKJx)na8wQHLe5^uNuMg*M>bmZoj6a0QZ?QP>4xqsPM zWsnHcc6bAfKFk~474Yk)$}LJ6Q< zbNAi_+L;7xwzUP}{VkB2=M}_b_c&{Xa06H3w%wx=79o6qaCpbv?GA?ku5nnZ?ywYD zz+{oMxGrsX(E&Ug;Yl9Yilh9ggu4=ID*XGZA`Dv-V!$lTgn)}*z!1He&Vuy^!8C8c z;-+%@o?B;Zb?wD$Httwf5QwbXpd<8-L}qZ8Fxt6-FoE@S1(7$KkQL{m8|4Io`v(^R z;T`fKaY!?ypqHCnX+jGv5q5F|)?f`MxKAW}eqMMbZ5({E9D=(5t`^!z{IT%{j-nO9 z`>zph!1lM|DF14NLvR+rHTgJCh~9IVNRNJ0H(@0OiFlTVj_afhOqxGBbW=!IiFA?B zSz+W+W#tjUjfYy_Bx~TPeAwQ!2?q{M{=1Kw*-9Ylv>8PZ0(QYQ-|FKtBG{gu@%q zj>BI?K<5#M7cKk+Rxn+5t%;R-C|owi3gxp&dWOdULc5xXCLCW3-Gz^wLy<^78^KfYb*ZFelC3e3vUMJnN4vdv zaQ^6KfBUEh;B`ngE9EzWs&z@#x}s`bFjX@i&Nwe`sa`%z`cR^Ip|%<&>yZp2lRz?H@3Jls@ru-xN$rreJXH5wsL`9 zH^sA=@zjtdydE-imC#K>cR|gZOH#TJ(noT1tSa8tlt(zYR> zy(Skf4>HgRkUkZWRuDO9T^y3k@DKia`m{U0}qyVOcRSMKT#hxL*>z zOdMP_re~GVEkvI>--KH!sR(p3R_^cs>}1>&88^wj0DRPt^eN(@B>D{{x`QfEFA1H# z9&A&w4Ml7K+!SzEzHlg|5O$f5!A+^iC@Bl*x-+50dX_j4QpZU-qYM}TzT-K}j#AK8 zD)ah@tg*oj9Ql6Miy(pX-6rFJ3;*-$==yB5+&j9 z*Gf=WIA#s-Quc#$ASN1fGJuv9#W}FN%R1=s#Ai)g0+owlj13 zC6ES90IZr7bj}&f@N28PFlG31I7;0BZ8KzZ4Iy z&(;)naVB!y05mK5wmB{!>7(pil@d4oRtTGnFOZ$IllkH{86x2#EcI461Wv+|>~j!+ zO^Zl@L3XV=frq|?`T|SsPZyc1dE2lVlFae!7p)oskUnl!D~@10acSHxWhFkw?Ri^V z!U6!ZvoZ&_B2lh)!eZv{b?y~&BN1s^wUy%~&QI;khosLXj^}@wX=rgXCbuA91`i;8 zrmUm91u#0v?^_VlK91vz7a*o=8VRN$IVD5rF0I56&~|8nkF?_uNyI2uMSRN5<{{}* zjZoI#%Dh;O>~^PXSz5P|@tPbDH_x^6_H zB$+jY07beFt7KFxfmI6G*RT@pf`B+WaepQGDJtTc<8%QE` z48-AVx1p6_-b2zSw*#4BQeQYdn;F)=l5euTLC|*rN_^*I=*-p3o6GhQGxgB&afc?f zz0P_l6vlxR%Ol{q8M4I{#vLemZ(=M(}p2s{KOKGhN*W(=J|^f3eH zN?e;swA^I;N}9bhj0w|bRsd;Rkb*+mSeqe9|N1PKaoV9H`AoESx-Vn z(gxRlsdI*+6#8?2z0fr$Z%MWX0Jz@GVa{j~0oVIy?~Ld{j%p1|1O{ zcnXB$cRd5=O93a&MQ#G&a&f{X2`zahxDoGeKLBifgyN;P21Nv`(5(Wt3zFC=EC5{7 zz+BYb`VSFSxX6**&H@uqapZfGVQg0j4^B8;0yYUuq#_WG^Av~B5YIK^AHsoDV`Vos z22U>rblW9hm5*zUgRKEv%!RdITQ>VNT~qy-T(X1>6;Ia~y}@DuDM8 znwn!x%dwOXbDcr0dQ}$AxQ$I(6?q*YuU3bV!J2Jh#TRaouopr&MuuZgjze&N20R5N z1K1+@iFba<`yr4Sfse?020pF7I8ba>26*H7r-S2-*-OC#Ub%=1Y};ym-%kk z`nwe3)=P%Hjm^d2B7wnEruEN#jpmv05$qKw4crr0n#N2q@8I7V1?;2C8niMoDyxzmH})pX&ILw5tms5 zNIUHV4SLJ44)x#;ybjut)i=^)dX(oQvidtN(>dWns)McBNSw;~JmFBxdy23!9;l5= zNUiH2M--ga<_F}gfWrbr!vfEFgV6|Fn=snrow{F1zuhA$8s1F^_aYFU0#;ynPXZ+j z58>k{bAzufcp}XbLOUQaCv9@`z^o>P%Dg18XDtan>UB`;v3IW(23kl`@T8O~X7q%v# zZ#qXAF>8cKmn@-+gjU!tjf0)?h0*JxoUL{H;|x6|ba70F;LO20HdZcB?qgQ>69}J4 z#GSm5NPi2e|Mz^Ja2Sfi#svWmtT3@S;U+y~fC!>JWW=#ad&nqp&%R5b+XbxharTe_ z0-hJ=qNGb8oU#Hg3Rq!z@x|MgG9C-+L;>m%Lc)h_NS8tpgx1ormoa6Y^G^1%O)zc5 zt?@fQ!ZwBQ;DlX+#TY9vY_kFt_XmJ)hXCZl?IJ)p4F#-lv4n-rcekL)v${j{I4_%% zwdst(cM0PWA5Hqk))e&FGby~PpPY>MMY8U{vhwWp(8n>>uxf zAe9lRGi4Ug6|_OS>v|c1Cy%<=GxqImBXH36g9ZWbCyJcGoq1~rB3&iYO+rtBk(v~6 zR`{rjtm{-rH(||NR^-v*g*iGFWRhs1XogFX$)8Kwfm`Ew+PTHeygj<`sLpL2F}QYx zkJ==3me5II`%*|}h3$gME5ED%DgwCFFe%XrHwhoha+Bh|Nk!n<2v?9vvK{pm9z!Bw z>oX~Gf$L*I(8`)Q0PA7sN-8TI?f3{cUo2-1u3)B=bcFAR6Jj6t{fQm3AMg%Bba~!A zh``dREb&n#H^r))2_w(@5|VciIv(ZI-Ge&&GwwkJ#qttq2L>m;M;8Iza@=Fj(+(X3 z2L=v;M>h#w6t;mo;n7J#Uqap%QtH!4zDQP5GLoNqgOb?LE>M#6nsCHe&ISTYXGWK7 zbyqH+_N2gQuV3qS<}OE|$7+7=92mr5-{`(1bdPTi7W~i{$r3s#=(a#5k)fwVdr0Um zpbLn46>Hu@8qw{2bNgKstJ^~%I!KOmspxT~nKf1FUErF;3@rzZ{|{c0c;s8TrVK3wM*n-dIr&o^m;P(H zIhOlMe35cJ$lcq%AsK#G zIk@)a%~<4;?YHMXCDNc(Q@_7|F?5ZG652Gtn`o%?O3T8a!H1-e{H|8xM*VxOH3q

@HZ2+Y0LW2015+6%K*E6ew-Hb}B!p3??`dsWTEOrAe{~(~QFr0PXU7$RUy>bQeCd4@Dw(J_8e9X2(L>(TUe2yn}imkq2Broe(1l3aOoaVu1*h0pLT^DVs@v9 z=Loo6r$oLVl0FqUAzQhCvoSoI8DB7gvr#Wa0%tTIj|pe!E~r@_lH&AB@P0_5@SQQs zSaISe082?&cI$`Io2!Iw61poVhjh#&9|hs!OOl7ziLXt@O5TWOdj0J272EkgDAe}{qISMNLU-jGhqCueZ^B)^H|cn4LgWL0&6@{J^Hvv__Qwt2qlTnU5liVS zLx_p7ca=**r>_UwRBS^L8vr*2+=VanIVMBOF&RpZ$xw1khLU44lpK>G<(QD!stVWE zDh`pB*j`;gyIHI;+rETy@cN6EFQLh>#0Qxa=)hT+Oq3Vspnmz*o}BcY0=j_K{$)=? zXk`iL0=$m;93!Y=>EeU*>R5t48M=-s(N6I!o#`2&CCay-@%hYP?rT%PorC>+X3}#` zVA{G^G15~(+flH<$Yny(rbHkaTMLf)xugyJtt(r`XoWQBQ|HlLAWg;xTgMDCzhigw zDm8w-cg;9r>u4oN@qm)H$KHV|D>r16M1_*0{HqbhQ&eXc)`UEPSnEJAaCJ+Wn1RW` z)!I+R6C4d($0d;l$>Za?Gad|mOFEAP($9)&CcOeW)B)1Rg|E!`&1bK*#z31wwRi&# zm^mkabejqv&e9P+ih{QF10fM}?aCB3RzU$25QnqHZn2eXr(wo6<00uIYB~#Egm!bgLC>NTc_=7_^X-1q)RHqBUkaA4^$1$xm34n+5ooA?dTAAn_>ew}%q!Z<1#f3sfL<`+Beq z#YVtW0WSe;`-6-)8P+E&9$L8H-wAkL3b=T1#PnO<`mR zV0+vr;I1&8r-CjeV&r(-kGXXTY(zn~uR{hMDWna2d)v<#oCQ8^!p5Y@FimyJ1C*FJnzs&S)3}VNtM*3N_(L!L4ZZlsnQgYlq%SgA}LA9!Z&8gIAm$xd~4Okz=fp$ zn8OS@FMNY3n@HW1f)NrcbO ziv)KS4nA29!C3%X2nt}gVu0*S%ZF&dy~&DmSTiSWOqV!8M%%4`^l`nOadV)4J;y-5 z2DcYCaCBRklaub3!p9y#f%w>?Fc{Y+zBp0O!ib_FCy9D<3X6RcU}P^$#=zdkq&>H< zpqB_0E3j8d(4A*^aE1#2D0?LX#k5Yz2s#TZVWyj*r}B|Y0Gqb2i;J&-iF1JTu{9Q{ z2`?ZE)Y;$3b?pYuAKmP4+w9orY*qUvS*mJi9c+veLQjS5r3hrN3#eytyNP&BA?Z`q zGO}wm&fRj`xW?yUx%;Nf+(v*dt4ru1p(p=HZ+$91^luvg?-4L83y?llBE^T8V<2`g zZPzXEY!Q<_xh=$2f^YIWC&djkly5QxW)kQUdPwN0sM*pKCkx(B0kv^=#w=sS$*~14 z0v~?;vb26#TE8ravD}p2{~aW$zczD%KrlLpq*@68RX4H$N0VVMuNk;G>76PZ2L3r7fi2x$`%d@aDkK z(3R5#3PpF(mgJ!l6W#U_3GSx7p2MxvgI7HH1`>D+}+B*RAcCz5#o zs2uFR5D?B7>zWM@5SX%gpd$-?jC)Z?_wqm1S2U>Rts~M?`pBgm11l-utk~)#F+HS{ zEW#zt~_%F$u8yMV>XY|Zl! zb&>zh#A*WJ0q$tKpk#%5BoQ{LfqVWKCbrKcySUVvrPDQy;Sk#e>~;%CqvhSd?Gg+| z8z4`wdhiQJXKstYf$YGo2~0QT76M3{q+e~o=NT73`iTDw&?{`!rx<9far@R5sNNr$ zlQvfr@lho{nuNC7NBrJsPO*0G43gF|var|2tbAK{G%=YZRxFasQIl zJUGJz0F=Fw)i{tknuPAcO4xCO(C&^Kf8;ERL`>TS@fC0f1fhJv11V0)_?5{QB0q*u3_iW2k~B%gnvhL_(GIbP^C2EnI% z_e~kOx(Gcl37sUg5MlGyr|?7nH7rQ?NEL!+4@sXY(c(kQF%Ulkx?QJ4Qy-E(xgE$> zHsEX&&t`@fD)voFK~E|AJd=dZf||{uDNYx>pE9~?%raISFas?MeE9Y2()x92{kpV% zU0J`*cWDEY2%PwaBsJ#(df*O%;oJHFEGYNP3 znH0U4Nr-$9@Zey#dWh*I@G-BD^eJK~C87v1v2SR4i)ZNZ^ Contribute one useful, independently reviewable result to +> https://github.com/CrocSwap/integer-mult-bounds. Read AGENTS.md, autoresearch.md +> and CONTRIBUTING.md from the current main branch first. Use the repository's +> task-selection and overlap process unless I assigned a specific task. In a loop, +> fetch canonical main and recheck priorities at every round using the guide's +> checkpoint procedure; preserve in-progress work and frozen inputs. Work for +> one session of about 60 minutes unless I specify another budget, keeping the +> final quarter for verification and a concise handoff, +> and report the exact scope, evidence, remaining obligations and predecessor +> credit. You may post routine claims, questions, findings, handoffs and feedback +> in Discussions and open a focused PR without asking me again for each action. +> Do not merge, close others' PRs or change the selected frontier. + +Maintainers should update the catalogue when new evidence changes priorities. +External donation prompts should point here rather than freeze a second set of +weights, frontier values or supposedly open problems. + +Prepared by Douglas Colkitt with OpenAI Codex assistance. Apache-2.0. diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/compiler.py b/research/owned-relation-independent-validation/engines/cost/frozen/compiler.py new file mode 100644 index 0000000000..6a6f9373fe --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/compiler.py @@ -0,0 +1,138 @@ +"""Independent stdlib finite compiler audit. No project code is imported. + +Exact atanh logarithm and Taylor exponential with rational remainder bounds; +all acceptance comparisons are rational/integer. Authored for the swarm audit, +retaining Cao Yifan/zxv/Cinna Davis/Jacob Alan Sussman predecessor credit. +""" +from fractions import Fraction as F +from collections import Counter +from functools import lru_cache +from pathlib import Path +from hashlib import sha256 +import argparse, json, time, platform, re +from . import source + +UNIT=2**240 +def down(x): return F(x.numerator*UNIT//x.denominator,UNIT) +def up(x): return -down(-x) +def add(x,y): return x[0]+y[0],x[1]+y[1] +def mul(x,y): + v=[a*b for a in x for b in y];return down(min(v)),up(max(v)) +def divide(x,y): + assert y[0]>0 + return mul(x,(1/y[1],1/y[0])) +def logbase(x): + z=(x-1)/(x+1);term=z;s=F(0) + for j in range(100):s+=term/F(2*j+1);term*=z*z + rem=2*abs(term)/(201*(1-z*z)) + return down(2*s-rem),up(2*s+rem) +@lru_cache(None) +def logint(n): + b=n.bit_length()-1 + a=logbase(F(n,2**b));l2=logbase(F(2)) + return a[0]+b*l2[0],a[1]+b*l2[1] +def exp_point(x): + if x<0: + l,u=exp_point(-x);return down(1/u),up(1/l) + shifts=0 + while x>F(1,16):x/=2;shifts+=1 + term=s=F(1) + for j in range(1,51):term=term*x/j;s+=term + nxt=term*x/51 + # Ratios in the remaining positive Taylor series are <= x/52. + l,u=down(s),up(s+nxt/(1-x/52)) + for _ in range(shifts):l,u=down(l*l),up(u*u) + return l,u +def power(n,e): + l,u=logint(n);l,u=(e*l,e*u) if e>=0 else (e*u,e*l) + return exp_point(l)[0],exp_point(u)[1] +def moment(p,e): + l=u=F(0) + for n,c in p.items():a,b=power(n,e);l+=c*a;u+=c*b + return l,u +def ledger(p): + # Manually transcribed from the exact source; no AST/source execution. + k,b,a,q,ep,be,r,st,la=(p[x] for x in ['kappa','b','a','q','epsilon','beta','r0','stop','layout']) + si,ta=1-b,1-a;it=ta+(1-st)*max(si-ta,F(0));lf=si+st*(1-si) + lm=1-(q+a)/2;xi=ep*(1+q)-F(3,32)+la;key=be+1-ep + m=dict(main_transform=ep*q,global_coordinate_router=a,fused_gaussian=1-ep+q*be,group_bit_router=1-ep+a*be,group_scans=1-ep+be,boundary_algebraic_matrix=F(3,32)+xi-ep,sparse_union_movement=xi+F(1,2)-ep,polynomial_products=ep,microbox_face_corrections=1-(ep+be+48-128+2)) + c=dict(actual_bit_above_effective=p['bit_saving']-a,complex_above_effective=b-a,q_positive=q,complex_endpoint=b-q,q_below_effective=a-q,stop_positive=st,stop_below_one=1-st,leaf_saving_above_effective=(1-st)*b-a,q_below_internal=1-it-q,q_below_leaf=1-lf-q,lambda_above_tau=lm-ta,lambda_above_sigma=lm-si,lambda_above_internal=lm-it,lambda_prime_above_lambda=1-q-lm,lambda_prime_above_leaf=1-q-lf,epsilon_positive=ep,epsilon_below_one=1-ep,cap_above_band=xi-F(1,2),cap_below_cell=ep-xi,group_positive=be,group_below_dimension=ep-be,support_router_span=1-be,group_gauge_power_slack=1-(2*xi-2)-r-be,actual_logarithmic_group_guard=1-(2*xi-2)-be,global_gamma_power_slack=1-ep-r,actual_logarithmic_gamma_guard=1-ep,alpha_logarithm_absorption=r,group_key_fits_record=1-key,membership_arithmetic_fits_record=1-be-2*(1-ep),microbox_halo_volume=128-48-be,positive_layout_slack=la,short_record_fallback=ep-a,complex_below_one_over_32=F(1,32)-b,strassen_integer_power_gap=F(2**45-7**16),theta_positive_polynomial_power=F(2),cap_below_phase_cell_power=2-xi,halo_covers_generic_inverse_radius=F(5),union_tag_work_per_visit_fits_record=1-be,union_header_fits_record=1-be,source_axis_superpolynomial=1-ep,gaussian_above_main=m['fused_gaussian']-m['main_transform'],new_complex_uniform_saving_above_b=p['complex_uniform_saving']-b,improvement_over_user_baseline=k-F('.001730970419199163702738'),new_semantic_guard_with_C1_one=1-ep,fine_prime_halo_umbrella=F(7,2)) + c.update({n+'_above_kappa':v-k for n,v in m.items()}) + f=dict(new_semantic_group_guard=1-be,new_BIT_row_stock_sublinear_in_active_group=be*F(997,1000),fixed_halo_explicit_metadata_branch=128-48-ep-be-1,actual_new_BIT_stock_sublinear=be*F(996,1000)) + return m,c,f +def enc(x): + if isinstance(x,F):return str(x) + if isinstance(x,dict):return {str(k):enc(v) for k,v in x.items()} + if isinstance(x,(tuple,list)):return [enc(y) for y in x] + return x +def run(root,invoice): + start=time.monotonic();pkg='research/kappa-round6-compiler-tightening-20261022/' + a=source.js(pkg+'ARITHMETIC.json');controller=source.js('research/joint-helper-lattice/CONTROLLER.json') + assert source.digest(source.raw('research/joint-helper-lattice/CONTROLLER.json'))==a['source_sha256']['research/joint-helper-lattice/CONTROLLER.json'] + assert source.digest(source.raw('research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py'))==a['source_sha256']['research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py'] + H={4:28,7:7,8:47,9:326};P0={1:2201,2:412,3:510,4:127,5:40,8:8};T,P=Counter(),Counter() + for e in controller['physical_events']: + if e[0]=='LOCAL':T.update(H);P.update(P0) + elif e[0]=='QUERY_SHEAR':P[1]+=112 + elif e[0]=='IDLE':P[8*len(e[2])]+=224 + elif e[0] in {'ADD','SIGNED_SWAP'}:pass # Scalar operations, priced below. + else:raise AssertionError(e[0]) + for e in controller['diagonal']:T[1+8*sum(e[1:])]+=112 + assert dict(T)=={int(k):v for k,v in invoice['targets'].items()} and dict(P)=={int(k):v for k,v in invoice['paid'].items()} + assert dict(T)=={int(k):v for k,v in a['targets'].items()} and dict(P)=={int(k):v for k,v in a['paid'].items()} + assert H=={int(k):v for k,v in a['local_helpers'].items()} and P0=={int(k):v for k,v in a['local_paid'].items()} + assert sum(T.values())==10928 and sum(P.values())==64404 + assert sum(n*c for n,c in T.items())-sum(n*c for n,c in P.items())==752 + k=F('.0030217758');s=F('.00302177581');g=(s-k)/7;t=1-s;reserve=F(1,10**11) + assert F(a['kappa'])==k and F(a['strictification']['tested'])==s + tt,pp=moment(T,t),moment(P,t) + rootlow,roothigh=map(F,a['raw_root_interval']) + ml=moment(T,1-rootlow)[0]-moment(P,1-rootlow)[1] + mh=moment(T,1-roothigh)[1]-moment(P,1-roothigh)[0] + assert ml>0>mh and s1-F(1,10**9) + assert ratios['gamma'][1]=1 and 20**64<21**63 + theta=F(63,64);assert 2*(20**1024)**64<=(145**1024)**63 + # Ambient m=145^1024; compiler eta=t*m^(t-1). + assert 1024*stheta**1000 + j=55099;step=g.denominator;h=step*j + assert g==F(1,700000000000) and h==a['compiler']['H']==38569300000000000 and j==a['compiler']['integer_test_exponent'] + assert (h+1)**1000<2**j and (step*(j-1)+1)**1000>=2**(j-1) + assert h>8*1024 + # Strict convex log ratio has one positive crossing; previous-grid failure + # plus success establishes minimality on this grid (not among programs). + uniform=k+6*g;assert s-uniform==g and uniform==F(a['compiler']['uniform_saving']) + p=dict(kappa=k,tested_saving=s,complex_uniform_saving=uniform,b=k+5*g,a=k+4*g,q=k+3*g,bit_saving=F(17,5000),epsilon=1-g,beta=1-3*g,r0=g/10,stop=g,layout=g,d=g) + for n,v in p.items():assert F(a['outer']['parameters'][n])==v + m,c,f=ledger(p) + for n,tab in [('margins',m),('strict_checks',c),('functional_checks',f)]:assert tab=={x:F(y) for x,y in a['outer'][n].items()} + assert len(c)==54 and len(f)==4 and min(c.values())>0 and min(f.values())>0 + assert 01-F(1,10**9) + controls['power128_does_not_fit_rounded_tail_envelope']=1/(1+128*reserve)+4*F(97,100)**128>1 + controls['preceding_grid_rejected']=(step*(j-1)+1)**1000>=2**(j-1) + assert all(controls[x] for x in controls) + scalar=158168;routes=(sum(P0.values())+2*408+688)*1000 + raw=18*10**7+15*1792+32*112*(len(controller['physical_events'])+sum(len(controller['boundaries'][x+'_program']) for x in ['left','right'])) + assert routes==4802000 and scalar+routes<10**7 and raw==181098496<10**9 + assert a['nonrecursive']=={'local_scalar':scalar,'local_routes':routes,'raw_scalar_upper':raw} + bit=a['ordinary_BIT'];ordinary=(1-F(bit['atom']))*F(bit['after_cover'])+F(bit['atom'])*F('.0000384599') + assert ordinary==F(bit['ordinary_saving']) and F(bit['atom'])>ordinary>F(bit['admitted'])>s + assert F(bit['atom'])<1-ordinary + result=dict(status='PASS_INDEPENDENT_EXACT_FINITE_COMPILER_AND_58_OUTER',command='final4610-independent-admission compiler stage',python=platform.python_version(),seconds=time.monotonic()-start,repository_pin='ec2780e8aeb1c88acaf5e9e470ef8c68e7fbbb6c',arithmetic_sha256=source.digest(source.raw(pkg+'ARITHMETIC.json')),source_sha256=sha256(Path(__file__).read_bytes()).hexdigest(),targets=dict(T),paid=dict(P),kappa=k,tested=s,ratios=ratios,eta=eta,normalized_paid_upper=normalized,completion_slack=1-normalized,uniform_saving=uniform,gap=g,H=h,j=j,root_signs=[ml,mh],nonrecursive=dict(scalar=scalar,routes=routes,raw_controller_scalar=raw),outer_strict_count=len(c),functional_count=len(f),minimum_outer_strict_slack=min(c.values()),outer_strict_slacks=c,functional_slacks=f,controls=controls,fresh_author_recorded_modules=[],reused_author_recorded_modules=[],objects_checked=False,Lean_run=False,scope='Fresh independent exact arithmetic from the independently derived invoice; no Lean/log acceptance inherited and no end-to-end multiplication theorem.') + return enc(result) diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/contributing-initial.txt b/research/owned-relation-independent-validation/engines/cost/frozen/contributing-initial.txt new file mode 100644 index 0000000000..fe54f23f19 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/contributing-initial.txt @@ -0,0 +1,101 @@ +# Contributing and independent review + +**For donated inference or an open-ended “contribute” task, start with +[autoresearch.md](autoresearch.md).** It provides weighted task suggestions, +semantic overlap checks and bounded stopping criteria. Follow explicit user +assignments instead of drawing a new task. The root [AGENTS.md](AGENTS.md) also +points agents there. Existing external donation prompts should use this +repository-owned guidance for current priorities. + +Before substantial research, check the +[discussion board](https://github.com/CrocSwap/integer-mult-bounds/discussions) +alongside open PRs. The [start-here post](https://github.com/CrocSwap/integer-mult-bounds/discussions/1163) +explains claims and updates; use [handoffs](https://github.com/CrocSwap/integer-mult-bounds/discussions/1166) +for concrete requests and [mechanism proposals](https://github.com/CrocSwap/integer-mult-bounds/discussions/1167) +for early ideas. Existing discussion claims are advisory, and findings remain +provisional until their evidence is checked. + +New research packages should include **Open next questions**, with relevance, +a feasible first step and blockers. Use the optional +[package generator and replay manifest](docs/research/research-package-guide.md) +to reduce packaging work. Keep frozen predecessor packages unchanged. A focused +finding or handoff is also a valid session outcome; a PR is not mandatory. + +The standard donation prompt in autoresearch.md authorizes routine Discussion +posts and opening focused PRs without repeated permission checks. Respect narrower +donor instructions. Optional workflow feedback belongs in the PR or the +[feedback discussion](https://github.com/CrocSwap/integer-mult-bounds/discussions/1200). + + +For maintainer queue work, start with the [delta-only intake procedure](docs/research/pr-intake.md) +and persistent scheduling cache. Do not repeat unchanged blocked reviews. + +Before reviewing an existing PR, consult the [central review ledger](docs/research/pr-ledger.md). +Record the reviewed commit and its evidence separately from publication and GitHub closure. +Recheck the current head before closing incorporated work, link its retained source and attribution, +and leave partial or changed submissions open with the remaining question recorded. Research notes +and verification tools can merit integration even when they do not improve the selected bound. + +Maintainers distinguish **archival intake** from **validated incorporation**. +New isolated research packages may be merged after source/integrity intake while +remaining `partially_reviewed` in the ledger, with the unverified obligations +preserved. Such a merge retains the contribution; it does not verify a theorem, +certify a new κ, or change the selected result. Shared-code changes and known +correctness objections remain in substantive review. See the +[archive policy and exact-head index](docs/research/research-archive-intake.md). + +This is a research draft. Corrections to the mathematics, implementation, +source attribution, and stated scope are welcome through issues or pull requests. + +For a mathematical issue, identify the exact proposition, source label, or +inequality; give a counterexample or the missing implication when possible; +and distinguish numerical validation from an algorithmic proof obligation. +For the current result, start with the +[current status](docs/research/current-status.md), +[selected record](certificates/selected-result.json), and the maintainer review +at that record's `review` path. +The selected record and review identify the actual supplier sources, +reproduction command, evidence and remaining assumptions. Earlier construction +notes are historical checkpoints, even when their text calls a result current. +The [original audit](docs/audit.md) describes the retained upstream assumptions. + +For a parameter improvement, supply exact rational choices, the full dependency +argument, and an updated patch against the pinned source. Explain whether the +change stays within the parameter ceiling or changes one of its hypotheses. + +Keep `upstream/`, frozen source archives and pinned evidence unchanged. When +changing generated artifacts, edit their generators and include the regenerated +certificates and patches in the same change. Run the checks affected by your +changes; do not launch every historical replay for an unrelated contribution. +Changes to the selected construction also need its applicable complete cold +replay: use the `reproduce` command in the selected record rather than copying a +target from a historical note. Source-bound reuse must preserve explicit coverage +and invalidation. Run artifact-regenerating suites in isolated worktrees. +The historical `make gen4-bank-verify` target checks the earlier generation, +not the selected frontier. The proof and bank scheduling supplements are supplied as Markdown; +historical PDF targets belong to their respective checkpoints. Review changes to +claims in the README and note together. Finite tests should address a mathematical +identity or a failure mode, rather than simply restating implementation details. + +**Regenerated artifacts and hashes.** When verification regenerates a compressed artifact, compare its decompressed payload (or a documented canonical representation of every proof-relevant field). Compression headers and streams can differ across Python, zlib and tar versions. Keep exact hashes for committed source archives and other immutable inputs; a regenerated container hash may be recorded with environment details but should not determine mathematical equality across environments. See the [community reproducibility audit](research/gzip-container-reproducibility/README.md) by Maxime Fleury, following Antoine Olivier’s independent replay findings. + +New contributions are under the repository's Apache-2.0 license. Retain source +attribution and disclose substantial AI assistance. Do not describe certificate +success as a formal verification of the full multiplication theorem. + +Before building on pending work, consult the [contribution-review index](docs/research/contribution-review.md), pin its sources, and preserve contributor attribution. + +Parallel approaches, small improvements, independent reproductions, review and +well-scoped negative results are welcome. Please identify predecessor work and +explain what your submission adds, even if a concurrent result has a stronger +headline. We preserve credit for useful contributions that are superseded or not +imported; see [CONTRIBUTORS.md](CONTRIBUTORS.md). Attribution corrections are +welcome too. State which proof obligations remain open rather than presenting +finite certificate checks as a complete theorem audit. + +The historical `integration/community` workflow used `make verify` for its +imported candidate chain; it is not the current selected cold replay. See +[the integration ledger](docs/research/community-integration.md) for that history +and [the batching guide](docs/research/batched-review.md) for the changed recursive +interface. Preserve the historical checkpoint tests. +Imported CC0 proof sources retain their source-specific license and notice. diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/controller-CONTROLLER.json b/research/owned-relation-independent-validation/engines/cost/frozen/controller-CONTROLLER.json new file mode 100644 index 0000000000..49a2f06758 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/controller-CONTROLLER.json @@ -0,0 +1,5224 @@ +{ + "ambient_rank": 145, + "boundaries": { + "left": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "left_program": [ + [ + "SWAP", + 30, + 31 + ], + [ + "SWAP", + 29, + 30 + ], + [ + "SWAP", + 28, + 30 + ], + [ + "SWAP", + 27, + 29 + ], + [ + "SWAP", + 26, + 28 + ], + [ + "SWAP", + 25, + 30 + ], + [ + "SWAP", + 24, + 25 + ], + [ + "SWAP", + 23, + 26 + ], + [ + "SWAP", + 22, + 30 + ], + [ + "SWAP", + 20, + 26 + ], + [ + "SWAP", + 19, + 22 + ], + [ + "SWAP", + 18, + 29 + ], + [ + "SWAP", + 17, + 23 + ], + [ + "SWAP", + 16, + 27 + ], + [ + "SCALE", + 15, + "-1" + ], + [ + "SWAP", + 15, + 31 + ], + [ + "ADD", + 12, + 14, + "1" + ], + [ + "ADD", + 10, + 14, + "-1" + ], + [ + "ADD", + 8, + 14, + "1" + ], + [ + "ADD", + 6, + 14, + "-1" + ], + [ + "ADD", + 4, + 14, + "1" + ], + [ + "ADD", + 2, + 14, + "-1" + ], + [ + "ADD", + 0, + 14, + "1" + ], + [ + "SWAP", + 14, + 15 + ], + [ + "ADD", + 31, + 13, + "1" + ], + [ + "SWAP", + 13, + 30 + ], + [ + "ADD", + 10, + 12, + "1" + ], + [ + "ADD", + 8, + 12, + "-1" + ], + [ + "ADD", + 6, + 12, + "1" + ], + [ + "ADD", + 4, + 12, + "-1" + ], + [ + "ADD", + 2, + 12, + "1" + ], + [ + "ADD", + 0, + 12, + "-1" + ], + [ + "SWAP", + 12, + 14 + ], + [ + "ADD", + 31, + 11, + "-1" + ], + [ + "ADD", + 30, + 11, + "-1" + ], + [ + "SCALE", + 11, + "-1" + ], + [ + "SWAP", + 11, + 29 + ], + [ + "ADD", + 8, + 10, + "1" + ], + [ + "ADD", + 6, + 10, + "-1" + ], + [ + "ADD", + 4, + 10, + "1" + ], + [ + "ADD", + 2, + 10, + "-1" + ], + [ + "ADD", + 0, + 10, + "1" + ], + [ + "SWAP", + 10, + 13 + ], + [ + "ADD", + 31, + 9, + "1" + ], + [ + "ADD", + 30, + 9, + "1" + ], + [ + "ADD", + 29, + 9, + "1" + ], + [ + "SWAP", + 9, + 28 + ], + [ + "ADD", + 6, + 8, + "1" + ], + [ + "ADD", + 4, + 8, + "-1" + ], + [ + "ADD", + 2, + 8, + "1" + ], + [ + "ADD", + 0, + 8, + "-1" + ], + [ + "SWAP", + 8, + 12 + ], + [ + "ADD", + 31, + 7, + "-1" + ], + [ + "ADD", + 30, + 7, + "-1" + ], + [ + "ADD", + 29, + 7, + "-1" + ], + [ + "ADD", + 28, + 7, + "-1" + ], + [ + "SCALE", + 7, + "-1" + ], + [ + "SWAP", + 7, + 27 + ], + [ + "ADD", + 4, + 6, + "1" + ], + [ + "ADD", + 2, + 6, + "-1" + ], + [ + "ADD", + 0, + 6, + "1" + ], + [ + "SWAP", + 6, + 11 + ], + [ + "ADD", + 31, + 5, + "1" + ], + [ + "ADD", + 30, + 5, + "1" + ], + [ + "ADD", + 29, + 5, + "1" + ], + [ + "ADD", + 28, + 5, + "1" + ], + [ + "ADD", + 27, + 5, + "1" + ], + [ + "SWAP", + 5, + 26 + ], + [ + "ADD", + 2, + 4, + "1" + ], + [ + "ADD", + 0, + 4, + "-1" + ], + [ + "SWAP", + 4, + 10 + ], + [ + "ADD", + 31, + 3, + "-1" + ], + [ + "ADD", + 30, + 3, + "-1" + ], + [ + "ADD", + 29, + 3, + "-1" + ], + [ + "ADD", + 28, + 3, + "-1" + ], + [ + "ADD", + 27, + 3, + "-1" + ], + [ + "ADD", + 26, + 3, + "-1" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "SWAP", + 3, + 25 + ], + [ + "ADD", + 0, + 2, + "1" + ], + [ + "SWAP", + 2, + 9 + ], + [ + "ADD", + 31, + 1, + "1" + ], + [ + "ADD", + 30, + 1, + "1" + ], + [ + "ADD", + 29, + 1, + "1" + ], + [ + "ADD", + 28, + 1, + "1" + ], + [ + "ADD", + 27, + 1, + "1" + ], + [ + "ADD", + 26, + 1, + "1" + ], + [ + "ADD", + 25, + 1, + "1" + ], + [ + "SWAP", + 1, + 24 + ], + [ + "SWAP", + 0, + 8 + ] + ], + "right": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "right_program": [ + [ + "ADD", + 30, + 31, + "-1" + ], + [ + "ADD", + 29, + 31, + "-1" + ], + [ + "ADD", + 28, + 31, + "-1" + ], + [ + "ADD", + 27, + 31, + "-1" + ], + [ + "SCALE", + 31, + "-1" + ], + [ + "ADD", + 31, + 30, + "-1" + ], + [ + "ADD", + 29, + 30, + "-1" + ], + [ + "ADD", + 28, + 30, + "-1" + ], + [ + "ADD", + 27, + 30, + "-1" + ], + [ + "ADD", + 31, + 29, + "-1" + ], + [ + "ADD", + 28, + 29, + "-1" + ], + [ + "ADD", + 27, + 29, + "-1" + ], + [ + "SCALE", + 29, + "-1" + ], + [ + "ADD", + 31, + 28, + "-1" + ], + [ + "ADD", + 27, + 28, + "-1" + ], + [ + "SWAP", + 28, + 29 + ], + [ + "ADD", + 31, + 27, + "-1" + ], + [ + "SCALE", + 27, + "-1" + ], + [ + "SWAP", + 27, + 29 + ], + [ + "ADD", + 31, + 26, + "1" + ], + [ + "SWAP", + 26, + 29 + ], + [ + "ADD", + 29, + 25, + "-1" + ], + [ + "ADD", + 24, + 25, + "-1" + ], + [ + "SWAP", + 25, + 28 + ], + [ + "ADD", + 28, + 24, + "1" + ], + [ + "SWAP", + 23, + 29 + ], + [ + "SWAP", + 22, + 25 + ], + [ + "SWAP", + 20, + 23 + ], + [ + "SWAP", + 19, + 25 + ], + [ + "SWAP", + 18, + 27 + ], + [ + "SWAP", + 17, + 29 + ], + [ + "SWAP", + 16, + 31 + ], + [ + "ADD", + 14, + 15, + "-1" + ], + [ + "SWAP", + 15, + 30 + ], + [ + "ADD", + 13, + 14, + "-1" + ], + [ + "SWAP", + 14, + 30 + ], + [ + "ADD", + 12, + 13, + "-1" + ], + [ + "SWAP", + 13, + 22 + ], + [ + "ADD", + 11, + 12, + "-1" + ], + [ + "SWAP", + 12, + 30 + ], + [ + "ADD", + 10, + 11, + "-1" + ], + [ + "SWAP", + 11, + 18 + ], + [ + "ADD", + 9, + 10, + "-1" + ], + [ + "SWAP", + 10, + 22 + ], + [ + "ADD", + 8, + 9, + "-1" + ], + [ + "SWAP", + 9, + 26 + ], + [ + "SWAP", + 8, + 30 + ], + [ + "SWAP", + 7, + 16 + ], + [ + "SWAP", + 6, + 18 + ], + [ + "SWAP", + 5, + 20 + ], + [ + "SWAP", + 4, + 22 + ], + [ + "SWAP", + 3, + 24 + ], + [ + "SWAP", + 2, + 26 + ], + [ + "SWAP", + 1, + 28 + ], + [ + "SWAP", + 0, + 30 + ] + ] + }, + "diagonal": [ + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ] + ], + "invoice": { + "main": { + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224, + "145": 224 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 46446, + "2": 12834, + "3": 4032, + "4": 1836, + "5": 360, + "8": 144, + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + }, + "paid_calls": 69012, + "productive_fields": 10928, + "rank_surplus": 752, + "raw_scalar_record_bound": 1000000000, + "targets": { + "5": 504, + "6": 324, + "7": 1008, + "8": 1674, + "9": 3834, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 224, + "145": 224 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1680, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 224 + } + }, + "keep_mask": 35047648968703, + "kind": "complex", + "pairs": 16, + "physical_events": [ + [ + "LOCAL", + 0, + 0, + false + ], + [ + "LOCAL", + 1, + 0, + true + ], + [ + "IDLE", + 1, + [ + 0, + 1 + ] + ], + [ + "ADD", + 0, + 2, + 1 + ], + [ + "ADD", + 3, + 1, + -1 + ], + [ + "QUERY_SHEAR", + 2, + 0, + false + ], + [ + "ADD", + 0, + 2, + -1 + ], + [ + "ADD", + 3, + 1, + 1 + ], + [ + "LOCAL", + 3, + 1, + true + ], + [ + "IDLE", + 2, + [ + 0, + 1, + 3 + ] + ], + [ + "ADD", + 2, + 4, + 1 + ], + [ + "ADD", + 5, + 3, + -1 + ], + [ + "QUERY_SHEAR", + 4, + 1, + false + ], + [ + "ADD", + 2, + 4, + -1 + ], + [ + "ADD", + 5, + 3, + 1 + ], + [ + "LOCAL", + 5, + 2, + true + ], + [ + "IDLE", + 3, + [ + 0, + 1, + 3, + 5 + ] + ], + [ + "ADD", + 4, + 6, + 1 + ], + [ + "ADD", + 7, + 5, + -1 + ], + [ + "QUERY_SHEAR", + 6, + 2, + false + ], + [ + "ADD", + 4, + 6, + -1 + ], + [ + "ADD", + 7, + 5, + 1 + ], + [ + "LOCAL", + 7, + 3, + true + ], + [ + "IDLE", + 4, + [ + 0, + 1, + 3, + 5, + 7 + ] + ], + [ + "ADD", + 6, + 8, + 1 + ], + [ + "ADD", + 9, + 7, + -1 + ], + [ + "QUERY_SHEAR", + 8, + 3, + false + ], + [ + "ADD", + 6, + 8, + -1 + ], + [ + "ADD", + 9, + 7, + 1 + ], + [ + "LOCAL", + 9, + 4, + true + ], + [ + "IDLE", + 5, + [ + 0, + 1, + 3, + 5, + 7, + 9 + ] + ], + [ + "ADD", + 8, + 10, + 1 + ], + [ + "ADD", + 11, + 9, + -1 + ], + [ + "QUERY_SHEAR", + 10, + 4, + false + ], + [ + "ADD", + 8, + 10, + -1 + ], + [ + "ADD", + 11, + 9, + 1 + ], + [ + "LOCAL", + 11, + 5, + true + ], + [ + "IDLE", + 6, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11 + ] + ], + [ + "ADD", + 10, + 12, + 1 + ], + [ + "ADD", + 13, + 11, + -1 + ], + [ + "QUERY_SHEAR", + 12, + 5, + false + ], + [ + "ADD", + 10, + 12, + -1 + ], + [ + "ADD", + 13, + 11, + 1 + ], + [ + "LOCAL", + 13, + 6, + true + ], + [ + "IDLE", + 7, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13 + ] + ], + [ + "ADD", + 12, + 14, + 1 + ], + [ + "ADD", + 15, + 13, + -1 + ], + [ + "QUERY_SHEAR", + 14, + 6, + false + ], + [ + "ADD", + 12, + 14, + -1 + ], + [ + "ADD", + 15, + 13, + 1 + ], + [ + "LOCAL", + 15, + 7, + true + ], + [ + "ADD", + 14, + 16, + 1 + ], + [ + "ADD", + 17, + 15, + -1 + ], + [ + "QUERY_SHEAR", + 16, + 7, + false + ], + [ + "ADD", + 14, + 16, + -1 + ], + [ + "ADD", + 17, + 15, + 1 + ], + [ + "LOCAL", + 17, + 8, + true + ], + [ + "ADD", + 16, + 18, + 1 + ], + [ + "ADD", + 19, + 17, + -1 + ], + [ + "QUERY_SHEAR", + 18, + 8, + false + ], + [ + "ADD", + 16, + 18, + -1 + ], + [ + "ADD", + 19, + 17, + 1 + ], + [ + "LOCAL", + 19, + 9, + true + ], + [ + "ADD", + 18, + 20, + 1 + ], + [ + "ADD", + 21, + 19, + -1 + ], + [ + "QUERY_SHEAR", + 20, + 9, + false + ], + [ + "ADD", + 18, + 20, + -1 + ], + [ + "ADD", + 21, + 19, + 1 + ], + [ + "LOCAL", + 21, + 10, + true + ], + [ + "ADD", + 20, + 22, + 1 + ], + [ + "ADD", + 23, + 21, + -1 + ], + [ + "QUERY_SHEAR", + 22, + 10, + false + ], + [ + "ADD", + 20, + 22, + -1 + ], + [ + "ADD", + 23, + 21, + 1 + ], + [ + "LOCAL", + 23, + 11, + true + ], + [ + "ADD", + 22, + 24, + 1 + ], + [ + "ADD", + 25, + 23, + -1 + ], + [ + "QUERY_SHEAR", + 24, + 11, + false + ], + [ + "ADD", + 22, + 24, + -1 + ], + [ + "ADD", + 25, + 23, + 1 + ], + [ + "LOCAL", + 25, + 12, + true + ], + [ + "ADD", + 24, + 26, + 1 + ], + [ + "ADD", + 27, + 25, + -1 + ], + [ + "QUERY_SHEAR", + 26, + 12, + false + ], + [ + "ADD", + 24, + 26, + -1 + ], + [ + "ADD", + 27, + 25, + 1 + ], + [ + "LOCAL", + 27, + 13, + true + ], + [ + "ADD", + 26, + 28, + 1 + ], + [ + "ADD", + 29, + 27, + -1 + ], + [ + "QUERY_SHEAR", + 28, + 13, + false + ], + [ + "ADD", + 26, + 28, + -1 + ], + [ + "ADD", + 29, + 27, + 1 + ], + [ + "LOCAL", + 29, + 14, + true + ], + [ + "ADD", + 28, + 30, + 1 + ], + [ + "ADD", + 31, + 29, + -1 + ], + [ + "QUERY_SHEAR", + 30, + 14, + false + ], + [ + "ADD", + 28, + 30, + -1 + ], + [ + "ADD", + 31, + 29, + 1 + ], + [ + "LOCAL", + 31, + 15, + true + ], + [ + "LOCAL", + 32, + 15, + false + ], + [ + "IDLE", + 7, + [ + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 8, + [ + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 9, + [ + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 10, + [ + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 11, + [ + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 12, + [ + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 13, + [ + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 14, + [ + 31, + 32 + ] + ], + [ + "ADD", + 30, + 28, + 1 + ], + [ + "ADD", + 29, + 31, + -1 + ], + [ + "ADD", + 28, + 26, + 1 + ], + [ + "ADD", + 27, + 29, + -1 + ], + [ + "ADD", + 26, + 24, + 1 + ], + [ + "ADD", + 25, + 27, + -1 + ], + [ + "ADD", + 24, + 22, + 1 + ], + [ + "ADD", + 23, + 25, + -1 + ], + [ + "ADD", + 22, + 20, + 1 + ], + [ + "ADD", + 21, + 23, + -1 + ], + [ + "ADD", + 20, + 18, + 1 + ], + [ + "ADD", + 19, + 21, + -1 + ], + [ + "ADD", + 18, + 16, + 1 + ], + [ + "ADD", + 17, + 19, + -1 + ], + [ + "ADD", + 16, + 14, + 1 + ], + [ + "ADD", + 15, + 17, + -1 + ], + [ + "ADD", + 14, + 12, + 1 + ], + [ + "ADD", + 13, + 15, + -1 + ], + [ + "ADD", + 12, + 10, + 1 + ], + [ + "ADD", + 11, + 13, + -1 + ], + [ + "ADD", + 10, + 8, + 1 + ], + [ + "ADD", + 9, + 11, + -1 + ], + [ + "ADD", + 8, + 6, + 1 + ], + [ + "ADD", + 7, + 9, + -1 + ], + [ + "ADD", + 6, + 4, + 1 + ], + [ + "ADD", + 5, + 7, + -1 + ], + [ + "ADD", + 4, + 2, + 1 + ], + [ + "ADD", + 3, + 5, + -1 + ], + [ + "ADD", + 2, + 0, + 1 + ], + [ + "ADD", + 1, + 3, + -1 + ], + [ + "SIGNED_SWAP", + 0, + 1 + ], + [ + "SIGNED_SWAP", + 2, + 3 + ], + [ + "SIGNED_SWAP", + 4, + 5 + ], + [ + "SIGNED_SWAP", + 6, + 7 + ], + [ + "SIGNED_SWAP", + 8, + 9 + ], + [ + "SIGNED_SWAP", + 10, + 11 + ], + [ + "SIGNED_SWAP", + 12, + 13 + ], + [ + "SIGNED_SWAP", + 14, + 15 + ], + [ + "SIGNED_SWAP", + 16, + 17 + ], + [ + "SIGNED_SWAP", + 18, + 19 + ], + [ + "SIGNED_SWAP", + 20, + 21 + ], + [ + "SIGNED_SWAP", + 22, + 23 + ], + [ + "SIGNED_SWAP", + 24, + 25 + ], + [ + "SIGNED_SWAP", + 26, + 27 + ], + [ + "SIGNED_SWAP", + 28, + 29 + ], + [ + "SIGNED_SWAP", + 30, + 31 + ] + ], + "prefix_pairs": 7 +} diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/mixed_target_probe.py b/research/owned-relation-independent-validation/engines/cost/frozen/mixed_target_probe.py new file mode 100644 index 0000000000..4fc05ab081 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/mixed_target_probe.py @@ -0,0 +1,291 @@ +#!/usr/bin/env python3 +"""Exact tariffs for productive helpers with heterogeneous target sizes. + +This is a conditional recursion-contract probe, not a new kappa claim. The +native helper adapters, main controller closure, scalar/precision charges, +and the mixed-target outer theorem remain separate obligations. + +Apache-2.0. Substantial OpenAI assistance. The original pruned native profile +and helper inventory come from the preserved kappa-function-composition work. +Mixed-target balance follows Jacob Alan Sussman's PR4268 proposal; this file +does not reprove or admit its all-size or integer-multiplication transfer. +The rational elementary-function enclosure follows the independently retained +productive_helper_forest.py recovery certificate, with fresh source identity. +""" +from collections import Counter +from fractions import Fraction as Q +from functools import lru_cache +from hashlib import sha256 +from pathlib import Path +import argparse +import json +import math +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +NATIVE = Counter({1:2453, 2:716, 3:224, 4:74, 5:48}) +HELPERS = Counter({5:28, 6:18, 7:56, 8:93, 9:213}) +OLD_PAIRS = [(56,9,7),(56,7,9),(18,9,6),(18,6,9), + (16,9,5),(16,5,9),(44,8,8)] +OLD_MIDDLE = [(93,8),(56,7),(18,6),(28,5),(29,0)] + +def need(ok, message): + if not ok: + raise AssertionError(message) + +@lru_cache(None) +def log_interval(r): + def odd_series(x): + z = (x-1)/(x+1) + n = 80 + low = 2*sum((z**(2*j+1)/(2*j+1) for j in range(n)), Q(0)) + high = low+2*z**(2*n+1)/((2*n+1)*(1-z*z)) + return low, high + exponent = r.bit_length()-1 + a,b = odd_series(Q(2)) + c,d = odd_series(Q(r,2**exponent)) + return exponent*a+c, exponent*b+d + +def exp_interval(x): + need(0 <= x < 1, 'Enclosure range') + term = total = Q(1) + n = 48 + for j in range(1,n+1): + term *= x/j + total += term + following = term*x/(n+1) + return total, total+following/(1-x/(n+2)) + +@lru_cache(None) +def h_interval(r,c): + if r in (0,1): + return Q(r),Q(r) + a,b = log_interval(r) + low,_ = exp_interval(c*a) + _,high = exp_interval(c*b) + return Q(r)/high,Q(r)/low + +def moment(profile,c): + low=high=Q(0) + for r,n in profile.items(): + a,b=h_interval(r,c) + low += n*(a if n >= 0 else b) + high += n*(b if n >= 0 else a) + return low,high + +def show(bounds): + scale=10**35 + low,high=bounds + a=low.numerator*scale//low.denominator + b=-((-high.numerator*scale)//high.denominator) + def fixed(n): + sign='-' if n<0 else '' + s=str(abs(n)).rjust(36,'0') + return sign+s[:-35]+'.'+s[-35:] + return {'lower':fixed(a),'upper':fixed(b)} + +def split_rank(r,maximum): + """Least concave tariff partition with positive integers <= maximum.""" + need(maximum>=1 and r>=0, 'Legal split') + q,remainder=divmod(r,maximum) + result=Counter() + if q: + result[maximum]+=q + if remainder: + result[remainder]+=1 + return result + +def split_profile(profile,maximum): + result=Counter() + for r,n in profile.items(): + for child,count in split_rank(r,maximum).items(): + result[child]+=n*count + return result + +def add_scaled(target,source,multiple=1): + for key,value in source.items(): + target[key]+=multiple*value + +def base_case(p,minimum,pairs=None,middle=None): + """Expand all role inventories; one fresh global field per unhosted role.""" + need(p in (1,2), 'Only reconstructed p1 and p2 schedules are in scope') + need(2<=minimum<=41, 'Finite minimum-target menu') + calls=2*p+1 + main_fields=224*p + main_rank=16*p+9 + inventories=[Counter(HELPERS) for _ in range(calls)] + paid=split_profile(NATIVE,minimum-1) + paid=Counter({r:calls*n for r,n in paid.items()}) + paid[1]+=8*calls # same-width H completion, never waived + targets=Counter({main_rank:main_fields}) + if p==1: + need(pairs is None and middle is None, 'p1 has no original idle bins') + else: + pairs=pairs if pairs is not None else [(224,0,0)] + middle=middle if middle is not None else [(224,0)] + need(sum(n for n,a,b in pairs)==224, 'Each pair window has 224 bins') + need(sum(n for n,a in middle)==224, 'Middle window has 224 bins') + for stages in [(0,1),(3,4)]: + for n,a,b in pairs: + need(a+b<=16 and a in (0,5,6,7,8,9) and b in (0,5,6,7,8,9), 'Pair capacities') + for stage,r in zip(stages,(a,b)): + if r: + inventories[stage][r]-=n + add_scaled(paid,split_rank(16-a-b,minimum-1),n) + for n,r in middle: + need(r in (0,5,6,7,8), 'Middle capacity') + if r: + inventories[2][r]-=n + add_scaled(paid,split_rank(8-r,minimum-1),n) + global_roles=Counter() + for inventory in inventories: + need(all(n>=0 for n in inventory.values()), 'No helper role used twice') + global_roles.update(inventory) + for r,n in global_roles.items(): + if not n: + continue + target=max(r,minimum) + targets[target]+=n + add_scaled(paid,split_rank(target-r,minimum-1),n) + paid=+paid + targets=+targets + need(max(paid)0] + # Middle bins are independent single slots; choose positive-gain roles first. + candidates=sorted(((sp(8)-sp(8-r)-value(r),r) for r in (5,6,7,8)),reverse=True) + middle=[] + left=224 + for gain,r in candidates: + if gain>1e-12: + n=min(HELPERS[r],left) + if n: + middle.append((n,r)) + left-=n + if left: + middle.append((left,0)) + return pairs,middle,{'status':int(out.status),'message':out.message,'not_an_exact_optimality_claim':True} + +def run(discover=False): + candidates=[] + for p in (1,2): + for minimum in range(2,26): + candidates.append(base_case(p,minimum)) + candidates.append(base_case(2,9,OLD_PAIRS,OLD_MIDDLE)) + discovery=[] + if discover: + for c in (.001745,.004): + for minimum in range(5,18): + pairs,middle,meta=discover_pair_patterns(minimum,c) + case=base_case(2,minimum,pairs,middle) + case['discovery_target']=str(c) + case['solver']=meta + discovery.append(case) + candidates.extend(discovery) + best={} + for p in (1,2): + for text in ('0.001745','0.004'): + c=Q(text) + rows=[case for case in candidates if case['p']==p] + ranked=sorted(rows,key=lambda case:-numerical_value(case['signed'],float(c))) + winner=ranked[0] + # Certify that this displayed winner beats all numerically distinct + # profiles in the finite scanned menu, not all possible schedules. + win=moment(winner['signed'],c) + for case in ranked[1:]: + if dict(case['signed'])!=dict(winner['signed']): + need(win[0]>moment(case['signed'],c)[1], 'Exact finite-menu ordering') + best[f'p{p}_{text}']=serialize_case(winner) + controls={} + wrong=base_case(1,6) + wrong['targets'][6]+=1 + controls['unearned_output_credit_rejected']=(sum(r*n for r,n in wrong['targets'].items())-wrong['rank_bill']!=wrong['rank_margin']) + controls['rank5_child_with_job5_rejected']=not(5<5) + need(all(controls.values()), 'Corruption controls') + return {'schema':'productive-helper-mixed-target-tariff/1', + 'status':'PASS_CONDITIONAL_EXACT_ACCOUNTING', + 'source_sha256':sha256(Path(__file__).read_bytes()).hexdigest(), + 'native_profile':dict(NATIVE),'helper_inventory':dict(HELPERS), + 'assumed_recursive_rule':'sum_paid n_r r^(1-C) < sum_targets W_k k^(1-C); max_paid_rank < min_target_rank', + 'best_in_finite_menu':best, + 'fixed_p2_minimum9':serialize_case(base_case(2,9,OLD_PAIRS,OLD_MIDDLE)), + 'discovery_candidates':[serialize_case(c) for c in discovery], + 'controls':controls, + 'not_proved':['native whole-helper adapters and arbitrary-input block diagonal contract', + 'correct main controller and all its heads/caches/cleanup', + 'literal eligibility of any displayed head-cut grant', + 'mixed-target all-size recursion in this native model', + 'finite-precision integer-multiplication transfer and scalar/stock costs'], + 'new_kappa':False} + +def main(): + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('--discover',action='store_true') + parser.add_argument('--output',type=Path,default=HERE/'MIXED-TARGET-PROBE.json') + args=parser.parse_args() + result=run(args.discover) + args.output.write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + print(json.dumps({'status':result['status'],'best':{k:v['targets_at_C'][k.split('_',1)[1]]['after_native_completion_before_main_closure'] for k,v in result['best_in_finite_menu'].items()}},sort_keys=True)) + +if __name__=='__main__': + main() diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/native.py b/research/owned-relation-independent-validation/engines/cost/frozen/native.py new file mode 100644 index 0000000000..b8249ed7ba --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/native.py @@ -0,0 +1,299 @@ +"""One prepared helper removes two paid jobs in the PR4610 backward word. + +Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0. +The source word is by Cao Yifan. The row convention and scalar allowance +follow the credited native work of Cinna Davis and zxv. +""" +from collections import Counter +from copy import deepcopy +from fractions import Fraction as Q +from hashlib import sha1, sha256 +from pathlib import Path +import gzip +import importlib.util +import json +import sys + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +SOURCE = 'research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz' +PHASE = 'research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz' +PAYLOAD = 'cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd' +RELATION = {230: 1, 324: -1, 326: 1, 328: 1, 333: -1} +OLD_PAID = {1: 2201, 2: 412, 3: 510, 4: 127, 5: 40, 8: 8} +NEW_PAID = dict(OLD_PAID) +NEW_PAID[1] -= 1 +NEW_PAID[8] -= 1 +OLD_HELPERS = {4: 28, 7: 7, 8: 47, 9: 326} + + +def need(ok, why): + if not ok: + raise ValueError(why) + + +def read(path): + data = path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data) + + +def encode(x): + if isinstance(x, Q): + return str(x) + if isinstance(x, dict): + return {str(k): encode(v) for k, v in x.items()} + if isinstance(x, (list, tuple)): + return [encode(v) for v in x] + return x + + +def load(relative, name): + spec = importlib.util.spec_from_file_location(name, ROOT / relative) + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) + return module + + +def authenticate(): + pins = read(HERE / 'SOURCES.json') + for row in pins['files']: + if row['usage'] != 'input': + continue + p = ROOT + for part in Path(row['path']).parts: + p /= part + need(not p.is_symlink(), 'No source aliases') + raw = p.read_bytes() + need(sha256(raw).hexdigest() == row['sha256'], 'Changed source: ' + row['path']) + need(sha1(b'blob ' + str(len(raw)).encode() + b'\0' + raw).hexdigest() == row['git_blob'], 'Source Git blob') + need(sha256(gzip.decompress((ROOT / SOURCE).read_bytes())).hexdigest() == PAYLOAD, 'Exact source payload') + return pins + + +def span(basis): + out = {0} + for vector in basis: + need(isinstance(vector, int) and 0 <= vector < 512, 'Binary frame coordinate') + out |= {v ^ vector for v in tuple(out)} + need(len(out) == 2 ** len(basis), 'Independent frame basis') + return out + + +def add(dst, src, q): + for k, v in tuple(src.items()): + value = dst.get(k, Q(0)) + q * v + if value: + dst[k] = value + else: + dst.pop(k, None) + + +def allowance(g): + if g[0] in ('clear', 'copy'): + return 2 + q = Q(*g[3:]) if g[0] == 'add' else Q(*g[2:]) + n, d = abs(q.numerator), q.denominator + need(n > 0 and d & (d - 1) == 0, 'Nonzero dyadic scalar') + if g[0] == 'scale': + need(n & (n - 1) == 0, 'Dyadic unit SCALE') + return 2 * (abs(n.bit_length() - d.bit_length()) + int(q < 0)) + need(g[0] == 'add', 'Known scalar operation') + return 2 * (3 + n.bit_length() - 1 + n.bit_count() + d.bit_length() - 1) + + +def construct(source): + c = source['canonical'] + old = source['programs']['backward'] + need(old[11205] == ['climb', 'warp_retimed', 92, 310, 254, 4], 'Snapshot source event') + need(old[11332] == ['center', 0, 0, 254, 8], 'Center source event') + need(old[15584] == ['climb', 'warp_retimed', 92, 254, 1, 1], 'Zero source event') + need(all(c['start'][h] == 0 and c['final'][h] == 1 for h in RELATION), 'Five cold full-ended helpers') + word = [['scalar', ['clear', ['L', 230]], 0]] + word += [['scalar', ['add', ['L', 230], ['L', h], -q, 1], 0] + for h, q in RELATION.items() if h != 230] + for i, event in enumerate(old): + if i == 11332: + word += [['scalar', ['clear', ['C', 0]], 254], + ['scalar', ['copy', ['C', 0], ['C', 1]], 254], + ['scalar', ['clear', ['C', 1]], 254]] + elif i == 15584: + word.append(['zero_retag', ['L', 92], 254, 1]) + else: + word.append(deepcopy(event)) + if i == 11205: + word += [['scalar', ['clear', ['C', 1]], 254], + ['scalar', ['copy', ['C', 1], ['L', 92]], 254]] + word.append(['scalar', ['clear', ['L', 230]], 1]) + physical = deepcopy(c) + physical.pop('local_profile') + return {'schema': 'owned-helper-relation-word/1', 'canonical': physical, + 'paid_profiles': {'forward': OLD_PAID, 'backward': NEW_PAID}, + 'owned': {'forward': [['C', 0]], 'backward': [['C', 0], ['C', 1], ['L', 230]]}, + 'programs': {'forward': deepcopy(source['programs']['forward']), 'backward': word}} + + +def replay(c, program, backward, specialized): + """Run every event on all independent entry columns and exact frames.""" + owned = {('C', 0)} | ({('C', 1), ('L', 230)} if specialized else set()) + roles = {('L', i) for i in range(632)} | owned + rows = {r: {(r, ()): Q(1)} for r in roles} + frames = {('L', i): f for i, f in enumerate(c['start'])} + frames.update({r: None for r in owned if r[0] == 'C'}) + spaces = [span(b) for b in c['frames']] + paid = Counter() + cost, max_l1, denominator, zero_count = 0, Q(1), 1, 0 + for e in program: + kind, touched = e[0], None + if kind == 'scalar': + g, frame = e[1:] + dst = tuple(g[1]); touched = dst + need(dst in rows and 0 <= frame < len(spaces), 'Declared scalar destination and frame') + cost += allowance(g) + if g[0] == 'clear': + need(dst in owned, 'Only owned fields can be erased') + rows[dst] = {}; frames[dst] = frame + else: + need(frames[dst] == frame, 'Exact scalar destination frame') + if g[0] in ('add', 'copy'): + src = tuple(g[2]) + need(src in rows and frames[src] == frame and dst != src, 'Exact scalar source frame') + if g[0] == 'copy': + need(dst in owned and not rows[dst], 'COPY into cleared owned storage') + rows[dst] = dict(rows[src]) + else: + add(rows[dst], rows[src], Q(g[3], g[4])) + else: + need(g[0] == 'scale', 'Known scalar operation') + rows[dst] = {k: Q(g[2], g[3]) * v for k, v in rows[dst].items()} + elif kind == 'warp': + _, role, op, old, new = e + dst = tuple(role); touched = dst + need(frames[dst] == old and 1 <= abs(op) <= len(c['warps']), 'Exact warp input') + symbol = (1 if op > 0 else -1) * (abs(op) + (10**6 if backward else 0)) + rows[dst] = {(r, w[1:] if w and w[0] == -symbol else (symbol,) + w): q + for (r, w), q in rows[dst].items()} + frames[dst] = new + elif kind in ('climb', 'center'): + if kind == 'climb': + _, _, i, old, new, rank = e + dst = ('L', i) + need(spaces[old] < spaces[new], 'Ascending paid climb') + else: + _, i, old, new, rank = e + dst = ('C', i) + need(spaces[old] < spaces[new] or spaces[new] < spaces[old], 'Nested paid center') + need(frames[dst] == old and rank == abs(len(c['frames'][new]) - len(c['frames'][old])), 'Exact paid rank and frame') + frames[dst] = new; paid[rank] += 1 + elif kind == 'zero_retag': + _, role, old, new = e + dst = tuple(role) + need(specialized and backward and dst == ('L', 92), 'Declared zero identity') + need(frames[dst] == old and not rows[dst], 'Zero identity requires an identically zero full row') + need((old, new) == (254, 1), 'Declared zero frame change') + frames[dst] = new; zero_count += 1 + else: + need(kind in ('phase', 'adapter'), 'Known inert source marker') + if touched is not None: + max_l1 = max(max_l1, sum(map(abs, rows[touched].values()), Q(0))) + denominator = max(denominator, max((q.denominator for q in rows[touched].values()), default=1)) + need([frames['L', i] for i in range(632)] == c['final'], 'Every final native frame') + for i in range(632): + r = ('L', i) + if r in owned: + continue + expected = {(r, ()): Q(1)} + if i < 112 if backward else 112 <= i < 224: + expected[(('L', i + 112 if backward else i - 112), ())] = Q(-1 if backward else 1) + need(rows[r] == expected, 'Every independent main/helper endpoint: ' + str(i)) + need(all(not rows[r] for r in owned), 'Every owned entry column is erased at return') + need(zero_count == int(specialized), 'Exactly one checked zero identity') + helpers = Counter() + for i in range(224, 632): + if ('L', i) in owned: + continue + a, b = c['start'][i], c['final'][i] + need(spaces[a] < spaces[b], 'Strict independent productive helper') + helpers[len(c['frames'][b]) - len(c['frames'][a])] += 1 + return {'paid': dict(sorted(paid.items())), 'helpers': dict(sorted(helpers.items())), + 'independent_persistent_columns': 631 if specialized else 632, + 'independent_owned_entry_columns': len(owned), 'owned_outputs_zero': True, + 'real_scalar_allowance': cost, 'max_formal_prefix_l1': str(max_l1), + 'max_denominator': denominator, 'zero_identities': zero_count} + + +def independent_source_identities(source): + """Use the predecessor row engine on the unrestricted original word.""" + v = load('research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py', 'owned_relation_source_rows') + rows = {('L', i): v.identity(('L', i)) for i in range(632)} + rows['C', 0] = v.identity(('C', 0)) + delta = {(('L', i), ()): Q(q) for i, q in RELATION.items()} + saved = None + for index, e in enumerate(source['programs']['backward']): + if e[0] == 'scalar': + g = e[1]; dst = tuple(g[1]) + if g[0] == 'clear': rows[dst] = {} + elif g[0] == 'copy': rows[dst] = dict(rows[tuple(g[2])]) + elif g[0] == 'scale': rows[dst] = {k: Q(g[2], g[3]) * a for k, a in rows[dst].items()} + else: v.add(rows[dst], rows[tuple(g[2])], Q(g[3], g[4])) + elif e[0] == 'warp': + dst = tuple(e[1]); rows[dst] = v.warp(rows[dst], e[2], True) + if index == 11205: saved = dict(rows['L', 92]) + if index == 11332: + diff = dict(rows['C', 0]); v.add(diff, saved, -1) + need(diff == {k: q / 4 for k, q in delta.items()}, 'Independent exact center minus snapshot = Delta/4') + if index == 15584: + need(rows['L', 92] == {k: -q / 4 for k, q in delta.items()}, 'Independent exact zero-site row = -Delta/4') + need(all(rows['L', i] == v.expected(('L', i), [], True, False) for i in range(632)), 'Independent unrestricted source endpoints') + return {'source_event_indices_are_zero_based': True, 'snapshot_after': 11205, + 'center_replaced': 11332, 'zero_identity_at': 15584, + 'snapshot_terms_before_substitution': len(saved), 'copy_coefficient': '1', + 'center_minus_snapshot': 'Delta/4', 'zero_site_row': '-Delta/4', 'relation': RELATION} + + +def phase_inheritance(source, candidate): + receipt = read(ROOT / PHASE) + need(receipt['status'] == 'PASS_JOINT_HELPER_MAPS_ALL_ACTUAL_ABSOLUTE_PHASES' and + receipt['actual_word_canonical_sha256'] == PAYLOAD, 'Authenticated source absolute-phase receipt') + physical = deepcopy(source['canonical']); physical.pop('local_profile') + need(candidate['canonical'] == physical, 'Every frame, native map and main adapter unchanged') + for direction, program in candidate['programs'].items(): + old = source['programs'][direction] + for kind in ('warp', 'adapter', 'phase'): + need([e for e in program if e[0] == kind] == [e for e in old if e[0] == kind], 'Exact inherited ' + kind + ' sequence') + old_paid = Counter(tuple(e) for e in old if e[0] in ('climb', 'center')) + new_paid = Counter(tuple(e) for e in program if e[0] in ('climb', 'center')) + expected = Counter() if direction == 'forward' else Counter(tuple(old[i]) for i in (11332, 15584)) + need(old_paid - new_paid == expected and not new_paid - old_paid, 'Only the two proved jobs are removed') + return {'new_gaussian_operators': 0, 'new_native_maps': 0, + 'all_retained_paid_events_and_warps_from_source': True, + 'absolute_phase_receipt_reused': PHASE, + 'source_amplitudes_and_phase_lowering_freshly_replayed': False, + 'new_operations': 'Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.'} + + +def controls(c, candidate): + controls = {} + base = candidate['programs']['backward'] + variants = {} + bad = deepcopy(base); bad[1][1][3] *= -1; variants['wrong_relation_sign'] = bad + variants['missing_owned_input_clear'] = deepcopy(base[1:]) + bad = deepcopy(base) + next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 1]])[1][2] = ['L', 63] + variants['wrong_snapshot_source'] = bad + bad = deepcopy(base); next(e for e in bad if e[0] == 'zero_retag')[2] = 0 + variants['wrong_zero_input_frame'] = bad + bad = deepcopy(base); next(e for e in bad if e[0] == 'climb')[5] += 1 + variants['under_or_overstated_paid_rank'] = bad + bad = deepcopy(base) + next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 0]])[2] = 0 + variants['wrong_copy_gauge'] = bad + variants['uncleared_owned_output'] = deepcopy(base[:-1]) + for name, program in variants.items(): + try: + replay(c, program, True, True) + except ValueError as err: + controls[name] = str(err) + else: + raise ValueError('Control accepted: ' + name) + return controls diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/price.py b/research/owned-relation-independent-validation/engines/cost/frozen/price.py new file mode 100644 index 0000000000..6077adf74c --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/price.py @@ -0,0 +1,196 @@ +"""Complete p16 bill and finite compiler for one owned helper relation. + +The interval and compiler proof follows Cao Yifan's PR4610 pricing, Cinna +Davis's PR4470 controller, zxv's completion and logarithmic majorant, and +Jacob Alan Sussman's mixed-target recursion. Apache-2.0. +Ali Romman, with substantial OpenAI Codex assistance. +""" +from collections import Counter +from fractions import Fraction as Q +from native import ROOT, read, load, need, encode, OLD_PAID, OLD_HELPERS + +KAPPA = Q('.00302235') +TESTED = Q('.00302236') +PREVIOUS = Q('.0030217758') +OLD_ROOT_UPPER = Q('.00302177587078') + + +def controller(): + """Check the literal p16 word and both rational boundary programs.""" + word = read(ROOT / 'research/joint-helper-lattice/CONTROLLER.json') + need((word['kind'], word['pairs'], word['prefix_pairs'], word['ambient_rank']) == ('complex', 16, 7, 145), 'Source p16/a7 controller') + zero = (0,) * 34 + def plus(dst, src, q): + for k, v in src.items(): + value = dst.get(k, Q(0)) + q * v + if value: dst[k] = value + else: dst.pop(k, None) + def shifted(row, term, sign=1): + return [{tuple(a + b for a, b in zip(k, term)): sign * v for k, v in cell.items()} for cell in row] + for side in ('left', 'right'): + matrix = [[Q(i == j) for j in range(32)] for i in range(32)] + for e in word['boundaries'][side + '_program']: + if e[0] == 'SWAP': matrix[e[1]], matrix[e[2]] = matrix[e[2]], matrix[e[1]] + elif e[0] == 'SCALE': matrix[e[1]] = [Q(e[2]) * x for x in matrix[e[1]]] + else: + need(e[0] == 'ADD', 'Boundary scalar opcode') + matrix[e[1]] = [x + Q(e[3]) * y for x, y in zip(matrix[e[1]], matrix[e[2]])] + need(matrix == [[Q(x) for x in row] for row in word['boundaries'][side]], 'Exact scalar boundary program') + rows = [[{zero: Q(x)} if Q(x) else {} for x in row] for row in word['boundaries']['right']] + for e in word['physical_events']: + if e[0] in ('LOCAL', 'QUERY_SHEAR'): + _, stage, pair, back = e + x, y = 2 * pair, 2 * pair + 1 + if back: x, y = y, x + term = (1 if back else -1,) + (0,) * 33 + for dst, src in zip(rows[y], shifted(rows[x], term)): + plus(dst, src, Q(-1 if back else 1)) + if e[0] == 'LOCAL': + term = (0,) + tuple(int(s == stage) for s in range(33)) + for r in (x, y): rows[r] = shifted(rows[r], term) + elif e[0] == 'IDLE': + term = (0,) + tuple(int(s in e[2]) for s in range(33)) + for r in (2 * e[1], 2 * e[1] + 1): rows[r] = shifted(rows[r], term) + elif e[0] == 'ADD': + for dst, src in zip(rows[e[1]], rows[e[2]]): plus(dst, src, Q(e[3])) + else: + need(e[0] in ('SWAP', 'SIGNED_SWAP'), 'Controller physical opcode') + rows[e[1]], rows[e[2]] = rows[e[2]], shifted(rows[e[1]], zero, -1 if e[0] == 'SIGNED_SWAP' else 1) + out = [[{} for _ in range(32)] for _ in range(32)] + for i, row in enumerate(word['boundaries']['left']): + for k, q in enumerate(row): + if Q(q): + for j in range(32): plus(out[i][j], rows[k][j], Q(q)) + expected = [[{tuple(word['diagonal'][i]): Q(1)} if i == j else {} for j in range(32)] for i in range(32)] + need(out == expected, 'All p16 Laurent coefficients, central signs and boundary factors') + return word + + +def assemble(native, word): + T, P = Counter(), Counter() + orientations = Counter(); thin = 0 + for e in word['physical_events']: + if e[0] == 'LOCAL': + direction = 'backward' if e[3] else 'forward' + orientations[direction] += 1 + T.update(native[direction]['helpers']); P.update(native[direction]['paid']) + elif e[0] == 'QUERY_SHEAR': thin += 1; P[1] += 112 + elif e[0] == 'IDLE': P[8 * len(e[2])] += 224 + main = Counter() + for term in word['diagonal']: + need(term[0] in (-1, 1) and all(x in (0, 1) for x in term[1:]), 'Whole Gaussian main target') + main[1 + 8 * sum(term[1:])] += 112 + T.update(main) + need(orientations == {'backward': 16, 'forward': 2} and thin == 15, 'Every actual call orientation') + # This second census uses the source invoice and the two local deltas. + check_T = Counter({int(r): n for r, n in word['invoice']['main'].items()}) + check_T.update({r: 18 * n for r, n in OLD_HELPERS.items()}); check_T[9] -= 16 + check_P = Counter({int(r): n for r, n in word['invoice']['whole_idle'].items()}) + check_P.update({r: 18 * n for r, n in OLD_PAID.items()}); check_P[1] += 1680 - 16; check_P[8] -= 16 + need(T == check_T and P == check_P, 'Independent full invoice substitution') + need(sum(T.values()) == 10912 and sum(P.values()) == 64372, 'Complete productive and paid counts') + need(sum(r * n for r, n in T.items()) - sum(r * n for r, n in P.items()) == 752, 'Unchanged complete rank surplus') + return T, P + + +def run(native): + word = controller(); T, P = assemble(native, word) + prior = read(ROOT / 'research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json') + need(Q(prior['kappa']) == PREVIOUS and Q(prior['raw_root_interval'][1]) == OLD_ROOT_UPPER, 'Pinned prior conditional bound and raw crossing') + prior_T = Counter({int(r): n for r, n in prior['targets'].items()}) + prior_P = Counter({int(r): n for r, n in prior['paid'].items()}) + prior_T[9] -= 16; prior_P[1] -= 16; prior_P[8] -= 16 + need(T == prior_T and P == prior_P, 'Complete delta from the final PR4610 bill') + E = load('research/higher-moment-strictification/verify.py', 'owned_relation_intervals') + other = load('research/kappa-rebuild/architecture/mixed_target_probe.py', 'owned_relation_second_intervals') + def margin(c): + t, p = E.moment(T, 1 - c), E.moment(P, 1 - c) + return t[0] - p[1], t[1] - p[0] + need(margin(OLD_ROOT_UPPER)[0] > 0, 'Changed invoice beats the prior raw root upper endpoint') + lo, hi, grid = 0, 10**12, 10**14 + while hi - lo > 1: + mid = (lo + hi) // 2 + if margin(Q(mid, grid))[0] > 0: lo = mid + else: hi = mid + root_low, root_high = Q(lo, grid), Q(hi, grid) + need(margin(root_low)[0] > 0 and margin(root_high)[1] < 0, 'Strict rational root enclosure') + need(PREVIOUS < KAPPA < TESTED < root_low, 'New bound and explicit compiler headroom') + # The complete signed profile decreases on [0, .05], and stays negative + # on [.05, 1]. This proves a fixed-profile ceiling, not a circuit ceiling. + signed = {r: T[r] - P[r] for r in T.keys() | P.keys()} + derivative, upper = None, None + for i in range(16): + l, r = Q(i, 320), Q(i + 1, 320); low = Q(0) + for rank, n in signed.items(): + term = E.mul(E.power(rank, 1 - r if n > 0 else 1 - l), E.log_bounds(rank)) + low += n * term[0 if n > 0 else 1] + derivative = low if derivative is None else min(derivative, low) + for i in range(128): + l, r = Q(1, 20) + Q(19 * i, 2560), Q(1, 20) + Q(19 * (i + 1), 2560) + value = sum(n * E.power(rank, 1 - l if n > 0 else 1 - r)[1 if n > 0 else 0] for rank, n in signed.items()) + upper = value if upper is None else max(upper, value) + need(derivative > 0 and upper < 0, 'Fixed-profile ceiling on all 0 < kappa < 1') + t, u, v, c, b = 1 - TESTED, Q(1, 5), 1024, 20, 21 + target, paid = E.moment(T, t), E.moment(P, t) + tl, th = other.moment(T, TESTED); pl, ph = other.moment(P, TESTED) + need(tl > ph and max(tl, target[0]) <= min(th, target[1]) and max(pl, paid[0]) <= min(ph, paid[1]), 'Two exact interval engines agree') + alpha = E.divide(paid, target) + gamma = E.divide(E.moment(P, t + u), E.mul(E.power(c, u), target)) + delta = E.divide((Q(sum(T.values()) * b),) * 2, E.mul(E.power(c, TESTED), target)) + reserve = Q(1, 10**9); g = d = Q(97, 100) + need(alpha[1] < 1 - reserve and gamma[1] < g and delta[1] < d, 'Original and completion tails charged') + need(g**128 < Q(1, 16) and d**128 < Q(1, 16), 'Two strict tail decay blocks') + normalized = 1 / (1 + v * reserve) + Q(4, 2**32) + need(normalized < 1 and c**64 < b**63, 'Paid completion, splitting and rounding') + theta, power = Q(63, 64), 1000 + eta = E.scale(E.power(145, -v * TESTED), t) + need(2 * (20**v)**64 <= (145**v)**63 and eta[0] > theta**power, 'Shifted exits and complement capacity') + need(E.power(145, v * TESTED)[1] < 2**power, 'Compiler initial range') + gap = (TESTED - KAPPA) / 7; need(gap.numerator == 1, 'Finite integer grid') + step = gap.denominator + def wins(j): return (step * j + 1)**power < 2**j + left, right = 1, 2 + while not wins(right): left, right = right, 2 * right + while right - left > 1: + mid = (left + right) // 2 + if wins(mid): right = mid + else: left = mid + height = step * right + need(height > 8 * v and wins(right) and not wins(right - 1), 'Finite uniform-rank threshold') + local_scalar = max(x['real_scalar_allowance'] for x in native.values()) + # The old route allowance is retained. Charge two additional owned field + # lifetimes at two routes each, even though L230 uses an existing slot. + routes = (max(sum(x['paid'].values()) for x in native.values()) + 2 * 408 + 688 + 4) * 1000 + need(local_scalar + routes < 10**7, 'All new preparation, COPY, CLEAR and fixed routes fit') + scalar_upper = 18 * 10**7 + 15 * 1792 + 32 * 112 * (len(word['physical_events']) + sum(len(word['boundaries'][k + '_program']) for k in ('left', 'right'))) + need(scalar_upper < 10**9, 'Complete raw nonrecursive bound') + bit = read(ROOT / 'research/query-thinned-controllers/RESULT.json')['ordinary_BIT'] + atom = Q(bit['atom']); ordinary = (1 - atom) * Q(bit['after_cover']) + atom * Q('.0000384599'); admitted = Q(bit['admitted']) + need(atom == Q('.004') and atom > ordinary > admitted > TESTED and atom < 1 - ordinary, 'Retained stronger BIT admission and stock') + L = load('research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py', 'owned_relation_outer') + params = {'kappa': KAPPA, 'tested_saving': TESTED, 'complex_uniform_saving': KAPPA + 6 * gap, + 'b': KAPPA + 5 * gap, 'a': KAPPA + 4 * gap, 'q': KAPPA + 3 * gap, 'bit_saving': admitted, + 'epsilon': 1 - gap, 'beta': 1 - 3 * gap, 'r0': gap / 10, 'stop': gap, 'layout': gap, 'd': gap} + outer = L.ledger(params); outer['functional_checks']['actual_new_BIT_stock_sublinear'] = params['beta'] * (1 - atom) + need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 4, 'Complete outer predicate inventory') + need(all(x > 0 for key in ('strict_checks', 'functional_checks') for x in outer[key].values()), 'Every outer inequality is strict') + controls = {} + for name, patch in [('old_BIT', {'bit_saving': Q('.0027')}), ('closed_uniform', {'complex_uniform_saving': params['b']}), ('unfunded_endpoint', {'kappa': TESTED}), ('closed_epsilon', {'epsilon': Q(1)})]: + bad = L.ledger(dict(params, **patch)); failed = [k for k, x in bad['strict_checks'].items() if x <= 0] + need(failed, 'Reject outer patch ' + name); controls[name] = failed + bad_native = {d: dict(x) for d, x in native.items()} + bad_native['backward']['helpers'] = OLD_HELPERS + try: assemble(bad_native, word) + except ValueError: controls['unearned_helper_credit'] = 'Rejected by the independent complete census' + else: raise ValueError('Unowned helper credit was accepted') + return encode({'kappa': KAPPA, 'kappa_decimal': '.00302235', 'gain_over_PR4610': KAPPA - PREVIOUS, + 'raw_root_interval': [root_low, root_high], 'raw_headroom': [root_low - KAPPA, root_high - KAPPA], + 'margin_at_previous_kappa': E.display(margin(PREVIOUS)), + 'margin_at_previous_root_upper': E.display(margin(OLD_ROOT_UPPER)), + 'fixed_profile_ceiling': {'decreasing_through': Q(1, 20), 'derivative_upper': E.display((-derivative,) * 2), 'remaining_interval_moment_upper': E.display((upper,) * 2)}, + 'targets': T, 'paid': P, 'productive_fields': sum(T.values()), 'paid_calls': sum(P.values()), 'rank_mass_surplus': 752, + 'full_backward': 16, 'full_forward': 2, 'query_shears': 15, + 'strictification': {'tested': TESTED, 'power': v, 'cutoff': c, 'floor': b, 'tail_offset': u, 'reserve': reserve, 'alpha': E.display(alpha), 'gamma': E.display(gamma), 'delta': E.display(delta), 'normalized_paid_upper': normalized}, + 'compiler': {'theta': theta, 'logarithm_power': power, 'eta': E.display(eta), 'gap': gap, 'uniform_saving': params['complex_uniform_saving'], 'H': height, 'N': '2^' + str(height), 'integer_test_exponent': right, 'word_materialized': False}, + 'nonrecursive': {'local_scalar': local_scalar, 'local_routes': routes, 'raw_scalar_upper': scalar_upper, 'raw_budget': 10**9, 'additional_private_slots': 1, 'owned_slots_backward': 3}, + 'ordinary_BIT': bit, 'outer': outer, 'negative_controls': controls}) diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/priorities-pinned.txt b/research/owned-relation-independent-validation/engines/cost/frozen/priorities-pinned.txt new file mode 100644 index 0000000000..b4ece97a60 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/priorities-pinned.txt @@ -0,0 +1,164 @@ +# Current research priorities + +This is the changing diagnosis and allocation; [autoresearch.md](../../autoresearch.md) +links the standing session procedure. Refresh this file and the task catalogue +at each research checkpoint. + +**Priority revision 7 — October 20, 2026**, assessed against main +`9200177938843d92957bbfe6f1fdbe88768d8cc5`. +**Selection refresh — October 23, 2026:** the +[selected conditional result](../../certificates/selected-result.json) is now +**κ = 0.0030217758 (#4610, independently audited in #5241)**. Read the +[changed-construction review](pr-intake-evidence/pr4610/PROOF-REVIEW.md) and +[contributor map](community-native4610-contributors.md). Cao Yifan's native/helper +changes retain the PR4470 controller and productive profile; Chris R / Clear1nsight +supplies the complete independent admission package. The same five framework +assumptions remain. This small improvement does not change the mechanism-search +allocation. Admission of this exact #4610 witness is complete; source-sensitive +follow-ups must use its final word and compiler parameters. +Use `python3 -B scripts/research_selected_baseline.py` for source-bound orientation; +the older `research_baseline.py` uses a historical balanced-transfer schema. +The revision-7 allocation below is retained pending a separate strategic review. +Its old-inventory ceilings, stale admission tasks and a/(1+a) conversion are +not constraints on this mixed-target selection. Check the selected assumptions +and latest handoffs before adopting an old card. + +**Keep broad mechanism exploration; update the exact missing work.** Roughly +60% of the portfolio remains on bit mechanisms, complex mechanisms and recursive +interfaces. The latest packages justify fresher assignments, not a measured +claim that any track has a higher success rate. Use the +[family record](research-family-status.md#revision-7-evidence-and-assignments) +for source pins, attribution, remaining obligations and stop rules. Check live +[handoffs](https://github.com/CrocSwap/integer-mult-bounds/discussions/1166) +before selecting a card. + +| Card | Current evidence, author-checked unless stated otherwise | Next bounded decision | +|---|---|---| +| `uniform-transfer-audit` | #4100 proposed all-size construction | Audit **one** quantified implication at its actual caller: CRT total repair, native/free-algebra lift, precision/conditioning, or fixed-tape cost. Independent acceptance is absent. | +| `supplier-boundary-audit` | #4088 mixed four-provider local construction | Rebind the ordinary/outer admission engine to all four providers and dispatch, preserving every predicate and rejection control. The full mixed engine has not been rerun. | +| `joint-query-controller` | #4166 actual QQ16 caller installation | Compare the complete matched parent park/restore and external-call protocols, retaining all later calls; or change the actual demand to remove paid work. The native-component profile loses. | +| `r437-carrier-integration` | #4067 paid two-window carrier; #4147 reverse coefficient | Close one pooled compiler/request, physical caller, or precision/stock obligation. Do not rederive the covered coefficient. | +| `p104-side-correction` | #4133/#4136/#4140/#4153/#4154 scoped slot, commutation, encoding, chart and fiber-seam objections | Name a changed producer/consumer premise, then test literal action, dirty restoration and the fully charged boundary. Static flags alone do not supply it. | +| `independent-moment` | #4088 changed ledger; #4091 proposed fixed-inventory ceiling; #4067 paid exchange | Independently bind a changed mechanism to its bill or check the scoped pooled dual. More digits of the same root are not additional mechanism coverage. | +| `formal-interface-lemma` | #3807 gate-operand and #3857 endpoint formalizations | Target an uncovered interface statement. Audit the proposed compact-switch contract before a formalization campaign. | + +**Separate admission from proof audit.** #4088 needs finite/compiler integration; +#4100 claims to discharge all-size premises. Those are different tasks, and neither +is closed by checking the other's numerical root. Partition work by proposition, +caller and domain, with one canonical thread and exact source pins. A short session +can produce an acceptance coverage map, a counterexample or a single proved lemma. +A complete ordinary/outer replay or Lean build needs a separate resource budget; +no heavy run is part of default orientation. + +**Pause repetitive searches within a fixed invoice.** #4091 proposes a sharp +pooled ceiling for the fixed THREE/FOUR words and inventory. It is pinned to an +earlier #4088 revision: verify local-word, capacity and stock equivalence before +applying it to the later 1090-call fill. Its pooled witness is not a chronological +implementation. The `selected-packing` card now starts with this scope/headroom +check; any tiny residual search is explicitly bounded and optional. Changed words +or interfaces require a fresh model, not the old ceiling. + +Likewise, #3998/#4019 and #4112/#4152 cover scalar A2 contractions and related +audits. The `scalar-to-moment` card requires an actual removed paid transition, +a legal replacement itinerary and the complete cost delta. Stop if only scalar +ADD counts change; that may have a separate benefit, but does not justify a larger +κ-oriented scan of the same domain. + +**Local contributions remain welcome.** A checked partial identity, interface +lemma or scoped obstruction can be valuable without a complete supplier. Before +expanding a family, update its full producer/consumer ledger: proved costs, +constructive upper bounds, unknowns, and why the consumer does not repay the gain. +Unknown costs are not zero. Use the [five-point expansion gate](research-family-status.md#contribution-acceptance-and-family-expansion-are-different-gates). +This is an evidence checkpoint, not an approval queue or an extra reporting task. + +The selected stock coefficients remain a targeted audit obligation; cutoff +arithmetic does not provide them. For census and exporter work, check successor +corrections and their exact scope before repeating a tiny example. Independent +verification must name missing coverage. The reviewed #1995/#2013 fixed-word +frame bounds, #2017 fixed-model C=40 result and #1974 bounded census remain scoped +predecessors, not universal barriers. The maintainer's older product checkpoint +also remains local-only evidence as labelled in the family record. + +**Retained selected-profile diagnosis (revision 3; scoped arithmetic independently replayed for #1240 and #1264).** This paragraph and its lever table concern the frozen selected profile, not the changed #4088 words or every possible supplier. On the binding complex side, a ≈ D/E: + +- **D is small.** Each call has about 99.6 live families. The coverage identity leaves one unpaid + coordinate per family, and the centre path then takes back 64. Only about 35.6 of 7,232 paid + coordinates per call remain unpaid. +- **E comes from small children.** The effective child rank is about 3.9, and rank-1 children are + about half of the recursive cost. + +[The packing ceiling](../../research/complex-local-word-ceiling/README.md) caps every hosting, owner or +idle repacking of the selected word at **+0.87%** (κ < 0.001687203). The open-claim census in #1264 +finds no covered claim able to pass κ ≈ 0.0016873 by packing. Its leading claims use paid local profiles with +*lower* relaxation caps than the selected profile; this does not compare attainable packing optima. + +A target-scale gain must change the structure. Ideal one-at-a-time budgets (`levers.py`): + +| Lever | Ideal primitive-saving ceiling multiplier | +|---|---:| +| Centre path free | 2.80× | +| Centre path shared by two calls | 1.90× | +| Rank-16 local children | 2.31× | +| Two unpaid coordinates per family | 3.77× | +| Centre free and rank-16 combined | 6.5× (κ cap ≈ 0.0109) | + +These are favorable relaxations, not expected gains. Screen any changed local profile with +`ceiling.ceiling()` before building a network when its coverage law and halving guard apply. +For a changed interface outside those hypotheses, state the replacement model and derive its own +fully charged optimistic moment bound; do not force it into the incumbent calculator. + +For a supplier with width `m`, role count `W`, and `n_r` children of rank `r`, +price the **whole completed construction**, including its additional charges: + +\[ +\frac1W\sum_r n_r(r/m)^{1-a}<1. +\] + +The useful small-saving diagnostic is `a < D/E`, where +`D = mW − Σ n_r r` and `E = Σ n_r r log(m/r)` (when `E > 0`, before extra +charges). The exact moment is the acceptance test. Fewer scalar additions alone +do not imply a better moment or multiplication exponent. + +Under the retained limiting balanced transfer `κ = a/(1+a)`, the ambitious +`κ > .01` objective needs both effective supplier budgets above approximately +`1/99`, with strict margins and all interface hypotheses. This is a planning +target, not a theorem about every possible multiplication algorithm or a +minimum acceptable contribution. Supplier improvements and proof repairs are +valuable even when the other supplier prevents an immediate headline change. + +The helper allocates effort as follows. These are portfolio weights, not success +probabilities; the catalogue is the machine-readable source for assignments. +Revision 7 keeps the track weights: current evidence supports fresher tasks and +stronger expansion decisions, not a measured reason to reallocate the portfolio. +Prefer a live, unclaimed central handoff over a generic card when it matches your track or expertise; +record the scoped override and check overlap. + +| Track | Share | Useful outcome | +|---|---:|---| +| Bit mechanisms (`bit-mechanisms`) | 20% | A changed decoder/frame contract with a full paid budget | +| Complex mechanisms (`complex-mechanisms`) | 20% | A completed P104 correction or changed decoder with a favorable full bill | +| Recursive interfaces (`recursive-interfaces`) | 20% | A changed joint-query controller, centre path or coverage law with real eliminated work | +| Adversarial audit (`adversarial-audit`) | 15% | A selected stock envelope or another specific missing implication/counterexample | +| Independent verification/formalization (`independent-verification`) | 10% | A separately implemented check or scoped formal lemma | +| Verifier engineering (`verifier-engineering`) | 8% | Faster, reproducible checks with unchanged coverage | +| Consolidation (`consolidation`) | 5% | Evidence-backed overlap, attribution or navigation repair | +| Incumbent optimization (`incumbent-optimization`) | 2% | A genuinely new, fully priced improvement, reported against its packing cap | + +Before reopening a negative result, name the hypothesis you change. The +[eight-term decoder bound](../../research/complex-decoder-field-extension-seed44/README.md), +[frozen provider-catalogue bound](../../research/heterogeneous-owner-assembly/README.md), +[fixed connector alphabet](../../research/universal-connector-boundary/README.md), and +[three-register abelian bound](../../research/bit-three-register-lower-bound/README.md) +have restricted scopes. Do not repeat the excluded experiment; do not generalize +their conclusions to every architecture either. Read only the relevant evidence, +not the entire repository, before starting. + +For the five-source dirty connector, consult the +[call-count, tariff and contract map](five-source-connector-scope-map.md) +before repricing the original alphabet. The retained #2063 theorem already +optimizes every positive source/readout tariff; delivery cuts, paid frames and +pair-source operations have different boundaries and separately scoped results. + +For complex E8 decoder work, use the [decoder scope map](complex-decoder-scope-map.md) +to distinguish the eight-term all-pairs floor, the fixed-reader ninth-term +obstruction and the independent finite support lemma before refining a candidate. diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/query-thinned-RESULT.json b/research/owned-relation-independent-validation/engines/cost/frozen/query-thinned-RESULT.json new file mode 100644 index 0000000000..e0695152c9 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/query-thinned-RESULT.json @@ -0,0 +1,356 @@ +{ + "bit_invoice": { + "main": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 25479, + "14": 444, + "2": 24156, + "21": 444, + "28": 444, + "3": 1422, + "35": 444, + "4": 792, + "42": 444, + "49": 444, + "5": 1836, + "56": 444, + "6": 198, + "63": 222, + "7": 342 + }, + "paid_calls": 57555, + "productive_fields": 11454, + "rank_surplus": 753, + "raw_scalar_record_bound": 1000000000, + "targets": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222, + "8": 7902 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1665, + "whole_idle": { + "14": 444, + "21": 444, + "28": 444, + "35": 444, + "42": 444, + "49": 444, + "56": 444, + "63": 222 + } + }, + "bit_strictification": { + "alpha": { + "lower": "0.999995735238059506641600561767", + "upper": "0.999995735238059506641600561768" + }, + "compiler_H0": 3755884544, + "cutoff_base": 17, + "delta": { + "lower": "0.949707924144871179442776557218", + "upper": "0.949707924144871179442776557219" + }, + "gamma": { + "lower": "0.957429821066420278606254392110", + "upper": "0.957429821066420278606254392111" + }, + "normalized_surplus_lower": "68719461047/16845935476736", + "tail_exponent": "1/5", + "target_floor_base": 18, + "tensor_power": 1024, + "tested_saving": "173/50000", + "uniform_H1": 25986965159937, + "uniform_N": "2^25986965159937", + "uniform_saving": "3459/1000000", + "winning_word_materialized": false + }, + "complex_invoice": { + "main": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 448 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 49045, + "16": 448, + "2": 13547, + "24": 448, + "3": 4256, + "32": 448, + "4": 1938, + "40": 448, + "48": 448, + "5": 380, + "56": 448, + "64": 448, + "72": 448, + "8": 152 + }, + "paid_calls": 72902, + "productive_fields": 11560, + "rank_surplus": 800, + "raw_scalar_record_bound": 1000000000, + "targets": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "5": 532, + "57": 448, + "6": 342, + "65": 448, + "7": 1064, + "73": 448, + "8": 1767, + "9": 4047 + }, + "thick_calls": 19, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 34 + ], + "thin_queries": 1792, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 448 + } + }, + "complex_strictification": { + "alpha": { + "lower": "0.999999952117240859760145478345", + "upper": "0.999999952117240859760145478346" + }, + "compiler_H0": 75415467350, + "cutoff_base": 20, + "delta": { + "lower": "0.941649713484853845388929204840", + "upper": "0.941649713484853845388929204841" + }, + "gamma": { + "lower": "0.967466409565147920980822933859", + "upper": "0.967466409565147920980822933860" + }, + "normalized_surplus_lower": "8589700209/251666829934592", + "tail_exponent": "1/5", + "target_floor_base": 21, + "tensor_power": 1024, + "tested_saving": "29603/10000000", + "uniform_H1": 10418370291022217, + "uniform_N": "2^10418370291022217", + "uniform_saving": "103609/35000000", + "winning_word_materialized": false + }, + "kappa": "37/12500", + "minimum_outer_margin_minus_kappa": "629378373/4900000000000000", + "native": { + "binary_charts": 111, + "complex_contacts_and_inverses": 896, + "owned_stream_restored_zero": true, + "thin_paid_rank_per_port": 1, + "thin_productive_credit": 0 + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform_gap": [ + "new_complex_uniform_saving_above_b" + ], + "missing_layout": [ + "positive_layout_slack" + ], + "old_BIT_cap": [ + "actual_bit_above_effective" + ], + "unfunded_kappa": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "old_atom_rejected": true, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "17429997759/17500000000", + "fixed_halo_explicit_metadata_branch": "1347500003/17500000", + "new_BIT_row_stock_sublinear_in_active_group": "69789991027/70000000000", + "new_semantic_group_guard": "9/70000000" + }, + "margins": { + "boundary_algebraic_matrix": "14504839378373/4900000000000000", + "fused_gaussian": "14504838135119/4900000000000000", + "global_coordinate_router": "51803/17500000", + "group_bit_router": "3626262033773/1225000000000000", + "group_scans": "34999997/35000000", + "main_transform": "14504629378373/4900000000000000", + "microbox_face_corrections": "1347500003/17500000", + "polynomial_products": "69999997/70000000", + "sparse_union_movement": "2005129839378373/4900000000000000" + }, + "parameters": { + "a": "51803/17500000", + "b": "41443/14000000", + "beta": "69999991/70000000", + "bit_saving": "17/5000", + "cap_xi": "4455129629378373/4900000000000000", + "complex_uniform_saving": "103609/35000000", + "d": "3/70000000", + "epsilon": "69999997/70000000", + "kappa": "37/12500", + "lambda_": "19940797/20000000", + "lambda_prime": "69792791/70000000", + "layout": "3/70000000", + "q": "207209/70000000", + "r0": "3/700000000", + "stop": "3/70000000", + "tested_saving": "29603/10000000" + }, + "strict_checks": { + "actual_bit_above_effective": "7697/17500000", + "actual_logarithmic_gamma_guard": "3/70000000", + "actual_logarithmic_group_guard": "444870685621627/2450000000000000", + "alpha_logarithm_absorption": "3/700000000", + "boundary_algebraic_matrix_above_kappa": "839378373/4900000000000000", + "cap_above_band": "2005129629378373/4900000000000000", + "cap_below_cell": "444870160621627/4900000000000000", + "cap_below_phase_cell_power": "5344870370621627/4900000000000000", + "complex_above_effective": "3/70000000", + "complex_below_one_over_32": "396057/14000000", + "complex_endpoint": "3/35000000", + "epsilon_below_one": "3/70000000", + "epsilon_positive": "69999997/70000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "838135119/4900000000000000", + "gaussian_above_main": "104378373/2450000000000000", + "global_coordinate_router_above_kappa": "3/17500000", + "global_gamma_power_slack": "27/700000000", + "group_below_dimension": "3/35000000", + "group_bit_router_above_kappa": "262033773/1225000000000000", + "group_gauge_power_slack": "444870675121627/2450000000000000", + "group_key_fits_record": "3/35000000", + "group_positive": "69999991/70000000", + "group_scans_above_kappa": "34896397/35000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "614514790400418148631/500000000000000000000000", + "lambda_above_internal": "3/140000000", + "lambda_above_sigma": "9/140000000", + "lambda_above_tau": "3/140000000", + "lambda_prime_above_lambda": "3/140000000", + "lambda_prime_above_leaf": "83875671/980000000000000", + "leaf_saving_above_effective": "41875671/980000000000000", + "main_transform_above_kappa": "629378373/4900000000000000", + "membership_arithmetic_fits_record": "3/70000000", + "microbox_face_corrections_above_kappa": "1347448203/17500000", + "microbox_halo_volume": "5530000009/70000000", + "new_complex_uniform_saving_above_b": "3/70000000", + "new_semantic_guard_with_C1_one": "3/70000000", + "polynomial_products_above_kappa": "69792797/70000000", + "positive_layout_slack": "3/70000000", + "q_below_effective": "3/70000000", + "q_below_internal": "3/70000000", + "q_below_leaf": "83875671/980000000000000", + "q_positive": "207209/70000000", + "short_record_fallback": "13958557/14000000", + "source_axis_superpolynomial": "3/70000000", + "sparse_union_movement_above_kappa": "1990625839378373/4900000000000000", + "stop_below_one": "69999997/70000000", + "stop_positive": "3/70000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "9/70000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "9/70000000", + "union_tag_work_per_visit_fits_record": "9/70000000" + } + }, + "relative_gain_over_p7": "27353/268647", + "schema": "query-thinned-productive-controllers/1", + "scope": "Conditional native construction; all-column, erasure, whole-job matching, fixed-tape, precision, analytic, prime and exact-recovery premises retained. No unconditional theorem or selected promotion.", + "source_inputs_authenticated": 17, + "status": "PASS_CONDITIONAL_QUERY_THINNED_KAPPA_00296" +} diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/selected-initial.txt b/research/owned-relation-independent-validation/engines/cost/frozen/selected-initial.txt new file mode 100644 index 0000000000..b288ae4403 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/selected-initial.txt @@ -0,0 +1,92 @@ +{ + "status": "Selected maintainer-reviewed conditional PR4610 construction, with independent PR5241 admission evidence and explicit inherited foundation reuse", + "kappa": "15108879/5000000000", + "decimal": "0.0030217758", + "source_prs": [ + 4610, + 5241, + 4470, + 4447, + 4441, + 4440, + 4416, + 4433, + 4359, + 4268, + 3945, + 4085, + 2979, + 4076, + 4088, + 1673, + 1758, + 1786, + 23, + 555, + 589 + ], + "source_manifest": "certificates/frontier4610-source.json", + "certificate": "certificates/frontier4610/CLAIM.json", + "certificate_sha256": "c48376a8365a4c7b67adb368bafa128bede4cd5589a41fa276f96a350d45606c", + "proof": "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "proof_supplements": { + "notes/batched-bit-rows.tex": "ef72c0ead19373cbc19c8a3aacb44dd0f75353ee5f4d055f775a986a4878022c", + "notes/batched-complex-rows.tex": "64c70926a8705874f1c9b42a2f703e42cad4e90f927f544458cfdf729540236c", + "notes/compact-control-movement.tex": "b963c3d2f4e1b7059aa289bb4b4ac89b688920bcf42f5b20d7698cdef0132cc6", + "notes/general-clifford-frames.tex": "c9bb9655b594583c6b4bab8cb485233f1d1e588f83858cf1e4c3530cee8fed54", + "notes/stopped-product-complex.tex": "4738089103a4b263b3b0ef458f5ef35519c696f1ea871ae79e508d3720f5870a", + "notes/three-stage-cover-bit.tex": "47123a756f823c83a0d48cca2bf5add6472cd88410b13aed345e70c8834fb511", + "notes/three-stage-cover-rows.tex": "6ad97a5cd7d6aecf978a81226e1c2763d37840caca130c61f3bf5c4ac111c5c8", + "references/semantic-bulk/pr23/semantic-bulk-17-note.tex": "652242b05174bb776ffc6165af170df9c8cf220dbd0fc26c24d778f320dbabc8", + "research/e8-bit-carrier-skeleton/code/bit/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "research/e8-bit-carrier-skeleton/code/nine/geometry.py": "36eeda3184bd009e89462b65c8725d10860c444f8da8f1f87e5f6e50120011ca", + "research/e8-bit-p111-tuned/code/gen_p3.py": "438b83f10d70ceca7cf78049420204b7de2dc61682f913c50a62596106ad84cd", + "research/e8-bit-p111-tuned/code/xcheck_p.py": "af3decc877e27c00001cf56f50c6c09566e8e101297ab34c7860aed96a06d80e", + "research/e8-bit-p111-tuned/tune/EXPECTED.json": "b9f0e5ca038abe837b0007c8fe006f366a6f02009244ac57705a8a200e2301f4", + "research/e8-bit-p111-tuned/tune/apply.py": "806ae4cb2648e4f05dcf56bd089891fd3ba33a6ee5fe76d3329e322c6770c1a1", + "research/e8-bit-p111-tuned/tune/wlib.py": "a37fdf3cdf5f62945c2a90193401c0e9edc9dd3cda8d8cb36a3b9c329ebe4dbc", + "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "docs/research/pr-intake-evidence/pr4359/PROOF-REVIEW.md": "7d67bb814285f7634029fbd378c6457156545f0b38858cc1c6ec34b68cd9d162", + "docs/research/pr-intake-evidence/pr4470/PROOF-REVIEW.md": "5c111dd56beb53dc44ab727d96e1af03aaf50f3023d4342e2b0a89ede6cf585b", + "docs/research/pr-intake-evidence/pr4416/PROOF-REVIEW.md": "2c2bbe6fe1bab44778192118f27e59a0d23dbe02c47aa8a42845093f1ce46f49", + "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md": "b84f833e3072cbab372fbda2ece98fbc031c15e590cf73003ddea35a5222e148", + "research/final4610-independent-admission/PROOF.md": "e573cbbe6fa5481c0533e773de404e10f4dc7907b5ebfe404bdcd02dcf9844d8", + "research/final4610-independent-admission/SPECIALIZATION.md": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c" + }, + "review": "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "validation": "docs/research/pr-intake-evidence/pr4610/VALIDATION.json", + "integration": "docs/research/pr-intake-evidence/pr4610/INTEGRATION.json", + "reproduce": "make frontier4610-verify", + "scope": "Maintainer-reviewed conditional PR4610 construction using the PR5241 independent audit. The five PR4470 framework assumptions are unchanged. Uniform words are not materialized.", + "previous_kappa": "60403/20000000", + "previous_record": "certificates/checkpoints/frontier4470.json", + "audited_source_head": "20bb93cd990d2ff683e4d0fc56b87a42cd5d3296", + "source_certificate": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "source_certificate_sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "replay_mode": "Fresh complete independent admission replay; source-bound preceding controller, ordinary BIT and physical/compiler foundation reuse", + "contributors": "docs/research/community-native4610-contributors.md", + "assumptions": [ + { + "id": "native_all_columns", + "statement": "Retained native operators, phase conventions, spectators and whole-job adapters work at every positive column multiplicity." + }, + { + "id": "owned_erasure", + "statement": "Owned streams and suspended centers obey the retained allocation, erasure and ownership contracts." + }, + { + "id": "compiler", + "statement": "The finite mixed-target compiler and chronological product, completion and splitting satisfy the retained uniform closure contract." + }, + { + "id": "precision_tape", + "statement": "Retained fixed-tape movement and precision/storage prescriptions apply to the new fixed finite template." + }, + { + "id": "analytic_recovery", + "statement": "Analytic decomposition, fine-prime avoidance and exact integer recovery follow the retained upstream/outer framework." + } + ], + "audit_pr": 5241, + "audit_head": "13efb5fc5f3b7c14ec2cfa181dd9eb6480972cf2" +} diff --git a/research/owned-relation-independent-validation/engines/cost/frozen/verify.py b/research/owned-relation-independent-validation/engines/cost/frozen/verify.py new file mode 100644 index 0000000000..b19f7d0ca4 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/cost/frozen/verify.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 +"""Replay the one-relation native word and its complete conditional kappa. + +Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0. +Read README.md for the source credit and inherited proof obligations. +""" +from hashlib import sha256 +import argparse +import gzip +import json +from pathlib import Path +import sys +sys.dont_write_bytecode = True +import native as N +import price + + +def run(): + N.authenticate() + source = N.read(N.ROOT / N.SOURCE) + candidate = N.construct(source) + c = candidate['canonical'] + before, after = {}, {} + for direction in ('forward', 'backward'): + back = direction == 'backward' + before[direction] = N.replay(c, source['programs'][direction], back, False) + after[direction] = N.replay(c, candidate['programs'][direction], back, back) + N.need(before[direction]['paid'] == N.OLD_PAID and before[direction]['helpers'] == N.OLD_HELPERS, 'Pinned source census') + N.need(after[direction]['paid'] == candidate['paid_profiles'][direction], 'Emitted direction-specific paid profile') + helpers = dict(N.OLD_HELPERS) + if back: helpers[9] -= 1 + N.need(after[direction]['paid'] == (N.NEW_PAID if back else N.OLD_PAID) and after[direction]['helpers'] == helpers, 'Actual complete changed native census') + identities = N.independent_source_identities(source) + phase = N.phase_inheritance(source, candidate) + controls = N.controls(c, candidate) + arithmetic = price.run(after) + data = (json.dumps(candidate, sort_keys=True, separators=(',', ':')) + '\n').encode() + result = N.encode({'status': 'PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION', + 'source_payload_sha256': N.PAYLOAD, 'word_payload_sha256': sha256(data).hexdigest(), + 'source_native': before, 'candidate_native': after, 'independent_source_identities': identities, + 'phase_inheritance': phase, 'native_negative_controls': controls, 'arithmetic': arithmetic, + 'scope': 'Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.'}) + return data, result + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--write', action='store_true', help='Write only this package word and result after all checks pass.') + ap.add_argument('--out', type=Path, help='Write a replay result to a separate path.') + args = ap.parse_args() + data, result = run() + if args.write: + (N.HERE / 'WORD.json.gz').write_bytes(gzip.compress(data, mtime=0)) + (N.HERE / 'RESULT.json').write_text(json.dumps(result, indent=2, sort_keys=True) + '\n', encoding='utf-8') + else: + N.need(gzip.decompress((N.HERE / 'WORD.json.gz').read_bytes()) == data, 'Exact literal published word') + N.need(N.read(N.HERE / 'RESULT.json') == result, 'Exact published replay result') + if args.out: + args.out.write_text(json.dumps(result, indent=2, sort_keys=True) + '\n', encoding='utf-8') + print(json.dumps({'status': result['status'], **{k: result['arithmetic'][k] for k in ('kappa', 'gain_over_PR4610', 'raw_root_interval', 'paid_calls', 'productive_fields')}}, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/owned-relation-independent-validation/engines/physical/independent_physical_check.py b/research/owned-relation-independent-validation/engines/physical/independent_physical_check.py new file mode 100644 index 0000000000..26a51ca920 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/physical/independent_physical_check.py @@ -0,0 +1,192 @@ +#!/usr/bin/env python3 +"""Bounded PR5377 physical-delta check; imports no submitted evaluator. + +Reverse functional propagation proves the three frozen source rows. A separate +forward propagation checks all independent columns and native frame labels. +This does not lower Gaussian phases or run the completion/compiler pipeline. +""" +from collections import Counter +from fractions import Fraction as F +from pathlib import Path +import gzip, hashlib, json, time + +HERE = Path(__file__).resolve().parent +P = HERE / 'pinned' + +def read(name): + raw = (P / name).read_bytes() + return json.loads(gzip.decompress(raw) if name.endswith('.gz') else raw) + +def check(test, message): + if not test: + raise ValueError(message) + +def merge(dst, key, value): + q = dst.get(key, F(0)) + value + if q: + dst[key] = q + else: + dst.pop(key, None) + +def right_letter(word, op): + return word[:-1] if word and word[-1] == -op else word + (op,) + +def pullback(program, role, stop): + """Right-append words while pulling one output functional to source inputs.""" + functional = {role: {(): F(1)}} + for event in reversed(program[:stop+1]): + if event[0] == 'warp': + dst, op = tuple(event[1]), event[2] + if dst in functional: + functional[dst] = {right_letter(w, op): q for w, q in functional[dst].items()} + elif event[0] == 'scalar': + g = event[1]; dst = tuple(g[1]) + row = functional.get(dst, {}) + if g[0] == 'clear': + functional.pop(dst, None) + elif g[0] == 'scale': + functional[dst] = {w: q*F(*g[2:]) for w,q in row.items()} + else: + src = tuple(g[2]); copy = g[0] == 'copy' + check(copy or g[0] == 'add', 'known scalar pullback') + q = F(1) if copy else F(*g[3:]) + if copy: + functional.pop(dst, None) + for w, a in tuple(row.items()): + merge(functional.setdefault(src, {}), w, q*a) + else: + check(event[0] in ('climb','center','phase','adapter'), 'source opcode') + return {(r,w): q for r,row in functional.items() for w,q in row.items() if q} + +def difference(a,b): + out=dict(a) + for k,q in b.items(): merge(out,k,-q) + return out + +def span(basis): + s={0} + for b in basis: s |= {x^b for x in tuple(s)} + check(len(s)==2**len(basis), 'independent frame basis') + return s + +def advance_all(word, direction, specialized): + c=word['canonical']; owned={('C',0)} + if specialized: owned|={('C',1),('L',230)} + state={('L',i): {(('L',i),()): F(1)} for i in range(632)} + state.update({r:{(r,()):F(1)} for r in owned}) + frames={('L',i):f for i,f in enumerate(c['start'])} + frames.update({r:None for r in owned if r[0]=='C'}) + spaces=list(map(span,c['frames'])); paid=Counter(); zeros=[] + for index,event in enumerate(word['programs'][direction]): + kind=event[0] + if kind=='scalar': + g,frame=event[1:]; dst=tuple(g[1]) + if g[0]=='clear': + check(dst in owned,'erase only owned storage') + state[dst]={}; frames[dst]=frame + else: + check(frames[dst]==frame,'scalar output gauge') + if g[0]=='scale': state[dst]={k:q*F(*g[2:]) for k,q in state[dst].items()} + else: + src=tuple(g[2]); check(frames[src]==frame and src!=dst,'scalar source gauge') + if g[0]=='copy': + check(dst in owned and not state[dst], 'copy clears owned destination') + state[dst]=dict(state[src]) + else: + check(g[0]=='add','known scalar') + for k,q in tuple(state[src].items()): merge(state[dst],k,q*F(*g[3:])) + elif kind=='warp': + _,role,op,old,new=event; dst=tuple(role) + check(frames[dst]==old,'native warp input gauge') + transformed={} + for (r,w),q in state[dst].items(): + nw=w[1:] if w and w[0]==-op else (op,)+w + merge(transformed,(r,nw),q) + state[dst]=transformed; frames[dst]=new + elif kind in ('climb','center'): + if kind=='climb': _,_,i,old,new,rank=event; dst=('L',i) + else: _,i,old,new,rank=event; dst=('C',i) + check(frames[dst]==old,'paid input gauge') + check(spaces[old]#*KhMAKMGczX*{ykUv_3n9k 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%0An&u`Csb3RV8)-*z=ghBCmu|` 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%0A}m#BC$*!P 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

2VZSP}KItK@?5y|8|LhfHIf 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

$ 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 F3IM0wtBe2u literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/engines/physical/pinned/PROOF.md b/research/owned-relation-independent-validation/engines/physical/pinned/PROOF.md new file mode 100644 index 0000000000..69c337a770 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/physical/pinned/PROOF.md @@ -0,0 +1,174 @@ +# Source-bound free-operator tensor lift + +This audit affirms one specific premise in PR4100's `COMPLEX.md`, lines 62–89: +the retained four PR4088 words cancel in a free group algebra before any +particular native operator is substituted. The premise is true for the exact +source exports checked here. This is a local algebra and source-binding result; +it supplies no new paid profile, numerical allowance, encoded implementation, +physical hosting theorem, outer release or selected-frontier improvement. + +## Exact source and contract + +The audited text is `research/unconditional-batched-crt/COMPLEX.md`, Git blob +`c3be56fbfdb4fb29c1ace88cbcdfa7475fb6e343`, SHA256 +`853e1295850862752e4f854aa9e8b28f9ca6eaa9306e2af110b7b77526d1b5e1`. +It is identical at retained PR4100 head +`337d04939571a637aeab54a0f58f54fde811663a` and canonical main +`12fa8c5c844be21bfefb38a19503fbd867a11244`. + +Its stated source is PR4088 head +`72d7efc181edb21806a878f174847c96dd410ab0`, package +`research/staged544-mixed-fourth-entry`. This audit exports the exact four +`inputs/{THREE,FOUR}-{base,extra}.json.gz` files, retained `vendor/audit_core.py`, +`vendor/audit_verify.py`, source `verify.py`, `PROOF.md` and `NOTICE.md`. +`SOURCE-PINS.json` records every original commit, path, length, Git blob and +SHA256. Every file is authenticated before the retained checker is executed. +No native runner, owner fill, solver, NumPy or historical outer engine is run. + +Each word has 632 live registers, 91 arbitrary dirty private registers, +72 abstract unary generators and 36 listed initial correction terms. The +forward common-label contract on the 723-register direct sum is + +`(x,y,h,b) -> (x,y+x,h,b)`. + +The dual contract is `(x,y,h,b) -> (x-y,y,h,b)`. In particular every private +buffer is an independent input, returns identically, and has no leakage into +live outputs. Neither contract assumes zero private inputs or a product state. + +## What the retained checker actually computes + +In `audit_core.py`, lines 297–391, a register value is a sparse dictionary + +`(initial_input, reduced_signed_operator_word) -> Fraction`. + +`program` includes every declared initial correction, precondition, +compensation, A and cut gate, chronologically inserted B warp, B gate, +restoration and cleanup gate. `_left` and `_right` cancel only adjacent inverse +letters; `_axpy` adds exact rational coefficients and removes exact zeros. +There is no commutation, finite-order relation, numerical operator matrix, +Fourier-character evaluation or univariate minimal-polynomial reduction. + +`audit_verify.semantics` runs all 723 independent symbols forward and dual, +compares an independent direction of pullback, and checks both cleanup-boundary +contracts. Every emitted provider passes. Each endpoint consists of exactly +835 nonzero terms: the 723 diagonal terms and 112 intended shear terms. Every +surviving operator word is empty. + +That is a universal algebraic identity, rather than an identity inferred from +one operator realization. The source's use of the word “symbolic” is justified +by these actual data structures, reductions and endpoint predicates. + +## All positive tensor multiplicities + +Let `F` be the free group on symbols `g_1,...,g_72`, and let `A=Q[F]` be its +rational group algebra. The finite word program is a product of elementary +723-by-723 matrices over `A`. A correction `c*g_word*x_source` is an off-diagonal +entry of one such elementary matrix. Scalar ADD and SCALE entries belong to +`Q*1_A`. + +Let `K` be any characteristic-zero field (in particular `Q[i]`) and let `V` +be any finite-dimensional vector space over `K`. Choose arbitrary invertible `K`-linear operators +`G_k` on `V`. All tensor products below are over `K`. For every positive integer `f`, define + +`rho_f(g_k) = G_k tensor ... tensor G_k` (f factors). + +The assignment of free generators extends uniquely to a group homomorphism +`F -> GL(V tensor f)`: inverses map to tensor products of inverses, and + +`(G H) tensor f = (G tensor f)(H tensor f)`. + +Extend this map rationally from `A` into the `K`-linear endomorphisms of +`V tensor f`. This extension is a unital rational algebra +homomorphism because multiplication of finite formal sums distributes and +because the group map preserves products. In particular + +`rho_f(sum_w c_w*w) = sum_w c_w*rho_f(w)`. + +Apply this homomorphism entrywise to the certified elementary-matrix product. +It preserves each elementary action, the order of events and the product. +Since the certified endpoint has only rational multiples of empty words, its +image is exactly the same register-level shear with each scalar multiplied +by the identity of `V tensor f`. This proves the endpoint for every positive +`f` and every input in the 723-register direct sum of `V tensor f`, including +arbitrarily correlated live/private data. + +The number of register roles remains 723. We are changing the internal space +of each role; we are not taking a tensor power of the 723-by-723 register matrix. +The latter operation would create a different program with 723^f roles. + +The dual pass treats `d_k=G_k^(-T)` as separate free generators. The same +argument applies, and `(G_k^(-T)) tensor f = (G_k tensor f)^(-T)` in the product +basis. Native frame labels can be replaced by their tensor powers if the +separately supplied directed native recipe identities are exact. This audit +does not reprove or rerun those native recipe identities. + +## The distinction that must be retained + +This algebra homomorphism is linear on formal sums. Therefore + +`rho_f(g-I) = G tensor f - I`, + +not `(G-I) tensor f`. Likewise `rho_f(c*g)=c*(G tensor f)`, not +`(c*G) tensor f = c^f*(G tensor f)`. A role SCALE or bridge coefficient must +remain scalar, while a constant phase already inside a unary generator is +part of that generator and therefore occurs in every tensor factor. + +For an exact small counterexample, take `G=[[1,1],[0,1]]` and `f=2`. +Then `(G tensor G-I)` sends `e_2 tensor e_2` to +`e_1 tensor e_1 + e_1 tensor e_2 + e_2 tensor e_1`; whereas +`(G-I) tensor (G-I)` sends it only to `e_1 tensor e_1`. Their difference is +nonzero over `Q` (and over the supplemental field F101). +The code checks a distinct noncommuting 72-generator family as well, and rejects +both the whole-difference and whole-scalar tensorization rules. + +## Independent evidence and its scope + +`independent.py` imports or executes no retained implementation. It reconstructs +the literal sequence from the four exported words and, for each of the 723 +outputs separately, pulls the output functional backward through that sequence +over exact `Q[F_72]`. The reverse traversal appends words on the right; a stack +reduces only adjacent inverse letters. All four forward and all four dual +contracts match exactly: 5784 output-functional checks, 6680 endpoint terms and +zero surviving nonempty words. Its controls preserve a nontrivial commutator, +a fourth power and the two distinct terms of `g-I`. + +This implementation is independent of the source engine; the format and +endpoint contract were read from the same credited source. Agreement is +supplemental to inspection of the finite exact computations, not a substitute +for proving what the reductions mean. + +`verify.py` also reconstructs and executes the literal events directly on dense +vectors over F101, with 72 distinct invertible 2-by-2 matrices. The first two do +not commute. It substitutes their tensor powers at `f=1,2,3` in both orientations +of all four providers, yielding 24 direct fixtures; all 723 registers are given +deterministic dirty values. These finite-field experiments are controls, not +the proof for every rational input or unbounded f. Erasing the actual listed +correction generators fails at 20 registers; tensorizing the actual role SCALE +coefficients fails at the reported registers. Exact inverse and product +compatibility controls also pass. + +## Remaining obligations and credit + +This positive result discharges only the source's formal free-operator premise +and its algebraic implication to per-role tensor multiplicity. The physical +lowering of native monomials, directed native recipes, placement, common cover, +hosted slices, analytic bounds, coefficient precision, fixed-tape inventory, +recovery and complete ordinary/outer release are outside this audit. The source +construction makes additional written claims about these interfaces; this audit +neither verifies nor refutes those claims. +No paid-rank saving, all-size multiplication theorem, independent human +acceptance or new kappa is claimed. + +The tensor-lift proposal and current construction are credited to Cinna Davis, +the PR4100 author; this audit does not claim to invent the representation argument. +Cinna Davis's PR4088 supplies the four literal providers and source integration. +Sagar Thakrar's PR3687 exact free-operator engine and roger-sato's PR3693 +all-dirty/reverse audit are reused explicitly. Retained lineage includes Rohan +Arun/PR4076, Dugongue/David Ganz/PR4085 and PR3945, Nick Petalas, Ross +Richardson/PR3605, dataisfire/PR3734, ChaloupeMusic/Erwan Secousses, Marius-Paul +Dumitrean, zxv and the earlier geometry/native/compiler/owner contributors. +The byte-identical source notice and source-file notices remain in `source/`. + +The formal and F101 implementations were separately written by one Codex agent. A second Codex agent independently reviewed them and supplied the exact rational signed-permutation oracle in `independent_real.py`; see `INDEPENDENT-REVIEW.md`. None is a human or formal-kernel acceptance. + +`mutation_controls.py` also produces exact actual-program counterexamples in `MUTATIONS.json`: erasing the first correction generator yields `(I-G59)x273` in output115; dropping the first nonidentity scale yields `-3*x119` in output119. Both baseline output functionals pass first. Every actual correction word has length one, so a multi-letter correction reorder is inapplicable rather than counted as an executed control. diff --git a/research/owned-relation-independent-validation/engines/physical/pinned/README.md b/research/owned-relation-independent-validation/engines/physical/pinned/README.md new file mode 100644 index 0000000000..777f4e1d51 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/physical/pinned/README.md @@ -0,0 +1,249 @@ +# Conditional kappa 0.00302235 from one owned helper relation + +This construction gives **conditional kappa = 60447/20000000 = 0.00302235**. +The gain over Cao Yifan's final +[PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610) +value, 0.0030217758, is **2871/5000000000 = 0.0000005742**. +The construction changes the complete paid profile. It does not obtain the +gain by taking more digits of the old root. + +One helper becomes owned storage in each backward call. A prepared relation +then makes one paid rank-eight center equal to an earlier saved value. The same +relation makes one later rank-one job act on zero. Both jobs can be removed, +with the rank-nine helper credit also removed. All other independent outputs +and all main interfaces keep their source operators. + +[WORD.json.gz](WORD.json.gz) is the complete emitted word. +[RESULT.json](RESULT.json) records the exact native checks, the two source +identities, both full profiles, completion, compiler and outer calculations. +[SOURCES.json](SOURCES.json) pins every external input by Git blob and SHA256. +The proof below explains why the changed word has the stated contract. + +## Source and scope + +The base is canonical main +[7c472563474e60185e6ca101a17622133d047e56](https://github.com/CrocSwap/integer-mult-bounds/commit/7c472563474e60185e6ca101a17622133d047e56). +The native source is the final PR #4610 word at +[20bb93cd990d2ff683e4d0fc56b87a42cd5d3296](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz). +Its decompressed SHA256 is +`cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`. +The comparison value and old crossing come from its +[final compiler arithmetic](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json). +All consumed bytes are already in the recorded main base. + +This is one instance of the current `complex-new-helper-inventory` priority. +The [scoped claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737) +reserves only the relation and two replacements below. +[Discussion #5355](https://github.com/CrocSwap/integer-mult-bounds/discussions/5355) +retains all 632 independent inputs and all eight centers. +[Discussion #4930](https://github.com/CrocSwap/integer-mult-bounds/discussions/4930) +retains every original helper endpoint. This construction removes the +independent L230 job in backward calls. It does not claim those broader scopes. +The selected certificate is unchanged. A fresh check at 20:20 UTC found that +Discussion #5355 had released its original-input scope without a saving. +Canonical main still had the recorded base commit. + +## Exact replacement proof + +All indices below are zero-based indices in the frozen backward program. +Let `h_r` be the source logical input of helper `Lr`. The five helpers in + +```math +\Delta=h_{230}-h_{324}+h_{326}+h_{328}-h_{333} +``` + +all start in frame 0 and finish in frame 1, of rank nine. The new backward +contract has 224 independent main fields and 407 independent helper fields. +L230 is private. Clear it, then use four same-frame ADDs to prepare + +```math +h_{230}=h_{324}-h_{326}-h_{328}+h_{333}. +``` + +The other helper inputs remain arbitrary and independent. This preparation +sets Delta to zero for every input. It uses no recursive job. It removes one +rank-nine productive target; the dependent field receives no output credit. + +Run the original source program on unrestricted inputs. Let `q` be the +logical row of L92 just after event 11205, a paid climb into frame 254. +The separate predecessor row engine gives these exact identities: + +| Source position | Exact logical row | +| --- | --- | +| C0 at the rank-eight center, event 11332 | `q + Delta/4` | +| L92 at the rank-one climb, event 15584 | `-Delta/4` | + +These identities are over rational coefficients and free native operator +words. They hold for every value of every source input and for every invertible +interpretation of the native symbols. They do not use numerical samples or an +assumed relation between distinct native maps. + +For every positive tensor width f, substitute each native generator by its +source operator tensor power and each inverse by the inverse tensor power. +This defines a representation of the free group. Keep the rational scalar +coefficients outside the substitution. The two row identities therefore hold +at every such width. In particular, Delta/4 remains a scalar linear form; it +is not a tensor power of that sum. This uses the termwise argument recorded in +the [free-word tensor audit](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/free-word-tensor-lift-audit/PROOF.md), +which credits Cinna Davis's proposal and ToikY's scoped audit. Physical frame +realization and the complete all-size compiler retain their source contracts. + +Immediately after event 11205, clear a new private field C1 in frame 254 and +COPY L92 into it. C1 is not written until the replacement of event 11332. At +that event, clear owned C0, set its frame to 254, COPY C1 into C0, then clear C1. +The copy coefficient is exactly one. Under Delta = 0, the copied field is the +same physical value as the old center output: the logical rows and the exact +frame gauge are equal. The old C0 input can be erased because C0 is owned. +This removes one rank-eight recursive job. + +At event 15584, L92 is exactly zero in every input column. The physical +identity therefore has the same result as the old rank-one frame change. +`zero_retag` records this fact. It performs no physical write and is accepted +only when the full exact row is empty and the current frame is 254. It then +records frame 1. This removes one rank-one recursive job. It does not erase a +main input or replace a nonzero transform with a free frame change. + +Every other event stays in source order. Clear private L230 at return. The +source clears C0, and the new program has already cleared C1. The original +linear endpoint identity, restricted by the prepared relation, gives all 224 +main outputs and all 407 retained helper outputs. The literal new-word replay +checks these outputs separately, with all 631 retained inputs and all three +owned entry fields initially arbitrary. It also checks every scalar frame, +paid rank, native frame transition and final frame. + +The 4,429 source frames, 72 native maps, all remaining paid operators, and main +adapters are unchanged. The source +[absolute-phase certificate](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz) +is authenticated and reused. Same-frame COPY and identity on zero introduce no +phase recipe. The source's amplitude and Clifford-lowering checks are not +rerun by this package. The new free-word identities prove equivalence for the +source operators with their full phases, not just their projective classes. + +## Complete cost and conditional compiler + +The forward word is unchanged. Each backward call has these counts: + +```text +paid: {1:2200, 2:412, 3:510, 4:127, 5:40, 8:7} +helpers: {4:28, 7:7, 8:47, 9:325} +``` + +The full p16/a7 controller contains 16 backward calls, two forward calls and +15 query shears. Thus the complete difference is **minus 16 H1 and 16 H8 paid +jobs, and minus 16 H9 productive targets**. It includes every idle and main +target. There are 64,372 paid jobs and 10,912 productive fields. Their rank +masses are 238,990 and 239,742; the surplus remains 752. + +For every real `0 < t < 1`, the complete target-minus-paid moment increases by + +```math +16(1+8^t-9^t)>0. +``` + +For a direct proof, both `(1/9)^t > 1/9` and `(8/9)^t > 8/9`; multiply their +sum by `9^t`. The improvement is strict throughout the required range. + +The backward word has 158,214 real scalar operations under the source macro +allowance, exactly 46 more than its source. Its maximum formal prefix L1 norm +is 169, with maximum denominator 64; both equal the source bounds. The forward +bounds remain 457 and 32. One extra physical private slot holds C1. L230 uses +an existing slot. The route bound also charges two routes for each of the two +new owned lifetimes. The local scalar-plus-route bound stays below 10^7, and +the complete raw nonrecursive bound stays **181,098,496 < 10^9**. Preparation, +COPY, CLEAR and storage therefore do not introduce an unpaid recursive cost. + +Two rational interval engines check the complete moment. Its unique crossing +in `0 < kappa < 1` lies in +**(0.00302238736347, 0.00302238736348)**. The verifier proves the moment decreases +on `[0,0.05]` and remains negative on `[0.05,1]`. This is a ceiling for this +fixed complete profile, not an optimum over circuits or helper relations. +The claimed kappa leaves more than **0.00000003736347** raw headroom. + +The separately tested saving is 0.00302236. The paid/target ratio is below +`0.999999971483293515393313955730`, with reserve `1e-9`. Both charged tails are +below `0.97`. The source power 1024, cutoff 20, floor 21, tail offset 1/5, +complement factor 63/64 and logarithm power 1000 still pass. The compiler gap +is `1/700000000`, with `j=44836`, `H=31385200000000` and `N=2^31385200000000`. +The exact integer test `(H+1)^1000 < 2^44836` passes; the preceding grid integer +fails. The uniform complex saving is `2115651/700000000`. All 54 strict outer +predicates and four functional predicates pass, using the retained ordinary +BIT saving 0.0034. + +## Verification and reproduction + +Use Python 3.12 or 3.14, with the standard library only. From the repository root: + +```sh +python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023 --check-only +python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023 +``` + +The registered commands run normal and optimized Python. The direct command, +also used for a Git-free export, is: + +```sh +python3 -B research/kappa-owned-relation-20261023/verify.py +python3 -O -B research/kappa-owned-relation-20261023/verify.py +``` + +Each prints status +`PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION`. +The verifier reconstructs the word and compares its bytes and exact result with +the published artifacts. `--write` is a separate authoring command. It changes +only this package's word and result after all checks pass. + +Fresh checks cover both source words, both candidate words, every independent +entry column and owned return, the two unrestricted source identities, retained +phase bindings, the p16 rational Laurent factorization, both scalar boundary +programs, two complete invoice counts, two rational interval engines, the fixed +profile ceiling, completion, compiler, BIT conversion and all outer predicates. +The emitted word replaces the old single `canonical.local_profile` metadata +field with explicit `paid_profiles` for the two directions. + +Seven native controls reject a wrong relation sign, omitted input clear, wrong +snapshot, wrong zero frame, wrong paid rank, wrong copy gauge, and omitted +output clear. Five cost/outer controls reject the lost helper's output credit, +old BIT stock, closed uniform gap, unfunded endpoint and closed epsilon. + +Normal and optimized registered replays passed on CPython 3.12.14. The direct +author check also passed on CPython 3.14. Source metadata and pins passed. +The optional full-history preflight is not claimed in the shallow checkout. +The publication handoff records export and committed-byte checks. + +The full source phase lowering, BIT native replay, Lean, Docker, physical tape +execution, numerical precision execution, analytic decomposition and integer +recovery are not rerun here. The complete bound retains those predecessor +contracts, including permitted owned erasure, whole-job normalizers, mixed +productive-target recursion and all-size closure. The expanded compiled word +is specified by a finite algorithm, not materialized. This is a conditional +construction with exact finite evidence, not an unconditional multiplication +theorem, a practical timing result or independent human acceptance. + +## Credit + +Prepared by Ali Romman with substantial OpenAI Codex assistance. Apache-2.0. +Cao Yifan's [PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610) +supplies the exact source word, phase evidence and previous compiler value. +Cinna Davis's [PR #4470](https://github.com/CrocSwap/integer-mult-bounds/pull/4470) +supplies the p16 controller and helper-interface lineage. The source code keeps +credit for Dugongue's transported frames, zxv's native and finite-compiler +work, Jacob Alan Sussman's mixed-target recursion and their predecessors. +The [pricing source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-interface-round2-20261022/price_profile.py) +and [literal native source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-rebuild/complex/native_extensions.py) +are pinned as provenance for the adapted checks. + +zxv's [PR #5283](https://github.com/CrocSwap/integer-mult-bounds/pull/5283) +supplies the related cache contract and the explicit handoff to find actual +matching rows and their lifetimes. Its standalone cache example is not part of +this word. The new contribution is the five-helper relation, its actual cache +and zero identities, the full owned-field replacement and the complete positive +bill. No priority is claimed for the general cache or paid-history ideas. + +## Open next questions + +Independent review should first check the three source rows and the physical +COPY/zero argument above, then the retained all-size and phase premises. +A later construction could test a different helper relation, but it must claim +a disjoint scope and pay every lost target and owned field. This package does +not classify such relations. [TASK.json](TASK.json) records the first steps, +relevance and blockers for both questions. diff --git a/research/owned-relation-independent-validation/engines/physical/pinned/RESULT.json b/research/owned-relation-independent-validation/engines/physical/pinned/RESULT.json new file mode 100644 index 0000000000..27b4e54708 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/physical/pinned/RESULT.json @@ -0,0 +1,373 @@ +{ + "arithmetic": { + "compiler": { + "H": 31385200000000, + "N": "2^31385200000000", + "eta": { + "lower": "0.000000203927056311365991628189", + "upper": "0.000000203927056311365991628190" + }, + "gap": "1/700000000", + "integer_test_exponent": 44836, + "logarithm_power": 1000, + "theta": "63/64", + "uniform_saving": "2115651/700000000", + "word_materialized": false + }, + "fixed_profile_ceiling": { + "decreasing_through": "1/20", + "derivative_upper": { + "lower": "-195778.630038840116414999953237565269", + "upper": "-195778.630038840116414999953237565268" + }, + "remaining_interval_moment_upper": { + "lower": "-6836.549542075249598033582799619360", + "upper": "-6836.549542075249598033582799619359" + } + }, + "full_backward": 16, + "full_forward": 2, + "gain_over_PR4610": "2871/5000000000", + "kappa": "60447/20000000", + "kappa_decimal": ".00302235", + "margin_at_previous_kappa": { + "lower": "0.151161494385402651700356241377", + "upper": "0.151161494385402651700356241378" + }, + "margin_at_previous_root_upper": { + "lower": "0.151143999513185007311808491175", + "upper": "0.151143999513185007311808491176" + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unearned_helper_credit": "Rejected by the independent complete census", + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "nonrecursive": { + "additional_private_slots": 1, + "local_routes": 4806000, + "local_scalar": 158214, + "owned_slots_backward": 3, + "raw_budget": 1000000000, + "raw_scalar_upper": 181098496 + }, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999253/175000000000", + "fixed_halo_explicit_metadata_branch": "13475000001/175000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899997009/700000000000", + "new_semantic_group_guard": "3/700000000" + }, + "margins": { + "boundary_algebraic_matrix": "23139910904443/7656250000000000", + "fused_gaussian": "23139910838329/7656250000000000", + "global_coordinate_router": "2115649/700000000", + "group_bit_router": "1480954993653053/490000000000000000", + "group_scans": "349999999/350000000", + "main_transform": "23139899966943/7656250000000000", + "microbox_face_corrections": "13475000001/175000000", + "polynomial_products": "699999999/700000000", + "sparse_union_movement": "3133491473404443/7656250000000000" + }, + "parameters": { + "a": "2115649/700000000", + "b": "42313/14000000", + "beta": "699999997/700000000", + "bit_saving": "17/5000", + "cap_xi": "6961616462466943/7656250000000000", + "complex_uniform_saving": "2115651/700000000", + "d": "1/700000000", + "epsilon": "699999999/700000000", + "kappa": "60447/20000000", + "lambda_": "199395529/200000000", + "lambda_prime": "10904443/10937500", + "layout": "1/700000000", + "q": "33057/10937500", + "r0": "1/7000000000", + "stop": "1/700000000", + "tested_saving": "75559/25000000" + }, + "strict_checks": { + "actual_bit_above_effective": "264351/700000000", + "actual_logarithmic_gamma_guard": "1/700000000", + "actual_logarithmic_group_guard": "694633553939307/3828125000000000", + "alpha_logarithm_absorption": "1/7000000000", + "boundary_algebraic_matrix_above_kappa": "43716943/7656250000000000", + "cap_above_band": "3133491462466943/7656250000000000", + "cap_below_cell": "694633526595557/7656250000000000", + "cap_below_phase_cell_power": "8350883537533057/7656250000000000", + "complex_above_effective": "1/700000000", + "complex_below_one_over_32": "395187/14000000", + "complex_endpoint": "1/350000000", + "epsilon_below_one": "1/700000000", + "epsilon_positive": "699999999/700000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "43650829/7656250000000000", + "gaussian_above_main": "5435693/3828125000000000", + "global_coordinate_router_above_kappa": "1/175000000", + "global_gamma_power_slack": "9/7000000000", + "group_below_dimension": "1/350000000", + "group_bit_router_above_kappa": "3493653053/490000000000000000", + "group_gauge_power_slack": "43414597087027/239257812500000", + "group_key_fits_record": "1/350000000", + "group_positive": "699999997/700000000", + "group_scans_above_kappa": "697884353/700000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "645689790400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000", + "lambda_above_sigma": "3/1400000000", + "lambda_above_tau": "1/1400000000", + "lambda_prime_above_lambda": "1/1400000000", + "lambda_prime_above_leaf": "27957687/9800000000000000", + "leaf_saving_above_effective": "13957687/9800000000000000", + "main_transform_above_kappa": "32779443/7656250000000000", + "membership_arithmetic_fits_record": "1/700000000", + "microbox_face_corrections_above_kappa": "53897884359/700000000", + "microbox_halo_volume": "55300000003/700000000", + "new_complex_uniform_saving_above_b": "1/700000000", + "new_semantic_guard_with_C1_one": "1/700000000", + "polynomial_products_above_kappa": "348942177/350000000", + "positive_layout_slack": "1/700000000", + "q_below_effective": "1/700000000", + "q_below_internal": "1/700000000", + "q_below_leaf": "27957687/9800000000000000", + "q_positive": "33057/10937500", + "short_record_fallback": "13957687/14000000", + "source_axis_superpolynomial": "1/700000000", + "sparse_union_movement_above_kappa": "3110351606216943/7656250000000000", + "stop_below_one": "699999999/700000000", + "stop_positive": "1/700000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000", + "union_tag_work_per_visit_fits_record": "3/700000000" + } + }, + "paid": { + "1": 41282, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 128 + }, + "paid_calls": 64372, + "productive_fields": 10912, + "query_shears": 15, + "rank_mass_surplus": 752, + "raw_headroom": [ + "3736347/100000000000000", + "934087/25000000000000" + ], + "raw_root_interval": [ + "302238736347/100000000000000", + "75559684087/25000000000000" + ], + "strictification": { + "alpha": { + "lower": "0.999999971483293515393313955729", + "upper": "0.999999971483293515393313955730" + }, + "cutoff": 20, + "delta": { + "lower": "0.957459689758527661921334851512", + "upper": "0.957459689758527661921334851513" + }, + "floor": 21, + "gamma": { + "lower": "0.956310980726438847618396606911", + "upper": "0.956310980726438847618396606912" + }, + "normalized_paid_upper": "2097152001953127/2097154147483648", + "power": 1024, + "reserve": "1/1000000000", + "tail_offset": "1/5", + "tested": "75559/25000000" + }, + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5852 + } + }, + "candidate_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 325 + }, + "independent_owned_entry_columns": 3, + "independent_persistent_columns": 631, + "max_denominator": 64, + "max_formal_prefix_l1": "169", + "owned_outputs_zero": true, + "paid": { + "1": 2200, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 7 + }, + "real_scalar_allowance": 158214, + "zero_identities": 1 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "independent_source_identities": { + "center_minus_snapshot": "Delta/4", + "center_replaced": 11332, + "copy_coefficient": "1", + "relation": { + "230": 1, + "324": -1, + "326": 1, + "328": 1, + "333": -1 + }, + "snapshot_after": 11205, + "snapshot_terms_before_substitution": 61, + "source_event_indices_are_zero_based": true, + "zero_identity_at": 15584, + "zero_site_row": "-Delta/4" + }, + "native_negative_controls": { + "missing_owned_input_clear": "Every independent main/helper endpoint: 0", + "uncleared_owned_output": "Every owned entry column is erased at return", + "under_or_overstated_paid_rank": "Exact paid rank and frame", + "wrong_copy_gauge": "Exact scalar destination frame", + "wrong_relation_sign": "Every independent main/helper endpoint: 0", + "wrong_snapshot_source": "Zero identity requires an identically zero full row", + "wrong_zero_input_frame": "Zero identity requires an identically zero full row" + }, + "phase_inheritance": { + "absolute_phase_receipt_reused": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "all_retained_paid_events_and_warps_from_source": true, + "new_gaussian_operators": 0, + "new_native_maps": 0, + "new_operations": "Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.", + "source_amplitudes_and_phase_lowering_freshly_replayed": false + }, + "scope": "Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.", + "source_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 64, + "max_formal_prefix_l1": "169", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158168, + "zero_identities": 0 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "source_payload_sha256": "cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd", + "status": "PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION", + "word_payload_sha256": "645b32ff67dfd49bbe8c2287d21f12a66a775d3c5e187db6f813e17e9f8fae35" +} diff --git a/research/owned-relation-independent-validation/engines/physical/pinned/SOURCES.json b/research/owned-relation-independent-validation/engines/physical/pinned/SOURCES.json new file mode 100644 index 0000000000..9854abbb4f --- /dev/null +++ b/research/owned-relation-independent-validation/engines/physical/pinned/SOURCES.json @@ -0,0 +1,90 @@ +{ + "schema_version": 1, + "base_commit": "7c472563474e60185e6ca101a17622133d047e56", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "c35482cd9035843b15a634cc8276a7e1e40e8395", + "sha256": "6fe0a099b89aa2aed796a13c3a21dafc63f3388ebf397464e44e0451893b9375" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" + }, + { + "path": "research/free-word-tensor-lift-audit/PROOF.md", + "usage": "provenance", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e", + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459" + }, + { + "path": "research/higher-moment-strictification/verify.py", + "usage": "input", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326" + }, + { + "path": "research/joint-helper-lattice/CONTROLLER.json", + "usage": "input", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + { + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "usage": "input", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7" + }, + { + "path": "research/kappa-interface-round2-20261022/price_profile.py", + "usage": "provenance", + "git_blob": "1d93e43d1cb888d128c2faa2be83a96d85b84295", + "sha256": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb" + }, + { + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "usage": "input", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "research/kappa-rebuild/complex/native_extensions.py", + "usage": "provenance", + "git_blob": "7f84894efc309546a903d314c7ac1473e7f594a8", + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3" + }, + { + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "usage": "input", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + }, + { + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "usage": "input", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b" + }, + { + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "usage": "input", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de" + }, + { + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "usage": "input", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "research/query-thinned-controllers/RESULT.json", + "usage": "input", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f" + } + ] +} diff --git a/research/owned-relation-independent-validation/engines/physical/pinned/WORD.json.gz b/research/owned-relation-independent-validation/engines/physical/pinned/WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..5e79bd826c6ca1e782766ea0ae28a61d136303d1 GIT binary patch literal 206987 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

@Llg*%VK`0&GUPt!^(rsfQoi!EYdE~tu6^FUc! z1T-})XO$5Y_pLKTlG3in=>=5wsjaoB|A1n`%WP2>g>0|3DhI(O046w4NKxR(x-w!p z>8iKFZ>KPs&7_&CkO3kcdrsNAcmSpB#6nCt`vd>21m2hi-cKB;1>Vy>-ZVUJjRf8R zi}3XU3%R;J?x_V*J>Fi&-O)a7b=(hSJ)Q+V+ywr+=y-rGxLn@E{ULq(IOei*M!U`# z_+Z(bG!po$;r1r(@3i=1_44i3+xi92dcfmMfUi|JZFkjD2y?z0ZtS;^r4UdtzUvQ| z4y0if!oFeXwm~w;DMW~SK}wYx=E)~-m$UKfSwF=G3qO;k-0_kN8^u)Er`r!wj0!dF35gm*KX*$2o;Hm2SRL73aTKik;MKW0ZF& zUaA4rO}fs(43=Gh=6SF4qeb&Dlr9+QS12;GHpVa?L}X{zG7gQv#LF?KR-DGgLd z>iQdIpwzGlDgSHu0Wp1;1B~gq{*IcSFBj2tyq~5nzBqVl-1cH8o0pnFbu_L^Fax!Q zLrD3Sp%-F$2)JzT3V#M>u=2@>d$8?GQ#$3=GV0RrC}@LkQHyu=q2~)vLGJmb!#{_c zJuM4jt4ponUM*i*)5*?UuCl$(a+eQiE?rC(Tb9sw@^P;M{V_kn7qu|n+G54w{Im^P z5`BJX|LJaP<5Bo7kn16<^l@wRv8g4ny%6s(>(isHsl%qyZ@=PH?l))oHtmzYlGAQ9 zquM8Px$Cx-IB);o?uHWQjiyrjB%HhMe|Cr3Cu_Lt_LVsAH2(lRy<^-KRxb`WP{`U%`J@of4R({^rOwWHw|pgY(IG1s|>t#xx91B zIzWlkK+5L|s*&26Fpgt~+%&<_Mhh3{`TC{QC1jD`AX_E-=09E}cii`#ar>t3(|9kp zseSxr{_iUAZYJ>2^-5>?b>PE->EoH{<9+4h>90Sr2#_Dx$Jr8V$4jd~?R}h`4qRA~ z;p(F*qdr{fbT);4U`z8EocsMlGpIT;R>2S3wIaH_GK$WzE@G zrG@*Lz_QNc&4B#Y>VtmEalKy8g5ci(MJ+O=m&pe3zH?L+rAvNQ#?a0??bFCHhHm$+Rz{Qd0hvSW3HijK$&K26lZ*`#JV4~WXhVy`cli1tlz^R9x zxb+xs+T|YikqN_#fI{ojo`YNtQ?Mwg@$R?$j7q?^lJEVx#=`K9hULRQCG+Mh5P1rA zX5KL!Q9DDZSNSjGyZMeo9=;PD9

!p@6mTvz^}dn+>#HjQ()nc?4Y4m6GF|M!bSJ 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

~Yk-!hgQDd3FmtqEdT@CattzST(EjXb zbNA5C#pYw0B;rrK5WVF8zvw4J+WK9`wr!CRnxg7NH&uY56KT0shsprO4G~W(H|G{P zY6Y`_m=F#HSJgZ`_`I|XVjq&^#eNx;M>&uHx2#UvmTPSbrwJ^yk#mCKd8m>YpBf#? zN-oH4E$B6`Hj+}jT>UL-`L7*$Tx>f{qSMzRuq9_VC|#xNQaS`Hux@h^duM1lxl97M zS;~uYrvnsFD|9teW1;tecqov4tbJFBX~C9qRwO`7Bo54VI4v7F*Mnq}=a3m=7vVnks=%7?H=Xfjf%j0f1+P0@C}g5wCw-~`CgMjPg&Mz!s9)Vbuh zr4Wk?;SEjouTsGpem~#P=0ZP2gQ1bKb#JAPW(A*^{N!H4gaj*L6-BuS;+PY9Kkzs4 zSjJ<|{yJ+*hIJW^N%l4Sg=*+wbtIX@JJ@97CZE%CM8$^A^dqcgugTPHHjm`=^`JKB zX+7v^VKg5at0m~=@66ld-+bt$%QwNFQg4iO7s|D4HRzYdH>=UjJwQ=>CT#?V{$aSC ziOl6lA6njCvMbcI(C?tO?7kAC{&{@ffS%NAJ*_@rHp8`DX1_D&KC@+@yj?nS{y~I| zip%i15h)wI&r9-=3#QOJ7j$twYx;GvU84HnVFtnKOjQz*xY(#R!IC5N5n&vFwVBZ_ zh~sL<#t~kkX^fKmMp=$_#u?=%ZnyBZ3oEV#K7$uXc@o+t6dmKt#3*Rp7}m1WlwQB} zMCYgoja5fnY{?h+p7ol;*QH z6f3(}TO=-XLQYIb6a5HEFUU_edxxSE7qewa3G#pq_iZU-j`~*9SbZ&VryQUvJ@me~ z+eNA!75o0M)v$1UXmYLMp#1t>0f)!Y17cEMrt}w)6J-G5-;X%M=>sT(8*XwKH}hlP z1__&so0Q#OJMx4XcnrqtjC+x2Yl0068`IITrQq{RG(6QihqhuX)uFI}7vnHbSkh~T z%QI0lLC0|u!XQ___(MH`_o!h9_0H3hZ4cq9ZCKa*IpiyA4=Xp!{3;R^@6TX0C}bWv zSHDi2T;iFl*jG~6j!rc_EWZs7PB}U3<|cJcZT^-`~C` zigL^S1Bio%^!-89afd)M^vPE0oa9d&KfaTHmLeA@I>a#_IWSrG>_VbXTJ;>K^?tRgtATH&BVv)*I?}<;mLX zl1ZRQyUPTZW(E}JLuvyvuiNDxCuRh_;=$9a%U2j*s1(fx-M<8a7JkB~ye=l)DfW+}Qz2w^-p}9{BGf_HQzkb{923~3 zwtBh!)f|kBCDl(9byDDgG)IOtyGzK|6-dIc#Ro6@_bQgeh&TbqPt;|b1Z`ASGIq>r zLr25o4lOY;Rb-1D*;|IPx;@mWvytu>PCec<7c$i>{-O(KI4^N<`I<9?0e6yw4I$X0 z5qbU4jz?KV94);d!859dlKvmc%oQ0Tzn`j{l~6&KNKsl5uf)YUoNAUaARb5TczU() zl!61y@88{#{uW*S+F0C@dzvT99_!y z!mR9eVL7Tx#N%_4EohG&1`u=YNeY~Jj+0HIT39W+{yv(81E8LnD5L4z=poXm9UOTZ zYSXL%s%$)zK|?;@O6Xz#NQ~73#n-dL{;aq1sq3?;7UXU};f(?q5>$Kpc3mGY%o8cc z_XBhlzzp_P}L$~h$E@htdBfek?NpmA0wfh7) z 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 for every 0 theta^1000, + 145^(1024*TESTED) < 2^1000. + +Set kappa=0.00302015 and d=(TESTED-kappa)/7=1/1,400,000,000. The integer test + + (1,400,000,000*j + 1)^1000 < 2^j + +passes at j=45,868 and fails at j-1. Thus the retained theorem supplies the sufficient uniform rank N=2^64,215,200,000,000. This is an existence construction with explicit finite constants. The resulting word is not materialized and no practical implementation claim follows. + +The new local scalar and fixed-route bound remains below 10^7 per full call. Eighteen such calls, all 15 thin-query charges, every scalar controller and boundary operation fit the complete raw bound 10^9. The number of roles, private storage, coefficient matrices and tapes is finite for the compiled template. Their sizes affect the eventual threshold and are not claimed uniform while changing that template. + +Retain the source BIT ordinary saving 0.0034, with atom exponent 0.004. Its delayed-cover, weighted-child, row-stock and conversion conditions are rechecked through the source package. Use complex uniform saving kappa+6d, followed by b=kappa+5d, a=kappa+4d, q=kappa+3d, epsilon=1-d, beta=1-3d, r0=d/10, stop=d and layout=d. All nine outer cost rows, 54 strict predicates and four functional guards pass exactly. The old BIT cap and closed exponent gaps are explicit rejected controls. + +## 7. Status of the conclusion + +Subject to the retained all-column/native and physical-operation contracts, owned erasure, whole-job matching, finite-template compiler closure, precision and fixed-tape bounds, analytic decomposition, prime avoidance and exact recovery, this construction gives the source framework's conditional multiplication saving kappa=0.00302015. + +The submitted change establishes an exact finite native word and a fully charged conditional parameter transfer. It does not remove the inherited analytic or physical premises. It does not promote the selected frontier, certify global optimality, claim a runtime speedup, or claim independent human or proof-assistant acceptance. + +Credits: zxv's native and higher-moment/logarithmic work; Jacob Alan Sussman's finite mixed-flow theorem; Cinna Davis's prior p7 padding, query-thinned and retimed constructions; and the unchanged credited scalar, Clifford, geometry and outer-ledger sources. New material was prepared for Cinna Davis with substantial OpenAI assistance, Apache-2.0. diff --git a/research/owned-relation-independent-validation/engines/physical/pinned/controller-README.md b/research/owned-relation-independent-validation/engines/physical/pinned/controller-README.md new file mode 100644 index 0000000000..8c9bd69cd4 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/physical/pinned/controller-README.md @@ -0,0 +1,46 @@ +# Joint helper boundaries: conditional kappa = 0.00302015 + +This is an author-checked conditional construction, not an unconditional integer-multiplication theorem or a selected-frontier update. + +The new contribution is a joint finite optimization of helper entrances, exits and scalar contact frames. It builds on the exact native supplier of zxv, the retiming in PR4441, the missing span in PR4447, and the query-thinned controller in PR4440. The arithmetic scaffolding and logarithmic compiler test are adapted from PR4447 and the credited PR4433 lineage. + +The proposed saving is `0.00302015`, compared with `0.00300123` in PR4447: an absolute increase of `0.00001892`, or approximately **0.630408%**. This is a moderate incremental improvement. It is not a claim of a large asymptotic breakthrough. + +## What changed + +Relative to PR4447, `PATCH.json` changes 38 helper entrances, 47 helper exits and 414 scalar contact frames. Both scalar orders, every scalar coefficient, main endpoints, native warps, and the owned-center operations remain unchanged. All 408 helpers remain independent, strictly productive arbitrary inputs. + +The local helper profile becomes `{4:28, 7:7, 8:47, 9:326}`. The complete paid profile becomes `{1:2237, 2:388, 3:494, 4:147, 5:36, 8:8}`. This reduces local paid calls from 3,363 to 3,310. Both rank masses increase by 37, leaving the local rank-mass deficit unchanged. The eight whole rank-eight center jobs are included. + +The nonlinear helper credit couples the two boundaries. Separate entrance-only and exit-only updates do not represent that joint objective. The optional finite-lattice mixed-integer search found the patch; the proof does not trust that solver, its objective value, or its optimality status. + +The changed supplier is installed in an explicitly replayed 16-pair controller with 18 full native calls and 15 copied-query shears. Its complete invoice has 10,928 productive fields and 64,620 paid jobs. Target and paid rank masses are 239,886 and 239,134, respectively. The rank-one surplus is 752. The predecessor p17 invoice has a different number of inputs, so total call counts are not a like-for-like runtime comparison. + +`RESULT.json` encloses the new raw moment root in `(0.0030201659770, 0.0030201659771)`. It certifies paid tensor completion, splitting, a finite uniform compiler and every outer inequality at the smaller stated kappa. The unchanged source BIT supplier supports ordinary saving 0.0034. + +## Verification + +Run from the repository root: + +```sh +python3.12 -B scripts/research_package.py --package research/joint-helper-lattice --check-only +python3.12 -B scripts/research_package.py --package research/joint-helper-lattice +``` + +The registered replay has three required gates (dependencies, native, arithmetic) and uses only the Python standard library. It authenticates the declared sources, reconstructs the changed native word, replays all 632 arbitrary-input columns in both orientations using two retained interpreters, and lowers the new transports and helper boundaries including absolute phase. It regenerates the p16 Laurent and literal controller, checks its boundary factorization, cross-checks the moments with a second rational engine, and verifies the full compiler and outer ledger. Mutation controls reject false ranks, unsupported query orientation, unpaid full stages, the old invoice at the new saving, and invalid outer parameters. + +`--write` is an authoring path using saved native and predecessor receipts. It is not the registered full replay. `VALIDATION.md` records the commands actually completed. + +`PROOF.md` states the construction, complete cost argument and inherited assumptions. `DISCOVERY.json` contains floating-point search evidence only; no solver optimality claim is part of the theorem. `PATCH.json`, `NATIVE.json.gz`, `CONTROLLER.json` and `RESULT.json` are the mathematical replay artifacts. + +## Scope and credit + +The source all-column native contract, allowed erasure of owned storage, whole-job normalizers, finite-template closure, precision and monomial tape bounds, analytic decomposition, prime avoidance, and exact recovery remain explicit premises. The enormous uniform word is algorithmically specified, not materialized. No practical speedup, global optimum, formal-kernel acceptance, or independent human review is claimed. + +The branch is stacked on exact PR4447 head `322e0ec764aa7ef7801383feb1f656e460dd8bed`. Its ancestors retain PR4440/PR4441 and the pending PR4447 contribution. Those inherited changes are not new work in this package. Canonical main at the final research checkpoint was `2a13eb1827784206202db90e5dc8327cf8a250db`. + +Credit zxv's native and compiler work, Jacob Alan Sussman's mixed-target integer flow, Cinna Davis's PR4416 padding and PR4440/PR4441/PR4447 contributions, and the retained scalar, Clifford, geometry, precision and outer-ledger authors. Source notices remain unchanged. New work prepared for Cinna Davis with substantial OpenAI assistance. Apache-2.0. + +## Open next questions + +Can a costed scalar reordering or changed warp word beat this fixed chronological graph? Start with a small commuting contact block, derive its dependency graph, then reconstruct every physical endpoint before repricing it. The finite solver's optimum report is not an exact general barrier and does not cover changed scalar orders or warps. The structured question and blocker are in `TASK.json`. diff --git a/research/owned-relation-independent-validation/engines/physical/pinned/native.py b/research/owned-relation-independent-validation/engines/physical/pinned/native.py new file mode 100644 index 0000000000..b8249ed7ba --- /dev/null +++ b/research/owned-relation-independent-validation/engines/physical/pinned/native.py @@ -0,0 +1,299 @@ +"""One prepared helper removes two paid jobs in the PR4610 backward word. + +Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0. +The source word is by Cao Yifan. The row convention and scalar allowance +follow the credited native work of Cinna Davis and zxv. +""" +from collections import Counter +from copy import deepcopy +from fractions import Fraction as Q +from hashlib import sha1, sha256 +from pathlib import Path +import gzip +import importlib.util +import json +import sys + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +SOURCE = 'research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz' +PHASE = 'research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz' +PAYLOAD = 'cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd' +RELATION = {230: 1, 324: -1, 326: 1, 328: 1, 333: -1} +OLD_PAID = {1: 2201, 2: 412, 3: 510, 4: 127, 5: 40, 8: 8} +NEW_PAID = dict(OLD_PAID) +NEW_PAID[1] -= 1 +NEW_PAID[8] -= 1 +OLD_HELPERS = {4: 28, 7: 7, 8: 47, 9: 326} + + +def need(ok, why): + if not ok: + raise ValueError(why) + + +def read(path): + data = path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data) + + +def encode(x): + if isinstance(x, Q): + return str(x) + if isinstance(x, dict): + return {str(k): encode(v) for k, v in x.items()} + if isinstance(x, (list, tuple)): + return [encode(v) for v in x] + return x + + +def load(relative, name): + spec = importlib.util.spec_from_file_location(name, ROOT / relative) + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) + return module + + +def authenticate(): + pins = read(HERE / 'SOURCES.json') + for row in pins['files']: + if row['usage'] != 'input': + continue + p = ROOT + for part in Path(row['path']).parts: + p /= part + need(not p.is_symlink(), 'No source aliases') + raw = p.read_bytes() + need(sha256(raw).hexdigest() == row['sha256'], 'Changed source: ' + row['path']) + need(sha1(b'blob ' + str(len(raw)).encode() + b'\0' + raw).hexdigest() == row['git_blob'], 'Source Git blob') + need(sha256(gzip.decompress((ROOT / SOURCE).read_bytes())).hexdigest() == PAYLOAD, 'Exact source payload') + return pins + + +def span(basis): + out = {0} + for vector in basis: + need(isinstance(vector, int) and 0 <= vector < 512, 'Binary frame coordinate') + out |= {v ^ vector for v in tuple(out)} + need(len(out) == 2 ** len(basis), 'Independent frame basis') + return out + + +def add(dst, src, q): + for k, v in tuple(src.items()): + value = dst.get(k, Q(0)) + q * v + if value: + dst[k] = value + else: + dst.pop(k, None) + + +def allowance(g): + if g[0] in ('clear', 'copy'): + return 2 + q = Q(*g[3:]) if g[0] == 'add' else Q(*g[2:]) + n, d = abs(q.numerator), q.denominator + need(n > 0 and d & (d - 1) == 0, 'Nonzero dyadic scalar') + if g[0] == 'scale': + need(n & (n - 1) == 0, 'Dyadic unit SCALE') + return 2 * (abs(n.bit_length() - d.bit_length()) + int(q < 0)) + need(g[0] == 'add', 'Known scalar operation') + return 2 * (3 + n.bit_length() - 1 + n.bit_count() + d.bit_length() - 1) + + +def construct(source): + c = source['canonical'] + old = source['programs']['backward'] + need(old[11205] == ['climb', 'warp_retimed', 92, 310, 254, 4], 'Snapshot source event') + need(old[11332] == ['center', 0, 0, 254, 8], 'Center source event') + need(old[15584] == ['climb', 'warp_retimed', 92, 254, 1, 1], 'Zero source event') + need(all(c['start'][h] == 0 and c['final'][h] == 1 for h in RELATION), 'Five cold full-ended helpers') + word = [['scalar', ['clear', ['L', 230]], 0]] + word += [['scalar', ['add', ['L', 230], ['L', h], -q, 1], 0] + for h, q in RELATION.items() if h != 230] + for i, event in enumerate(old): + if i == 11332: + word += [['scalar', ['clear', ['C', 0]], 254], + ['scalar', ['copy', ['C', 0], ['C', 1]], 254], + ['scalar', ['clear', ['C', 1]], 254]] + elif i == 15584: + word.append(['zero_retag', ['L', 92], 254, 1]) + else: + word.append(deepcopy(event)) + if i == 11205: + word += [['scalar', ['clear', ['C', 1]], 254], + ['scalar', ['copy', ['C', 1], ['L', 92]], 254]] + word.append(['scalar', ['clear', ['L', 230]], 1]) + physical = deepcopy(c) + physical.pop('local_profile') + return {'schema': 'owned-helper-relation-word/1', 'canonical': physical, + 'paid_profiles': {'forward': OLD_PAID, 'backward': NEW_PAID}, + 'owned': {'forward': [['C', 0]], 'backward': [['C', 0], ['C', 1], ['L', 230]]}, + 'programs': {'forward': deepcopy(source['programs']['forward']), 'backward': word}} + + +def replay(c, program, backward, specialized): + """Run every event on all independent entry columns and exact frames.""" + owned = {('C', 0)} | ({('C', 1), ('L', 230)} if specialized else set()) + roles = {('L', i) for i in range(632)} | owned + rows = {r: {(r, ()): Q(1)} for r in roles} + frames = {('L', i): f for i, f in enumerate(c['start'])} + frames.update({r: None for r in owned if r[0] == 'C'}) + spaces = [span(b) for b in c['frames']] + paid = Counter() + cost, max_l1, denominator, zero_count = 0, Q(1), 1, 0 + for e in program: + kind, touched = e[0], None + if kind == 'scalar': + g, frame = e[1:] + dst = tuple(g[1]); touched = dst + need(dst in rows and 0 <= frame < len(spaces), 'Declared scalar destination and frame') + cost += allowance(g) + if g[0] == 'clear': + need(dst in owned, 'Only owned fields can be erased') + rows[dst] = {}; frames[dst] = frame + else: + need(frames[dst] == frame, 'Exact scalar destination frame') + if g[0] in ('add', 'copy'): + src = tuple(g[2]) + need(src in rows and frames[src] == frame and dst != src, 'Exact scalar source frame') + if g[0] == 'copy': + need(dst in owned and not rows[dst], 'COPY into cleared owned storage') + rows[dst] = dict(rows[src]) + else: + add(rows[dst], rows[src], Q(g[3], g[4])) + else: + need(g[0] == 'scale', 'Known scalar operation') + rows[dst] = {k: Q(g[2], g[3]) * v for k, v in rows[dst].items()} + elif kind == 'warp': + _, role, op, old, new = e + dst = tuple(role); touched = dst + need(frames[dst] == old and 1 <= abs(op) <= len(c['warps']), 'Exact warp input') + symbol = (1 if op > 0 else -1) * (abs(op) + (10**6 if backward else 0)) + rows[dst] = {(r, w[1:] if w and w[0] == -symbol else (symbol,) + w): q + for (r, w), q in rows[dst].items()} + frames[dst] = new + elif kind in ('climb', 'center'): + if kind == 'climb': + _, _, i, old, new, rank = e + dst = ('L', i) + need(spaces[old] < spaces[new], 'Ascending paid climb') + else: + _, i, old, new, rank = e + dst = ('C', i) + need(spaces[old] < spaces[new] or spaces[new] < spaces[old], 'Nested paid center') + need(frames[dst] == old and rank == abs(len(c['frames'][new]) - len(c['frames'][old])), 'Exact paid rank and frame') + frames[dst] = new; paid[rank] += 1 + elif kind == 'zero_retag': + _, role, old, new = e + dst = tuple(role) + need(specialized and backward and dst == ('L', 92), 'Declared zero identity') + need(frames[dst] == old and not rows[dst], 'Zero identity requires an identically zero full row') + need((old, new) == (254, 1), 'Declared zero frame change') + frames[dst] = new; zero_count += 1 + else: + need(kind in ('phase', 'adapter'), 'Known inert source marker') + if touched is not None: + max_l1 = max(max_l1, sum(map(abs, rows[touched].values()), Q(0))) + denominator = max(denominator, max((q.denominator for q in rows[touched].values()), default=1)) + need([frames['L', i] for i in range(632)] == c['final'], 'Every final native frame') + for i in range(632): + r = ('L', i) + if r in owned: + continue + expected = {(r, ()): Q(1)} + if i < 112 if backward else 112 <= i < 224: + expected[(('L', i + 112 if backward else i - 112), ())] = Q(-1 if backward else 1) + need(rows[r] == expected, 'Every independent main/helper endpoint: ' + str(i)) + need(all(not rows[r] for r in owned), 'Every owned entry column is erased at return') + need(zero_count == int(specialized), 'Exactly one checked zero identity') + helpers = Counter() + for i in range(224, 632): + if ('L', i) in owned: + continue + a, b = c['start'][i], c['final'][i] + need(spaces[a] < spaces[b], 'Strict independent productive helper') + helpers[len(c['frames'][b]) - len(c['frames'][a])] += 1 + return {'paid': dict(sorted(paid.items())), 'helpers': dict(sorted(helpers.items())), + 'independent_persistent_columns': 631 if specialized else 632, + 'independent_owned_entry_columns': len(owned), 'owned_outputs_zero': True, + 'real_scalar_allowance': cost, 'max_formal_prefix_l1': str(max_l1), + 'max_denominator': denominator, 'zero_identities': zero_count} + + +def independent_source_identities(source): + """Use the predecessor row engine on the unrestricted original word.""" + v = load('research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py', 'owned_relation_source_rows') + rows = {('L', i): v.identity(('L', i)) for i in range(632)} + rows['C', 0] = v.identity(('C', 0)) + delta = {(('L', i), ()): Q(q) for i, q in RELATION.items()} + saved = None + for index, e in enumerate(source['programs']['backward']): + if e[0] == 'scalar': + g = e[1]; dst = tuple(g[1]) + if g[0] == 'clear': rows[dst] = {} + elif g[0] == 'copy': rows[dst] = dict(rows[tuple(g[2])]) + elif g[0] == 'scale': rows[dst] = {k: Q(g[2], g[3]) * a for k, a in rows[dst].items()} + else: v.add(rows[dst], rows[tuple(g[2])], Q(g[3], g[4])) + elif e[0] == 'warp': + dst = tuple(e[1]); rows[dst] = v.warp(rows[dst], e[2], True) + if index == 11205: saved = dict(rows['L', 92]) + if index == 11332: + diff = dict(rows['C', 0]); v.add(diff, saved, -1) + need(diff == {k: q / 4 for k, q in delta.items()}, 'Independent exact center minus snapshot = Delta/4') + if index == 15584: + need(rows['L', 92] == {k: -q / 4 for k, q in delta.items()}, 'Independent exact zero-site row = -Delta/4') + need(all(rows['L', i] == v.expected(('L', i), [], True, False) for i in range(632)), 'Independent unrestricted source endpoints') + return {'source_event_indices_are_zero_based': True, 'snapshot_after': 11205, + 'center_replaced': 11332, 'zero_identity_at': 15584, + 'snapshot_terms_before_substitution': len(saved), 'copy_coefficient': '1', + 'center_minus_snapshot': 'Delta/4', 'zero_site_row': '-Delta/4', 'relation': RELATION} + + +def phase_inheritance(source, candidate): + receipt = read(ROOT / PHASE) + need(receipt['status'] == 'PASS_JOINT_HELPER_MAPS_ALL_ACTUAL_ABSOLUTE_PHASES' and + receipt['actual_word_canonical_sha256'] == PAYLOAD, 'Authenticated source absolute-phase receipt') + physical = deepcopy(source['canonical']); physical.pop('local_profile') + need(candidate['canonical'] == physical, 'Every frame, native map and main adapter unchanged') + for direction, program in candidate['programs'].items(): + old = source['programs'][direction] + for kind in ('warp', 'adapter', 'phase'): + need([e for e in program if e[0] == kind] == [e for e in old if e[0] == kind], 'Exact inherited ' + kind + ' sequence') + old_paid = Counter(tuple(e) for e in old if e[0] in ('climb', 'center')) + new_paid = Counter(tuple(e) for e in program if e[0] in ('climb', 'center')) + expected = Counter() if direction == 'forward' else Counter(tuple(old[i]) for i in (11332, 15584)) + need(old_paid - new_paid == expected and not new_paid - old_paid, 'Only the two proved jobs are removed') + return {'new_gaussian_operators': 0, 'new_native_maps': 0, + 'all_retained_paid_events_and_warps_from_source': True, + 'absolute_phase_receipt_reused': PHASE, + 'source_amplitudes_and_phase_lowering_freshly_replayed': False, + 'new_operations': 'Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.'} + + +def controls(c, candidate): + controls = {} + base = candidate['programs']['backward'] + variants = {} + bad = deepcopy(base); bad[1][1][3] *= -1; variants['wrong_relation_sign'] = bad + variants['missing_owned_input_clear'] = deepcopy(base[1:]) + bad = deepcopy(base) + next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 1]])[1][2] = ['L', 63] + variants['wrong_snapshot_source'] = bad + bad = deepcopy(base); next(e for e in bad if e[0] == 'zero_retag')[2] = 0 + variants['wrong_zero_input_frame'] = bad + bad = deepcopy(base); next(e for e in bad if e[0] == 'climb')[5] += 1 + variants['under_or_overstated_paid_rank'] = bad + bad = deepcopy(base) + next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 0]])[2] = 0 + variants['wrong_copy_gauge'] = bad + variants['uncleared_owned_output'] = deepcopy(base[:-1]) + for name, program in variants.items(): + try: + replay(c, program, True, True) + except ValueError as err: + controls[name] = str(err) + else: + raise ValueError('Control accepted: ' + name) + return controls diff --git a/research/owned-relation-independent-validation/engines/physical/pinned/price.py b/research/owned-relation-independent-validation/engines/physical/pinned/price.py new file mode 100644 index 0000000000..6077adf74c --- /dev/null +++ b/research/owned-relation-independent-validation/engines/physical/pinned/price.py @@ -0,0 +1,196 @@ +"""Complete p16 bill and finite compiler for one owned helper relation. + +The interval and compiler proof follows Cao Yifan's PR4610 pricing, Cinna +Davis's PR4470 controller, zxv's completion and logarithmic majorant, and +Jacob Alan Sussman's mixed-target recursion. Apache-2.0. +Ali Romman, with substantial OpenAI Codex assistance. +""" +from collections import Counter +from fractions import Fraction as Q +from native import ROOT, read, load, need, encode, OLD_PAID, OLD_HELPERS + +KAPPA = Q('.00302235') +TESTED = Q('.00302236') +PREVIOUS = Q('.0030217758') +OLD_ROOT_UPPER = Q('.00302177587078') + + +def controller(): + """Check the literal p16 word and both rational boundary programs.""" + word = read(ROOT / 'research/joint-helper-lattice/CONTROLLER.json') + need((word['kind'], word['pairs'], word['prefix_pairs'], word['ambient_rank']) == ('complex', 16, 7, 145), 'Source p16/a7 controller') + zero = (0,) * 34 + def plus(dst, src, q): + for k, v in src.items(): + value = dst.get(k, Q(0)) + q * v + if value: dst[k] = value + else: dst.pop(k, None) + def shifted(row, term, sign=1): + return [{tuple(a + b for a, b in zip(k, term)): sign * v for k, v in cell.items()} for cell in row] + for side in ('left', 'right'): + matrix = [[Q(i == j) for j in range(32)] for i in range(32)] + for e in word['boundaries'][side + '_program']: + if e[0] == 'SWAP': matrix[e[1]], matrix[e[2]] = matrix[e[2]], matrix[e[1]] + elif e[0] == 'SCALE': matrix[e[1]] = [Q(e[2]) * x for x in matrix[e[1]]] + else: + need(e[0] == 'ADD', 'Boundary scalar opcode') + matrix[e[1]] = [x + Q(e[3]) * y for x, y in zip(matrix[e[1]], matrix[e[2]])] + need(matrix == [[Q(x) for x in row] for row in word['boundaries'][side]], 'Exact scalar boundary program') + rows = [[{zero: Q(x)} if Q(x) else {} for x in row] for row in word['boundaries']['right']] + for e in word['physical_events']: + if e[0] in ('LOCAL', 'QUERY_SHEAR'): + _, stage, pair, back = e + x, y = 2 * pair, 2 * pair + 1 + if back: x, y = y, x + term = (1 if back else -1,) + (0,) * 33 + for dst, src in zip(rows[y], shifted(rows[x], term)): + plus(dst, src, Q(-1 if back else 1)) + if e[0] == 'LOCAL': + term = (0,) + tuple(int(s == stage) for s in range(33)) + for r in (x, y): rows[r] = shifted(rows[r], term) + elif e[0] == 'IDLE': + term = (0,) + tuple(int(s in e[2]) for s in range(33)) + for r in (2 * e[1], 2 * e[1] + 1): rows[r] = shifted(rows[r], term) + elif e[0] == 'ADD': + for dst, src in zip(rows[e[1]], rows[e[2]]): plus(dst, src, Q(e[3])) + else: + need(e[0] in ('SWAP', 'SIGNED_SWAP'), 'Controller physical opcode') + rows[e[1]], rows[e[2]] = rows[e[2]], shifted(rows[e[1]], zero, -1 if e[0] == 'SIGNED_SWAP' else 1) + out = [[{} for _ in range(32)] for _ in range(32)] + for i, row in enumerate(word['boundaries']['left']): + for k, q in enumerate(row): + if Q(q): + for j in range(32): plus(out[i][j], rows[k][j], Q(q)) + expected = [[{tuple(word['diagonal'][i]): Q(1)} if i == j else {} for j in range(32)] for i in range(32)] + need(out == expected, 'All p16 Laurent coefficients, central signs and boundary factors') + return word + + +def assemble(native, word): + T, P = Counter(), Counter() + orientations = Counter(); thin = 0 + for e in word['physical_events']: + if e[0] == 'LOCAL': + direction = 'backward' if e[3] else 'forward' + orientations[direction] += 1 + T.update(native[direction]['helpers']); P.update(native[direction]['paid']) + elif e[0] == 'QUERY_SHEAR': thin += 1; P[1] += 112 + elif e[0] == 'IDLE': P[8 * len(e[2])] += 224 + main = Counter() + for term in word['diagonal']: + need(term[0] in (-1, 1) and all(x in (0, 1) for x in term[1:]), 'Whole Gaussian main target') + main[1 + 8 * sum(term[1:])] += 112 + T.update(main) + need(orientations == {'backward': 16, 'forward': 2} and thin == 15, 'Every actual call orientation') + # This second census uses the source invoice and the two local deltas. + check_T = Counter({int(r): n for r, n in word['invoice']['main'].items()}) + check_T.update({r: 18 * n for r, n in OLD_HELPERS.items()}); check_T[9] -= 16 + check_P = Counter({int(r): n for r, n in word['invoice']['whole_idle'].items()}) + check_P.update({r: 18 * n for r, n in OLD_PAID.items()}); check_P[1] += 1680 - 16; check_P[8] -= 16 + need(T == check_T and P == check_P, 'Independent full invoice substitution') + need(sum(T.values()) == 10912 and sum(P.values()) == 64372, 'Complete productive and paid counts') + need(sum(r * n for r, n in T.items()) - sum(r * n for r, n in P.items()) == 752, 'Unchanged complete rank surplus') + return T, P + + +def run(native): + word = controller(); T, P = assemble(native, word) + prior = read(ROOT / 'research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json') + need(Q(prior['kappa']) == PREVIOUS and Q(prior['raw_root_interval'][1]) == OLD_ROOT_UPPER, 'Pinned prior conditional bound and raw crossing') + prior_T = Counter({int(r): n for r, n in prior['targets'].items()}) + prior_P = Counter({int(r): n for r, n in prior['paid'].items()}) + prior_T[9] -= 16; prior_P[1] -= 16; prior_P[8] -= 16 + need(T == prior_T and P == prior_P, 'Complete delta from the final PR4610 bill') + E = load('research/higher-moment-strictification/verify.py', 'owned_relation_intervals') + other = load('research/kappa-rebuild/architecture/mixed_target_probe.py', 'owned_relation_second_intervals') + def margin(c): + t, p = E.moment(T, 1 - c), E.moment(P, 1 - c) + return t[0] - p[1], t[1] - p[0] + need(margin(OLD_ROOT_UPPER)[0] > 0, 'Changed invoice beats the prior raw root upper endpoint') + lo, hi, grid = 0, 10**12, 10**14 + while hi - lo > 1: + mid = (lo + hi) // 2 + if margin(Q(mid, grid))[0] > 0: lo = mid + else: hi = mid + root_low, root_high = Q(lo, grid), Q(hi, grid) + need(margin(root_low)[0] > 0 and margin(root_high)[1] < 0, 'Strict rational root enclosure') + need(PREVIOUS < KAPPA < TESTED < root_low, 'New bound and explicit compiler headroom') + # The complete signed profile decreases on [0, .05], and stays negative + # on [.05, 1]. This proves a fixed-profile ceiling, not a circuit ceiling. + signed = {r: T[r] - P[r] for r in T.keys() | P.keys()} + derivative, upper = None, None + for i in range(16): + l, r = Q(i, 320), Q(i + 1, 320); low = Q(0) + for rank, n in signed.items(): + term = E.mul(E.power(rank, 1 - r if n > 0 else 1 - l), E.log_bounds(rank)) + low += n * term[0 if n > 0 else 1] + derivative = low if derivative is None else min(derivative, low) + for i in range(128): + l, r = Q(1, 20) + Q(19 * i, 2560), Q(1, 20) + Q(19 * (i + 1), 2560) + value = sum(n * E.power(rank, 1 - l if n > 0 else 1 - r)[1 if n > 0 else 0] for rank, n in signed.items()) + upper = value if upper is None else max(upper, value) + need(derivative > 0 and upper < 0, 'Fixed-profile ceiling on all 0 < kappa < 1') + t, u, v, c, b = 1 - TESTED, Q(1, 5), 1024, 20, 21 + target, paid = E.moment(T, t), E.moment(P, t) + tl, th = other.moment(T, TESTED); pl, ph = other.moment(P, TESTED) + need(tl > ph and max(tl, target[0]) <= min(th, target[1]) and max(pl, paid[0]) <= min(ph, paid[1]), 'Two exact interval engines agree') + alpha = E.divide(paid, target) + gamma = E.divide(E.moment(P, t + u), E.mul(E.power(c, u), target)) + delta = E.divide((Q(sum(T.values()) * b),) * 2, E.mul(E.power(c, TESTED), target)) + reserve = Q(1, 10**9); g = d = Q(97, 100) + need(alpha[1] < 1 - reserve and gamma[1] < g and delta[1] < d, 'Original and completion tails charged') + need(g**128 < Q(1, 16) and d**128 < Q(1, 16), 'Two strict tail decay blocks') + normalized = 1 / (1 + v * reserve) + Q(4, 2**32) + need(normalized < 1 and c**64 < b**63, 'Paid completion, splitting and rounding') + theta, power = Q(63, 64), 1000 + eta = E.scale(E.power(145, -v * TESTED), t) + need(2 * (20**v)**64 <= (145**v)**63 and eta[0] > theta**power, 'Shifted exits and complement capacity') + need(E.power(145, v * TESTED)[1] < 2**power, 'Compiler initial range') + gap = (TESTED - KAPPA) / 7; need(gap.numerator == 1, 'Finite integer grid') + step = gap.denominator + def wins(j): return (step * j + 1)**power < 2**j + left, right = 1, 2 + while not wins(right): left, right = right, 2 * right + while right - left > 1: + mid = (left + right) // 2 + if wins(mid): right = mid + else: left = mid + height = step * right + need(height > 8 * v and wins(right) and not wins(right - 1), 'Finite uniform-rank threshold') + local_scalar = max(x['real_scalar_allowance'] for x in native.values()) + # The old route allowance is retained. Charge two additional owned field + # lifetimes at two routes each, even though L230 uses an existing slot. + routes = (max(sum(x['paid'].values()) for x in native.values()) + 2 * 408 + 688 + 4) * 1000 + need(local_scalar + routes < 10**7, 'All new preparation, COPY, CLEAR and fixed routes fit') + scalar_upper = 18 * 10**7 + 15 * 1792 + 32 * 112 * (len(word['physical_events']) + sum(len(word['boundaries'][k + '_program']) for k in ('left', 'right'))) + need(scalar_upper < 10**9, 'Complete raw nonrecursive bound') + bit = read(ROOT / 'research/query-thinned-controllers/RESULT.json')['ordinary_BIT'] + atom = Q(bit['atom']); ordinary = (1 - atom) * Q(bit['after_cover']) + atom * Q('.0000384599'); admitted = Q(bit['admitted']) + need(atom == Q('.004') and atom > ordinary > admitted > TESTED and atom < 1 - ordinary, 'Retained stronger BIT admission and stock') + L = load('research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py', 'owned_relation_outer') + params = {'kappa': KAPPA, 'tested_saving': TESTED, 'complex_uniform_saving': KAPPA + 6 * gap, + 'b': KAPPA + 5 * gap, 'a': KAPPA + 4 * gap, 'q': KAPPA + 3 * gap, 'bit_saving': admitted, + 'epsilon': 1 - gap, 'beta': 1 - 3 * gap, 'r0': gap / 10, 'stop': gap, 'layout': gap, 'd': gap} + outer = L.ledger(params); outer['functional_checks']['actual_new_BIT_stock_sublinear'] = params['beta'] * (1 - atom) + need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 4, 'Complete outer predicate inventory') + need(all(x > 0 for key in ('strict_checks', 'functional_checks') for x in outer[key].values()), 'Every outer inequality is strict') + controls = {} + for name, patch in [('old_BIT', {'bit_saving': Q('.0027')}), ('closed_uniform', {'complex_uniform_saving': params['b']}), ('unfunded_endpoint', {'kappa': TESTED}), ('closed_epsilon', {'epsilon': Q(1)})]: + bad = L.ledger(dict(params, **patch)); failed = [k for k, x in bad['strict_checks'].items() if x <= 0] + need(failed, 'Reject outer patch ' + name); controls[name] = failed + bad_native = {d: dict(x) for d, x in native.items()} + bad_native['backward']['helpers'] = OLD_HELPERS + try: assemble(bad_native, word) + except ValueError: controls['unearned_helper_credit'] = 'Rejected by the independent complete census' + else: raise ValueError('Unowned helper credit was accepted') + return encode({'kappa': KAPPA, 'kappa_decimal': '.00302235', 'gain_over_PR4610': KAPPA - PREVIOUS, + 'raw_root_interval': [root_low, root_high], 'raw_headroom': [root_low - KAPPA, root_high - KAPPA], + 'margin_at_previous_kappa': E.display(margin(PREVIOUS)), + 'margin_at_previous_root_upper': E.display(margin(OLD_ROOT_UPPER)), + 'fixed_profile_ceiling': {'decreasing_through': Q(1, 20), 'derivative_upper': E.display((-derivative,) * 2), 'remaining_interval_moment_upper': E.display((upper,) * 2)}, + 'targets': T, 'paid': P, 'productive_fields': sum(T.values()), 'paid_calls': sum(P.values()), 'rank_mass_surplus': 752, + 'full_backward': 16, 'full_forward': 2, 'query_shears': 15, + 'strictification': {'tested': TESTED, 'power': v, 'cutoff': c, 'floor': b, 'tail_offset': u, 'reserve': reserve, 'alpha': E.display(alpha), 'gamma': E.display(gamma), 'delta': E.display(delta), 'normalized_paid_upper': normalized}, + 'compiler': {'theta': theta, 'logarithm_power': power, 'eta': E.display(eta), 'gap': gap, 'uniform_saving': params['complex_uniform_saving'], 'H': height, 'N': '2^' + str(height), 'integer_test_exponent': right, 'word_materialized': False}, + 'nonrecursive': {'local_scalar': local_scalar, 'local_routes': routes, 'raw_scalar_upper': scalar_upper, 'raw_budget': 10**9, 'additional_private_slots': 1, 'owned_slots_backward': 3}, + 'ordinary_BIT': bit, 'outer': outer, 'negative_controls': controls}) diff --git a/research/owned-relation-independent-validation/engines/physical/pinned/selected-current.json b/research/owned-relation-independent-validation/engines/physical/pinned/selected-current.json new file mode 100644 index 0000000000..b288ae4403 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/physical/pinned/selected-current.json @@ -0,0 +1,92 @@ +{ + "status": "Selected maintainer-reviewed conditional PR4610 construction, with independent PR5241 admission evidence and explicit inherited foundation reuse", + "kappa": "15108879/5000000000", + "decimal": "0.0030217758", + "source_prs": [ + 4610, + 5241, + 4470, + 4447, + 4441, + 4440, + 4416, + 4433, + 4359, + 4268, + 3945, + 4085, + 2979, + 4076, + 4088, + 1673, + 1758, + 1786, + 23, + 555, + 589 + ], + "source_manifest": "certificates/frontier4610-source.json", + "certificate": "certificates/frontier4610/CLAIM.json", + "certificate_sha256": "c48376a8365a4c7b67adb368bafa128bede4cd5589a41fa276f96a350d45606c", + "proof": "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "proof_supplements": { + "notes/batched-bit-rows.tex": "ef72c0ead19373cbc19c8a3aacb44dd0f75353ee5f4d055f775a986a4878022c", + "notes/batched-complex-rows.tex": "64c70926a8705874f1c9b42a2f703e42cad4e90f927f544458cfdf729540236c", + "notes/compact-control-movement.tex": "b963c3d2f4e1b7059aa289bb4b4ac89b688920bcf42f5b20d7698cdef0132cc6", + "notes/general-clifford-frames.tex": "c9bb9655b594583c6b4bab8cb485233f1d1e588f83858cf1e4c3530cee8fed54", + "notes/stopped-product-complex.tex": "4738089103a4b263b3b0ef458f5ef35519c696f1ea871ae79e508d3720f5870a", + "notes/three-stage-cover-bit.tex": "47123a756f823c83a0d48cca2bf5add6472cd88410b13aed345e70c8834fb511", + "notes/three-stage-cover-rows.tex": "6ad97a5cd7d6aecf978a81226e1c2763d37840caca130c61f3bf5c4ac111c5c8", + "references/semantic-bulk/pr23/semantic-bulk-17-note.tex": "652242b05174bb776ffc6165af170df9c8cf220dbd0fc26c24d778f320dbabc8", + "research/e8-bit-carrier-skeleton/code/bit/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "research/e8-bit-carrier-skeleton/code/nine/geometry.py": "36eeda3184bd009e89462b65c8725d10860c444f8da8f1f87e5f6e50120011ca", + "research/e8-bit-p111-tuned/code/gen_p3.py": "438b83f10d70ceca7cf78049420204b7de2dc61682f913c50a62596106ad84cd", + "research/e8-bit-p111-tuned/code/xcheck_p.py": "af3decc877e27c00001cf56f50c6c09566e8e101297ab34c7860aed96a06d80e", + "research/e8-bit-p111-tuned/tune/EXPECTED.json": "b9f0e5ca038abe837b0007c8fe006f366a6f02009244ac57705a8a200e2301f4", + "research/e8-bit-p111-tuned/tune/apply.py": "806ae4cb2648e4f05dcf56bd089891fd3ba33a6ee5fe76d3329e322c6770c1a1", + "research/e8-bit-p111-tuned/tune/wlib.py": "a37fdf3cdf5f62945c2a90193401c0e9edc9dd3cda8d8cb36a3b9c329ebe4dbc", + "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "docs/research/pr-intake-evidence/pr4359/PROOF-REVIEW.md": "7d67bb814285f7634029fbd378c6457156545f0b38858cc1c6ec34b68cd9d162", + "docs/research/pr-intake-evidence/pr4470/PROOF-REVIEW.md": "5c111dd56beb53dc44ab727d96e1af03aaf50f3023d4342e2b0a89ede6cf585b", + "docs/research/pr-intake-evidence/pr4416/PROOF-REVIEW.md": "2c2bbe6fe1bab44778192118f27e59a0d23dbe02c47aa8a42845093f1ce46f49", + "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md": "b84f833e3072cbab372fbda2ece98fbc031c15e590cf73003ddea35a5222e148", + "research/final4610-independent-admission/PROOF.md": "e573cbbe6fa5481c0533e773de404e10f4dc7907b5ebfe404bdcd02dcf9844d8", + "research/final4610-independent-admission/SPECIALIZATION.md": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c" + }, + "review": "docs/research/pr-intake-evidence/pr4610/PROOF-REVIEW.md", + "validation": "docs/research/pr-intake-evidence/pr4610/VALIDATION.json", + "integration": "docs/research/pr-intake-evidence/pr4610/INTEGRATION.json", + "reproduce": "make frontier4610-verify", + "scope": "Maintainer-reviewed conditional PR4610 construction using the PR5241 independent audit. The five PR4470 framework assumptions are unchanged. Uniform words are not materialized.", + "previous_kappa": "60403/20000000", + "previous_record": "certificates/checkpoints/frontier4470.json", + "audited_source_head": "20bb93cd990d2ff683e4d0fc56b87a42cd5d3296", + "source_certificate": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "source_certificate_sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "replay_mode": "Fresh complete independent admission replay; source-bound preceding controller, ordinary BIT and physical/compiler foundation reuse", + "contributors": "docs/research/community-native4610-contributors.md", + "assumptions": [ + { + "id": "native_all_columns", + "statement": "Retained native operators, phase conventions, spectators and whole-job adapters work at every positive column multiplicity." + }, + { + "id": "owned_erasure", + "statement": "Owned streams and suspended centers obey the retained allocation, erasure and ownership contracts." + }, + { + "id": "compiler", + "statement": "The finite mixed-target compiler and chronological product, completion and splitting satisfy the retained uniform closure contract." + }, + { + "id": "precision_tape", + "statement": "Retained fixed-tape movement and precision/storage prescriptions apply to the new fixed finite template." + }, + { + "id": "analytic_recovery", + "statement": "Analytic decomposition, fine-prime avoidance and exact integer recovery follow the retained upstream/outer framework." + } + ], + "audit_pr": 5241, + "audit_head": "13efb5fc5f3b7c14ec2cfa181dd9eb6480972cf2" +} diff --git a/research/owned-relation-independent-validation/engines/physical/pinned/source4610-SPECIALIZATION.md b/research/owned-relation-independent-validation/engines/physical/pinned/source4610-SPECIALIZATION.md new file mode 100644 index 0000000000..7ee84b3089 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/physical/pinned/source4610-SPECIALIZATION.md @@ -0,0 +1,130 @@ +# P1: specialize the selected physical grammar to final #4610 + +This note proves a conditional **specialization**, not a new physical primitive theorem. Let H_selected denote precisely the native normal-form, compact movement/repair, scalar/owned-storage, completed-call, fixed-tape and outer hypotheses retained by selected #4470 through its reviewed #4359/#4416 lineage. Under H_selected, the actual final #4610 catalogue is an instance of that same physical grammar, with newly counted fixed constants. The proof does not introduce a separate assumption that the new recipes work. + +Candidate #4610 is Cao Yifan/intqwq's existing construction, head `20bb93cd990d2ff683e4d0fc56b87a42cd5d3296`, final local-word payload `cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`. Pinned canonical source is `ec2780e8aeb1c88acaf5e9e470ef8c68e7fbbb6c`. Selected #4470 remains .00302015; this note does not modify selection or claim construction/gain priority. Exact source bytes, including the following premise texts, are bound in `SOURCES.json`. + +## 1. The selected premise already quantifies over the required class + +The premises used here are the following statements in the selected source closure, with their original physical qualifications retained: + +1. `notes/general-clifford-frames.tex`, “Exact representatives and nested children”: for an arbitrary binary subspace U and deterministic invertible basis extension G, the exact Gaussian-dyadic K_G and its conjugate by F have rank zero and are fixed binary address permutations with unit quadratic phases. For **every** nested U subset V, the exact transition is two rank-zero adapters around a positive coordinate C child. Exact phases and finite movement/scalars are charged. The statement is not restricted to the selected word's list of old frame labels. +2. `notes/compact-control-movement.tex`, “Compact-control selected-bit addition” and “Application to a fixed binary change of basis”: either ordering of two complete slots admits exact selected-bit row addition with restored arbitrary temporary fields; a fixed binary basis change is a fixed number of such additions. The fixed-tape bound is `O(V*((e*log p)^tau+1))`, including repair and descriptor work, under the stated complete-field reservations and record-size hypotheses. Constants and cutoffs are uniform within each fixed parameter family. +3. Selected #4359 `PROOF-REVIEW.md` section2: free-word evaluation allows arbitrary positive column multiplicity by substituting lifted generators, separately tensor-lifting exact paid/helper factorizations. Absolute monomial phase is `a*f+sum q(x_j)`. Helpers are normalized only after their autonomous completed endpoint. Section3 explicitly permits fixed template matrices/matchers to change dimensions/counts/constants while retaining the same movement exponent and tape uniformity. Section4 separately pays address permutations and unit phases and replaces semantic precision constants. +4. Selected #4416 `PROOF-REVIEW.md` section2: exact whole-job normal forms use independent **two-sided** recorded factors. They need not be an inverse pair. Canonicalize the complete job, place its axes by a charged coordinate matcher, execute the child, and restore the prescribed adapters before resuming its parent. Distinct physical owners and separate live centers are preserved. +5. Selected #4470 `PROOF-REVIEW.md` sections1–3 applies these rules to new actual helper normalizers, paid transports, p16/query/idle events and their new finite scalar/route/owner/precision constants. The retained conditions include all-column implementation, whole-job adapters, owned erasure, fixed-tape movement, precision and outer hypotheses. + +Consequently the permitted class is generic fixed finite Gaussian-dyadic monomial/positive-child programs with the stated arbitrary-owner and spectator ABI. It is not the stronger assertion that an arbitrary RAM gather or arbitrary address function is cheap. The reduction below uses only the selected binary row-addition/ordered-movement operations, finite unit phases and the same scalar/child/owned alphabet. + +## 2. A constructive grammar for every actual monomial + +Use the source's exact composition convention. A record m has invertible binary matrix A of size9, affine offset b, constant a modulo4, linear coefficients alpha_i modulo4 and symmetric binary quadratic matrix Q, with `alpha_i mod2=Q_ii`. On a basis address x it acts as + +``` +|x> -> i^(a+q(x)) |A*x xor b>, +q(x) = sum_i alpha_i*x_i + 2*sum_(i A*x_j xor b for every j, +phase = a*f + sum_(j=1..f) q(x_j) (mod4). +``` + +Apply the finite row-addition list to the corresponding pair of complete f-axis slots, and use the pointwise residue above. Each selected slot is a full range; arbitrary intervening, preceding and following spectator fields remain present. The temporary complete compact fields are returned by each addition. Thus the lift is exactly m tensor-powered f, acting as identity on the other address fields. It uses one fixed list of primitive **types/operations**, rather than f separately allocated tapes. Its per-record descriptor arithmetic is polynomial in the same selected address bound, and the number of work tapes stays fixed for the template. + +For a recorded positive-rank recipe, source equality is the ordered product `right.then(C_r).then(left)`. Tensoring this product gives `right_f.then(C_(r*f)).then(left_f)` after the fixed coordinate reordering. This is one ordinary positive rank-r*f child on the actual owner's full stream, with its input and output monomials independently retained. Inverse orientation and Pauli corrections are included by the actual signed recipes. No identity distributes a tensor power over a matrix sum. + +For the scalar word itself, use selected #4359's free-word substitution theorem: replace each warp generator by its f-column lift while leaving ADD/SCALE coefficients and chronology unchanged. This is an algebra homomorphism from the noncommuting free-word algebra; hence the already checked arbitrary-input word identity survives. The scalar program is not itself tensor-powered. Keeping a single constant phase a instead of a*f would violate the lift; a negative control explicitly distinguishes that mutation at f=2. + +The ideal algebraic lift holds for every positive f. Its physical tariff applies only in the selected source domain: f<=p, A=O(p), K/log p tending to infinity, and a superpolynomial record fiber. In the actual layer f<=e<=floor(b_in^epsilon) and p=6*b_in eventually. No tariff is extrapolated to arbitrary independent f,p/geometry. The compact-control parameter hypotheses are unchanged: f slots, complete dirty reservations, `A=O(p)`, record fiber beyond fixed powers, and the same selected movement exponent. The final uniform template may have much larger fixed dimensions and operation counts. That changes constants and thresholds through section6 below, rather than changing these quantifiers or creating a new tape per coordinate. + +## 4. Exhaustive family/owner specialization + +The executable source census is over the actual final payload, not its proposed histogram. It classifies every event in both21449-record orientations, and checks exact scalar coefficients/opcodes/chronology against the selected THREE-base word. Main charts on all224 persistent main owners are exact retained records. Every scalar target/source belongs to the632 declared persistent owners or the one declared owned C0. Clear and overwrite COPY target only C0; ADD arguments are distinct owners; no new borrowed owner, alias or productive C0 is introduced. + +| Actual family | Membership/coverage | Selected physical interpretation | +| --- | --- | --- | +| 180 signed warp classes,240 occurrences | Each actual G is invertible; both signed recipes have rank0;800new monomial records cover this and the changed families below | Fixed affine binary permutation and unit quadratic phase from section2; same all-f native generator | +| 3290 borrowed climbs per orientation | Actual source/target bases strictly nested, correct current owner/frame and rank | The selected arbitrary-U-subset-V factorization: two rank-zero adapters and one positive rank-r*f child | +| Eight center calls per orientation | Actual nested comparable bases, owned C0 only, all eight rank8 jobs billed | Same positive child plus signed adapters; no productive credit, no allocation of a new arbitrary input | +| 408 helper endpoints | Actual strict nested entrance/exit, profile `{4:28,7:7,8:47,9:326}` | Complete two-sided normal form on each distinct arbitrary input field; no internal scalar reframing shortcut | +| 448 main entrance/exit charts | Exact event equality with retained base main charts | Source-identical selected chart/axis interface, with its retained charge | +| 17453 scalar records per orientation | Exact old opcode/coefficient sequence, dyadic grammar and current-frame checks | Retained ADD, dyadic unit SCALE, owned COPY/CLEAR; identical scalar tariff | +| Ten phase labels | Fixed annotations, no new physical instruction | Existing scalar-word scope boundaries; not extra outputs or uncharged operators | + +Exact factorization equality and arbitrary-input endpoints are independently established by the admission dossier's native/phase replays, not by a syntactic schema. This module supplies the missing **physical class implication** for those exact factors. The new phase receipt covers180signedwarp classes,105newpaid pairs and5changedhelper pairs. The382 unchanged helpers are bound to the selected #4470 phase receipt through gain_acceptance's exact ordered-basis/owner lineage;26changed helpers use the new five-pair receipt. The independently replayed all2855paid-pair factorization module supplies the full actual paid-pair coverage. These coverage claims remain separate from this module's fresh class/census checks. + +For owned return, the local word retains one physical C0 and ends its C0 updates with a permitted erase. The existing arbitrary-input native proof establishes completed main/helper endpoints and C0 clearance. During product/compiler substitution, each suspended local occurrence receives its own center bank; all child inputs are distinct actual fields, even when values are correlated or one input is a parent's center. The child finishes and its adapters/role ordering return **before** the parent resumes. The parent clears only its own bank after its last use. Every such bank is excluded from productive W and included in full O. This is exactly the selected compiler ownership rule; no one-bank-per-depth reuse or undeclared initialized input is used. + +## 5. Finite raw tariffs in the selected unit + +The tariff unit here is a retained elementary scalar/movement/phase **record**, each realized with the selected physical primitive's asymptotic bound. It is not one literal tape instruction and does not suppress the f-dependent movement bound. Choose the same common upper unit for the fixed primitive alphabet as in the selected finite-word accounting. Each new two-sided nine-axis recipe has at most342 elementary records, below the retained conservative1000-per-group allowance. Unchanged main charts retain their selected count/unit. The selected primitive implementation constants, record-paid setup, scans and repair remain paid in that common physical unit. Changing the finite catalogue does not require a new asymptotic movement assumption. + +The actual local route groups are + +``` +3298 paid jobs + 2*408 helper wrappers + 240 warps + 448 main charts + = 4802 groups, +4802*1000 = 4,802,000. +``` + +The source scalar allowance formula, reimplemented directly without importing its evaluator, gives158120 forward and158168 backward. Therefore + +``` +158168 + 4802000 = 4960168 < 10^7. +``` + +This is an instantiation of the selected raw-unit bound with a smaller changed paid count, not reuse of an old expanded compiler cap. The controller remains18full calls and15thin queries, with the exact retained physical-event and boundary programs. The complete source raw bound is + +``` +18*10^7 + 15*1792 + + 32*112*(#physical_events + #left_boundary_program + #right_boundary_program) + = 181098496 < 10^9. +``` + +Each thin query's paid rank-one request, owned copy/add/erase and inverse orientation remain in the source invoice. Idle jobs, main normalizations, inherited controller geometry and actual exact phase bills remain charged. No local or controller charge is credited as a new productive output. These numerical bounds concern **raw** supplier records only; they are not the expanded uniform word's operation count, storage or literal physical runtime. + +## 6. Expanded compiler, precision and tape constants + +Apply the selected chronological product, same-owner paid completion, disjoint splitting and integer finite compiler to this now-specialized raw program. The algorithms are finite and only instantiate the same grammar. Their matching uses complete job endpoints and restores adapters, and their owner allocation is the rule just proved applicable. No new movement species occurs when a fixed matcher has a larger fixed rank: binary basis/coordinate permutations have the same finite elimination construction, now with a larger fixed list. + +Let W,P,O be the actual final productive width, paid rank-one count and full owned-bank allocation; let R count the full native/movement/normalizer records, including product, completion, split and compiler routes. Let G be their fresh dyadic coefficient/phase allowance, computed by summing the actual scalar allowances (plus the source's conservative non-scalar charge). These are finite computable integers of the new expanded template. They are fixed before multiplication input size varies. A record-count overestimate and one owned bank per relevant occurrence suffice; no practical materialization or old p3 numerical count is needed. + +Use the **new** values in the selected semantic prescription: + +``` +Z=W+O, +E=64*(Z+N+P+G+1)^3, +B=P+E, +C0=32*N*B^2. +``` + +The selected completed-child argument gives `A(e)<=A(floor(e/N))+P*floor(e/N)+E`, hence `A(e)<=2B*e`. Monomial permutations/unit phases add no coefficient height but do retain their execution/descriptor costs. The new C0 determines a new eventual fine-grid threshold. The compact row reserve, full simultaneous stock products, depth-first parking, fixed tape inventory and polynomial setup degrees also use the new W,P,O,R,N and selected formulas. Fixed enlarged degrees/counts are absorbed by the same retained superpolynomial record fiber and strict outer epsilon<1 after increasing the threshold. In particular, neither raw10^9 nor selected p3/p16 reserve constants stand in for these expanded values. + +Thus P2–P4 can consume a genuine new finite instance of H_selected's grammar and precision/stock/tape prescriptions. This note does not independently prove the historical native movement/repair or outer analytic/recovery stack. Those are exactly the assumptions already retained by selected #4470, with no additional candidate-specific implementation assumption. + +## 7. Conclusion and exact limits + +Given H_selected and the source-bound exact semantic/phase endpoints supplied by the independent native dossier, the final catalogue has permitted explicit all-f realizations, legal actual-owner return, finite raw tariffs and the selected expanded-constant substitution. No extra primitive or changed movement exponent is required. P1 is therefore a **consequence** of H_selected for this instance. It need not be restated as a new hypothesis “the new recipes implement.” + +`checks/specialization.py` runs through the master verifier and its source-authenticated `--repo` working-byte loader; it never substitutes clean Git blobs for dirty inputs. Its new actual catalogue has800monomials with at most83 elementary records each, compared with the uniform171 bound. It also checks1692selected monomial records by the identical schema, exhaustive event/role/rank/scalar census in both orientations, helper geometry, retained main charts, the4802route grouping and raw bounds. Controls reject singular maps, non-Z4 absolute phases, borrowed clear, unpaid rank changes, non-dyadic scalars and an unlifted f=2 global phase. Exact phase/operator equality is intentionally supplied by the separate phase/native verification rather than inferred from membership. + +Credits remain with Cao Yifan/intqwq (#4610), Cinna Davis (#4470/#4416/controller/helper lineage), zxv (#4359/native/compiler/semantic precision), icekylinx and Dugongue (general Clifford/transported frames), Jacob Alan Sussman (mixed integer compiler), and all retained physical/BIT/geometry/analytic contributors. This new specialization/proof/check uses substantial OpenAI assistance. It is a scoped conditional AI verification contribution, not an unconditional multiplication theorem or independent human/kernel acceptance. diff --git a/research/owned-relation-independent-validation/engines/physical/pinned/verify.py b/research/owned-relation-independent-validation/engines/physical/pinned/verify.py new file mode 100644 index 0000000000..b19f7d0ca4 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/physical/pinned/verify.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 +"""Replay the one-relation native word and its complete conditional kappa. + +Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0. +Read README.md for the source credit and inherited proof obligations. +""" +from hashlib import sha256 +import argparse +import gzip +import json +from pathlib import Path +import sys +sys.dont_write_bytecode = True +import native as N +import price + + +def run(): + N.authenticate() + source = N.read(N.ROOT / N.SOURCE) + candidate = N.construct(source) + c = candidate['canonical'] + before, after = {}, {} + for direction in ('forward', 'backward'): + back = direction == 'backward' + before[direction] = N.replay(c, source['programs'][direction], back, False) + after[direction] = N.replay(c, candidate['programs'][direction], back, back) + N.need(before[direction]['paid'] == N.OLD_PAID and before[direction]['helpers'] == N.OLD_HELPERS, 'Pinned source census') + N.need(after[direction]['paid'] == candidate['paid_profiles'][direction], 'Emitted direction-specific paid profile') + helpers = dict(N.OLD_HELPERS) + if back: helpers[9] -= 1 + N.need(after[direction]['paid'] == (N.NEW_PAID if back else N.OLD_PAID) and after[direction]['helpers'] == helpers, 'Actual complete changed native census') + identities = N.independent_source_identities(source) + phase = N.phase_inheritance(source, candidate) + controls = N.controls(c, candidate) + arithmetic = price.run(after) + data = (json.dumps(candidate, sort_keys=True, separators=(',', ':')) + '\n').encode() + result = N.encode({'status': 'PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION', + 'source_payload_sha256': N.PAYLOAD, 'word_payload_sha256': sha256(data).hexdigest(), + 'source_native': before, 'candidate_native': after, 'independent_source_identities': identities, + 'phase_inheritance': phase, 'native_negative_controls': controls, 'arithmetic': arithmetic, + 'scope': 'Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.'}) + return data, result + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--write', action='store_true', help='Write only this package word and result after all checks pass.') + ap.add_argument('--out', type=Path, help='Write a replay result to a separate path.') + args = ap.parse_args() + data, result = run() + if args.write: + (N.HERE / 'WORD.json.gz').write_bytes(gzip.compress(data, mtime=0)) + (N.HERE / 'RESULT.json').write_text(json.dumps(result, indent=2, sort_keys=True) + '\n', encoding='utf-8') + else: + N.need(gzip.decompress((N.HERE / 'WORD.json.gz').read_bytes()) == data, 'Exact literal published word') + N.need(N.read(N.HERE / 'RESULT.json') == result, 'Exact published replay result') + if args.out: + args.out.write_text(json.dumps(result, indent=2, sort_keys=True) + '\n', encoding='utf-8') + print(json.dumps({'status': result['status'], **{k: result['arithmetic'][k] for k in ('kappa', 'gain_over_PR4610', 'raw_root_interval', 'paid_calls', 'productive_fields')}}, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/owned-relation-independent-validation/engines/physical/pinned/verify_buffers.py b/research/owned-relation-independent-validation/engines/physical/pinned/verify_buffers.py new file mode 100644 index 0000000000..5a55034ec9 --- /dev/null +++ b/research/owned-relation-independent-validation/engines/physical/pinned/verify_buffers.py @@ -0,0 +1,351 @@ +#!/usr/bin/env python3 +"""Independent literal native replay with arbitrary dirty cleanup buffers. + +The retained emitter supplies words; this module imports no retained evaluator. +Free warp symbols distinguish primal and inverse-transpose operators. Physical +phase receipts are authenticated inherited evidence, not regenerated here. +Apache-2.0. Substantial OpenAI assistance. +""" +from collections import Counter, defaultdict +from fractions import Fraction +from hashlib import sha256 +from pathlib import Path +import argparse +import ast +import gzip +import json + + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[2] +CORE = ROOT / "research/kappa-native-resume/native-source/rebased-core" +PACKET = ROOT / "research/kappa-native-resume/causal-controller/sources/research/joint-query/certificate.json.gz" +TAGS = ("THREE-base", "THREE-extra", "FOUR-base", "FOUR-extra") +Q = Fraction + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def read(path): + raw = path.read_bytes() + return json.loads(gzip.decompress(raw) if path.suffix == ".gz" else raw) + + +def digest(path): + return sha256(path.read_bytes()).hexdigest() + + +def authenticate(): + pins = read(HERE / "SOURCES.json") + for relative, expected in pins.items(): + need(digest(ROOT / relative) == expected, "Changed retained source: " + relative) + return pins + + +def emit_original(canonical): + """Reuse only the pinned source's pure writer; no source verifier executes.""" + source = CORE / "sources/bw_emit.py" + names = {"basis", "reg", "dual", "scalar", "lregs", "expand", "emit", "primitive_bound"} + tree = ast.parse(source.read_text()) + functions = [n for n in tree.body if isinstance(n, ast.FunctionDef) and n.name in names] + need({n.name for n in functions} == names, "Exact writer function inventory") + context = dict(c=canonical, frames=canonical["frames"], v=112, R=408, h=9, n=632, Q=Q) + exec(compile(ast.Module(body=functions, type_ignores=[]), str(source), "exec"), context) + return {"forward": context["emit"](False), "backward": context["emit"](True)} + + +def span(basis): + points = {0} + for vector in basis: + need(isinstance(vector, int) and 0 <= vector < 512, "Nine-dimensional frame") + points |= {v ^ vector for v in tuple(points)} + return frozenset(points) + + +def identity(role): + return {(role, ()): Q(1)} + + +def add(destination, source, coefficient): + for key, value in tuple(source.items()): + value = destination.get(key, Q(0)) + coefficient * value + if value: + destination[key] = value + else: + destination.pop(key, None) + + +def warp(row, operator, backward): + symbol = (1 if operator > 0 else -1) * (abs(operator) + (10**6 if backward else 0)) + out = {} + for (variable, word), coefficient in row.items(): + moved = word[1:] if word and word[0] == -symbol else (symbol,) + word + key = variable, moved + out[key] = out.get(key, Q(0)) + coefficient + return {k: v for k, v in out.items() if v} + + +def expected(role, R, backward, clean): + out = identity(role) + name, i = role + if name != "L": + return out + target = i < 112 if backward else 112 <= i < 224 + if not target: + return out + port = i if backward else i - 112 + source_offset = 112 if backward else 0 + sign = -1 if backward else 1 + add(out, identity(("L", source_offset + port)), Q(sign)) + if clean: + for query in R: + if port in query: + for j, value in query.items(): + add(out, identity(("L", source_offset + j)), -sign * query[port] * value / 4) + return out + + +def replay(program, canonical, R, backward, clean, omit_cleanup_last=False): + """All L inputs and all Z inputs are independent, including dirty outputs.""" + n = 2 * canonical["v"] + canonical["R"] + need(n == 632, "Retained compact width") + rows = {("L", i): identity(("L", i)) for i in range(n)} + current = {("L", i): frame for i, frame in enumerate(canonical["start"])} + center_indices = set() + for event in program: + if event[0] == "scalar": + op = event[1] + for register in op[1:3] if op[0] in ("add", "copy") else op[1:2]: + if register[0] == "C": + center_indices.add(register[1]) + elif event[0] == "center": + center_indices.add(event[1]) + need(center_indices <= set(range(8)), "Known center workspace indices") + for i in center_indices: + rows["C", i] = identity(("C", i)) + current["C", i] = None + spaces = [span(vectors) for vectors in canonical["frames"]] + dimensions = [len(s).bit_length() - 1 for s in spaces] + need(dimensions[1] == 9, "Cleanup uses the full native frame") + live = set() + profile = Counter() + counts = Counter() + scalar_primitives = 0 + cleanup_start = next(i for i, event in enumerate(program) if event == ["phase", "full_frame_cleanup"]) + last_scalar = max(i for i, event in enumerate(program) if event[0] == "scalar" and i > cleanup_start) + for position, event in enumerate(program): + kind = event[0] + counts[kind] += 1 + if kind in ("climb", "center"): + if kind == "climb": + _, part, index, old, new, rank = event + role = "L", index + need(spaces[old] < spaces[new], "Non-nested or empty paid climb") + else: + _, index, old, new, rank = event + role = "C", index + need(spaces[old] < spaces[new] or spaces[new] < spaces[old], "Center residual is not nested") + need(current[role] == old and rank == abs(dimensions[new] - dimensions[old]), "Paid edge source/rank") + current[role] = new + profile[rank] += 1 + elif kind == "zero_buffer": + _, action, index = event + role = "Z", index + if action == "alloc": + need(role not in rows and role not in live, "Cleanup buffer duplicate") + rows[role] = identity(role) + current[role] = 1 + live.add(role) + else: + need(action == "free" and role in live and current[role] == 1, "Cleanup buffer retirement") + live.remove(role) + elif kind == "warp": + _, role, operator, old, new = event + role = tuple(role) + need(current[role] == old, "Warp entrance frame") + rows[role] = warp(rows[role], operator, backward) + current[role] = new + elif kind == "scalar": + op, frame = event[1:] + target = tuple(op[1]) + if op[0] == "clear": + need(target[0] == "C", "A borrowed input was cleared") + rows[target] = {} + current[target] = frame + scalar_primitives += 1 + continue + need(current[target] == frame, "Scalar target frame") + if op[0] in ("add", "copy"): + source = tuple(op[2]) + need(current[source] == frame, "Scalar source frame") + if op[0] == "copy": + need(target[0] == "C", "Copy overwrites borrowed state") + rows[target] = dict(rows[source]) + scalar_primitives += 1 + continue + coefficient = Q(op[3], op[4]) + need(target != source, "Self-ADD is not a reversible shear") + numerator, denominator = abs(coefficient.numerator), coefficient.denominator + need(numerator and denominator & (denominator - 1) == 0, "Non-dyadic ADD") + scalar_primitives += 3 + numerator.bit_length() - 1 + numerator.bit_count() + denominator.bit_length() - 1 + if not (omit_cleanup_last and position == last_scalar): + add(rows[target], rows[source], coefficient) + else: + need(op[0] == "scale", "Unknown scalar event") + coefficient = Q(op[2], op[3]) + numerator, denominator = abs(coefficient.numerator), coefficient.denominator + need(numerator and numerator & (numerator - 1) == 0 and denominator & (denominator - 1) == 0, + "Nonunit dyadic SCALE") + scalar_primitives += abs(numerator.bit_length() - denominator.bit_length()) + int(coefficient < 0) + if not (omit_cleanup_last and position == last_scalar): + rows[target] = {k: coefficient * v for k, v in rows[target].items()} + else: + need(kind in ("phase", "adapter", "residual_adapter"), "Unknown native event") + need(not live and [current["L", i] for i in range(n)] == canonical["final"], "Retired fields/final frames") + need(dict(profile) == {int(k): v for k, v in canonical["local_profile"].items()}, "Complete paid profile") + mismatches = [] + for role, actual in rows.items(): + wanted = {} if role[0] == "C" else expected(role, R, backward, clean) + if actual != wanted: + mismatches.append({"role": list(role), "unequal_coefficients": sum(actual.get(k, 0) != wanted.get(k, 0) for k in set(actual) | set(wanted))}) + if not omit_cleanup_last: + need(not mismatches, "Native dirty-buffer operator mismatch: " + repr(mismatches[:3])) + else: + need(mismatches, "Missing-cleanup negative control unexpectedly accepted") + buffer_count = sum(role[0] == "Z" for role in rows) + return dict(direction="backward" if backward else "forward", clean_J=clean, + independent_borrowed_input_fields=632+buffer_count, original_data_fields=224, + expected_restored_helpers=408, expected_restored_arbitrary_cleanup_buffers=buffer_count, + explicitly_owned_C_fields_cleared=len(center_indices), event_counts=dict(counts), + paid_profile=dict(sorted(profile.items())), paid_rank_mass=sum(k*v for k,v in profile.items()), + conservative_real_scalar_primitive_allowance=2*scalar_primitives, + all_scalar_frames_checked=True, dyadic_coefficients_and_unit_scales_checked=True, + free_warp_operator_endpoint_matches=not mismatches, + negative_control_omitted_last_cleanup_scalar=omit_cleanup_last, + mismatch_examples=mismatches[:3]) + + +def liveness(canonical): + times = defaultdict(list) + for i, event in enumerate(canonical["cleanup"]): + for role in event[1:3] if event[0] == "add" else event[1:2]: + role = tuple(role) if isinstance(role, list) else ("L", role) + times[role].append(i) + full = [i for i, f in enumerate(canonical["final"]) if f == 1] + candidates = [] + for z in canonical["zero_buffers"]: + begin, end = min(times["Z", z]), max(times["Z", z]) + possible = [i for i in range(112) if all(t < begin or t > end for t in times["L", i])] + candidates.append(dict(buffer=z, first_use=begin, last_use=end, + noninterfering_same_call_X_candidates=possible, + noninterfering_full_frame_L_candidates=[i for i in full if all(t < begin or t > end for t in times["L", i])])) + return dict(full_frame_live_roles=len(full), full_frame_roles_unused_in_cleanup=[i for i in full if not times["L", i]], + same_call_X_outputs_touched=sum(bool(times["L", i]) for i in range(112)), + buffers_with_no_noninterfering_same_call_X=sum(not row["noninterfering_same_call_X_candidates"] for row in candidates), + buffers_with_no_noninterfering_full_frame_L=sum(not row["noninterfering_full_frame_L_candidates"] for row in candidates), + intervals=candidates, + conclusion="Arbitrary-buffer restoration does not establish a legal same-call completed-output alias.", + external_same_frame_bank_requirement=91, + external_bank_hosting_constructed=False) + + +def find_aliases(canonical): + """Injective lifetime-safe matching; no native L access during its Z span.""" + options = {row["buffer"]: row["noninterfering_full_frame_L_candidates"] + for row in liveness(canonical)["intervals"]} + owner = {} + + def augment(z, seen): + for role in options[z]: + if role in seen: + continue + seen.add(role) + if role not in owner or augment(owner[role], seen): + owner[role] = z + return True + return False + + for z in sorted(options, key=lambda z: (len(options[z]), z)): + augment(z, set()) + bindings = {z: role for role, z in owner.items()} + need(len(set(bindings.values())) == len(bindings), "Alias must be injective") + need(all(role in options[z] for z, role in bindings.items()), "Interfering alias") + return bindings + + +def alias_program(program, bindings): + """Replace only Z register operands, retaining every native/scalar event.""" + out = [] + + def mapped(role): + return ["L", bindings[role[1]]] if role[0] == "Z" and role[1] in bindings else list(role) + + for event in program: + if event[0] == "zero_buffer" and event[2] in bindings: + continue + if event[0] == "scalar": + op = event[1].copy() + op[1] = mapped(op[1]) + if op[0] in ("add", "copy"): + op[2] = mapped(op[2]) + out.append(["scalar", op, event[2]]) + elif event[0] == "warp": + out.append([event[0], mapped(event[1]), *event[2:]]) + else: + out.append(event) + return out + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--output", type=Path, default=HERE / "RESULT.json") + args = parser.parse_args() + pins = authenticate() + R = [{int(k): Q(v) for k, v in row.items()} for row in read(PACKET)["R_rows"]] + providers = {} + for tag in TAGS: + providers[tag] = {} + for clean in (False, True): + folder = "converted" if clean else "sources" + canonical = read(CORE / folder / (tag + "-CANONICAL.json.gz")) + programs = read(CORE / folder / (tag + "-NATIVE-WORD.json.gz")) if clean else emit_original(canonical) + checks = [replay(programs[direction], canonical, R, direction == "backward", clean) + for direction in ("forward", "backward")] + bindings = find_aliases(canonical) + aliases = {direction: alias_program(program, bindings) for direction, program in programs.items()} + aliased_checks = [replay(aliases[direction], canonical, R, direction == "backward", clean) + for direction in ("forward", "backward")] + need(len(bindings) == 53, "Expected source-bound 53-field lifetime match") + for original, aliased in zip(checks, aliased_checks): + need(original["paid_profile"] == aliased["paid_profile"] and + original["conservative_real_scalar_primitive_allowance"] == aliased["conservative_real_scalar_primitive_allowance"], + "Aliasing changes the charged operation list") + providers[tag]["clean_J" if clean else "ordinary"] = dict(checks=checks, liveness=liveness(canonical), + lifetime_alias_bindings={str(z): role for z, role in sorted(bindings.items())}, + aliased_checks=aliased_checks, + eliminated_cleanup_fields=len(bindings), remaining_cleanup_fields=91-len(bindings), + aliased_word_sha256={direction: sha256(json.dumps(program, sort_keys=True, separators=(",", ":")).encode()).hexdigest() + for direction, program in aliases.items()}) + print("PASS all arbitrary cleanup inputs", tag, flush=True) + canonical = read(CORE / "converted/THREE-base-CANONICAL.json.gz") + programs = read(CORE / "converted/THREE-base-NATIVE-WORD.json.gz") + controls = [replay(programs[direction], canonical, R, direction == "backward", True, True) + for direction in ("forward", "backward")] + result = dict(schema="literal-native-dirty-buffers/1", status="PASS_NATIVE_ARBITRARY_DIRTY_BUFFER_REPLAY", + new_multiplication_kappa=False, physical_phase_generation_rerun=False, + phase_evidence="Pinned inherited exact native phase receipts; unchanged native edges.", + source_hashes=pins, verifier_sha256=digest(Path(__file__)), providers=providers, + negative_controls=controls, + lifetime_safe_local_full_frame_aliases_per_word=53, + remaining_external_bank_fields_per_word=38, + all_91_local_output_alias_claim=False, external_bank_placement_and_cost_closed=False) + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(json.dumps(result, indent=2) + "\n") + print(result["status"], flush=True) + + +if __name__ == "__main__": + main() diff --git a/research/owned-relation-independent-validation/evidence/cold/BOUNDED-REGISTERED-RUN.json b/research/owned-relation-independent-validation/evidence/cold/BOUNDED-REGISTERED-RUN.json new file mode 100644 index 0000000000..769e26fd3a --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cold/BOUNDED-REGISTERED-RUN.json @@ -0,0 +1,7533 @@ +{ + "status": "PASS_COMPLETE_REGISTERED_NORMAL_AND_OPTIMIZED", + "argv": [ + "/usr/bin/python3", + "-B", + "scripts/research_package.py", + "--package", + "research/kappa-owned-relation-20261023" + ], + "cwd": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/owned-relation-5377-cold-validation-20261024/snapshot", + "exit": 0, + "resource_stop": null, + "seconds": 94.34425078798085, + "peak_sampled_descendant_rss_kib": 153572, + "total_timeout_seconds": 1260, + "rss_limit_kib": 1048576, + "per_registered_command_timeout_seconds": 600, + "scientific_bytes_changed": [], + "hash_inventory_files": 24, + "samples": [ + { + "seconds": 0.0012410939671099186, + "rss_kib": 868, + "pids": [ + 3 + ] + }, + { + "seconds": 0.10153685900149867, + "rss_kib": 28324, + "pids": [ + 3, + 4 + ] + }, + { + "seconds": 0.2021228409721516, + "rss_kib": 41044, + "pids": [ + 3 + ] + }, + { + "seconds": 0.3024592690053396, + "rss_kib": 57492, + "pids": [ + 3, + 5 + ] + }, + { + "seconds": 0.4029838349670172, + "rss_kib": 47796, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 0.5037053729756735, + "rss_kib": 49140, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 0.60412831697613, + "rss_kib": 74972, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 0.7046194869908504, + "rss_kib": 78920, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 0.8050186979817227, + "rss_kib": 83440, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 0.9055295310099609, + "rss_kib": 93852, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 1.0059337039710954, + "rss_kib": 98660, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 1.1063440089928918, + "rss_kib": 98744, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 1.2067129989736713, + "rss_kib": 98816, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 1.307085576991085, + "rss_kib": 98948, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 1.4074601129977964, + "rss_kib": 98964, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 1.5078417439945042, + "rss_kib": 99252, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 1.6083371010026895, + "rss_kib": 99340, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 1.708827084978111, + "rss_kib": 99640, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 1.80937496596016, + "rss_kib": 99640, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 1.9099607809912413, + "rss_kib": 99652, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 2.010495783004444, + "rss_kib": 99656, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 2.11098736198619, + "rss_kib": 99660, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 2.2115554320043884, + "rss_kib": 100248, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 2.3120711619849317, + "rss_kib": 100248, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 2.4125901230145246, + "rss_kib": 100248, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 2.5130791710107587, + "rss_kib": 100248, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 2.6134937269962393, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 2.713890557992272, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 2.814331208996009, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 2.9148495249683037, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 3.015356196963694, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 3.115836529992521, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 3.216343822015915, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 3.3168737789965235, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 3.417463260004297, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 3.517953097994905, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 3.6185442419955507, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 3.7190594589919783, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 3.819578439986799, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 3.9200037340051495, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 4.020419077016413, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 4.120961398002692, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 4.221357164962683, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 4.32172945397906, + "rss_kib": 100256, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 4.422056184965186, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 4.522472760989331, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 4.622851821011864, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 4.723253953969106, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 4.823678699962329, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 4.924072696012445, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 5.024472449964378, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 5.124972126970533, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 5.225363676960114, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 5.325864104961511, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 5.426330162968952, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 5.526741420966573, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 5.627115471987054, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 5.72762140899431, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 5.827975562016945, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 5.928351001988631, + "rss_kib": 100260, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 6.028870177979115, + "rss_kib": 100264, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 6.129237528017256, + "rss_kib": 100264, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 6.229581188992597, + "rss_kib": 100264, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 6.3299606229993515, + "rss_kib": 100264, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 6.430344760010485, + "rss_kib": 100264, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 6.530899805016816, + "rss_kib": 100264, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 6.631459422002081, + "rss_kib": 100264, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 6.7319282940006815, + "rss_kib": 100264, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 6.832455987983849, + "rss_kib": 102816, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 6.932983024977148, + "rss_kib": 105668, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 7.033385963004548, + "rss_kib": 111208, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 7.133733179012779, + "rss_kib": 115100, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 7.234143250971101, + "rss_kib": 118096, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 7.33468010998331, + "rss_kib": 123304, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 7.435302409983706, + "rss_kib": 128516, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 7.535702652006876, + "rss_kib": 129672, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 7.636085845995694, + "rss_kib": 135744, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 7.736457159975544, + "rss_kib": 141880, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 7.836813189962413, + "rss_kib": 144548, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 7.937328394968063, + "rss_kib": 145740, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 8.038002251007129, + "rss_kib": 152104, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 8.13838629797101, + "rss_kib": 152104, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 8.238727184012532, + "rss_kib": 152104, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 8.339124011981767, + "rss_kib": 152176, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 8.439470909012016, + "rss_kib": 152276, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 8.53983349900227, + "rss_kib": 152352, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 8.640232097997796, + "rss_kib": 152424, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 8.740772530960385, + "rss_kib": 152424, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 8.84120265598176, + "rss_kib": 152424, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 8.94167525001103, + "rss_kib": 152424, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 9.042044433008414, + "rss_kib": 152452, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 9.142439468007069, + "rss_kib": 152452, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 9.24279225995997, + "rss_kib": 152452, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 9.343194859975483, + "rss_kib": 152456, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 9.443590676004533, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 9.544093273987528, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 9.644446545979008, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 9.744809805997647, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 9.845220536983106, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 9.945584764995147, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 10.045957368973177, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 10.146335394994821, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 10.246683831966948, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 10.347042693989351, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 10.447395452007186, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 10.547756721964106, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 10.648089699971024, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 10.748475149972364, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 10.848835275974125, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 10.94919359596679, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 11.049545314977877, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 11.149900486983825, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 11.250312248012051, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 11.350666229962371, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 11.451069750008173, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 11.551451081002597, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 11.65184105397202, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 11.752242313988972, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 11.852595952979755, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 11.952962481998838, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 12.05334879399743, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 12.153717131004669, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 12.25406213797396, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 12.354430662991945, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 12.454789470997639, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 12.555161110998597, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 12.655651095963549, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 12.756203615979757, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 12.856690529966727, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 12.957072869990952, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 13.057596569997258, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 13.158133080985863, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 13.258677107980475, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 13.359083382005338, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 13.459453900984954, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 13.559878283005673, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 13.660306887992192, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 13.76069974701386, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 13.861135815968737, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 13.961609468969982, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 14.062086211983114, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 14.162683055968955, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 14.263193284976296, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 14.363584770995658, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 14.464026341971476, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 14.564428810961545, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 14.664827517990489, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 14.765243778005242, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 14.865621896984521, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 14.965994491009042, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 15.06640814297134, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 15.166783380962443, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 15.267193683015648, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 15.367603719991166, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 15.468205965997186, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 15.568796454987023, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 15.66954412398627, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 15.770080233982299, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 15.87048106698785, + "rss_kib": 152828, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 15.970948939968366, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 16.07145699299872, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 16.171915753977373, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 16.272296825016383, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 16.372657100961078, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 16.473057369003072, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 16.573422949993983, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 16.673798148985952, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 16.774164099013433, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 16.874658663989976, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 16.97508238098817, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 17.075459213985596, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 17.175848355982453, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 17.276233628974296, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 17.376594358007424, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 17.477042018959764, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 17.577471201017033, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 17.677939364977647, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 17.778327206964605, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 17.878725863993168, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 17.979075428971555, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 18.0794467109954, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 18.1797990569612, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 18.28024859499419, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 18.380645439960063, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 18.481018193997443, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 18.58149274997413, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 18.68187210900942, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 18.78240642999299, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 18.882811827003025, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 18.983202125993557, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 19.08357148297364, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 19.183937465015333, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 19.284324109961744, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 19.384674180008005, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 19.485038266982883, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 19.58538631000556, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 19.68574613396777, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 19.786144233017694, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 19.88652636396, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 19.986903572978918, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 20.087394800968468, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 20.187737617001403, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 20.28811854601372, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 20.388480882975273, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 20.488852876005694, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 20.589228397991974, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 20.689568181987852, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 20.79007918597199, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 20.890584854991175, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 20.9909566710121, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 21.091567758994643, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 21.192078967986163, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 21.292503673001193, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 21.392877619015053, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 21.493283332965802, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 21.593653195013758, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 21.694026393990498, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 21.79449364100583, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 21.894869336974807, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 21.995298916997854, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 22.095723768987227, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 22.19607881497359, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 22.29646096500801, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 22.3969086210127, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 22.497288279002532, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 22.597826259967405, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 22.698224022984505, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 22.798673334997147, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 22.899209457973484, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 22.9995947679854, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 23.099983412015717, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 23.2003727479605, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 23.300798236974515, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 23.401214619982056, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 23.501581182004884, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 23.60196125897346, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 23.702345977013465, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 23.802706274960656, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 23.90312035800889, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 24.00347354396945, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 24.10382988100173, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 24.204215581994504, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 24.304601300973445, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 24.405069927976, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 24.50556872598827, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 24.605970611970406, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 24.706412114959676, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 24.80678037996404, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 24.907154997985344, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 25.007533630006947, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 25.107917240005918, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 25.208317465963773, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 25.30869132798398, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 25.409057407989167, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 25.509462851972785, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 25.609808459994383, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 25.71019424998667, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 25.81060771801276, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 25.911183367017657, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 26.01153786596842, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 26.11192964797374, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 26.212336241966113, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 26.312696459994186, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 26.413081553997472, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 26.513433777960017, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 26.62077107396908, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 26.721486583992373, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 26.822132345987484, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 26.92277856898727, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 27.023313297017012, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 27.124405113980174, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 27.224999140016735, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 27.325540271995123, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 27.426062489976175, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 27.526501620013732, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 27.62689215998398, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 27.72744408698054, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 27.82798759097932, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 27.928595088014845, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 28.0290164219914, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 28.12941602099454, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 28.229772733000573, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 28.330170314002316, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 28.4306652629748, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 28.53134655498434, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 28.631810221995693, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 28.732197590987198, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 28.83257131197024, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 28.933058693015482, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 29.03360328497365, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 29.134159428009298, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 29.235081309976522, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 29.33557374496013, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 29.436048734991346, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 29.53706439497182, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 29.637599613983184, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 29.738360654970165, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 29.83912183600478, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 29.940224961959757, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 30.04219785198802, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 30.14284399000462, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 30.2434237349662, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 30.343965951993596, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 30.444542980985716, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 30.545057250012178, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 30.645525533996988, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 30.745910844998434, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 30.84627991297748, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 30.94677928101737, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 31.04808417399181, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 31.14863809198141, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 31.24905130499974, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 31.349490783992223, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 31.44992992398329, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 31.55029518500669, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 31.650658271973953, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 31.751064320968, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 31.851450201997068, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 31.951900738989934, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 32.05231331300456, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 32.152683514985256, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 32.25306703499518, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 32.35347338800784, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 32.453894844977185, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 32.554940556990914, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 32.655622977006715, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 32.756192660017405, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 32.856571529002395, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 32.95703553099884, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 33.05738241400104, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 33.15774914296344, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 33.25820812699385, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 33.35877450701082, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 33.45933108997997, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 33.55988547496963, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 33.66029868001351, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 33.76066039997386, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 33.86117316997843, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 33.96206065895967, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 34.06253540201578, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 34.163052165997215, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 34.26354613399599, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 34.36401994701009, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 34.46448775997851, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 34.5649642929784, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 34.66545109101571, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 34.7659316950012, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 34.86645744001726, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 34.96694055997068, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 35.06738665699959, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 35.16777071997058, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 35.268183220992796, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 35.368563886964694, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 35.46907161001582, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 35.5694884909899, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 35.669827030971646, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 35.77021830197191, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 35.87057987297885, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 35.9709463060135, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 36.07134461798705, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 36.17169212899171, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 36.27217880700482, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 36.37253899098141, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 36.47289248200832, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 36.576079841994215, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 36.676739976974204, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 36.77735055901576, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 36.87770441098837, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 36.97827010997571, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 37.07864825899014, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 37.17900870897574, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 37.27950076601701, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 37.379900403961074, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 37.48049752996303, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 37.58108061598614, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 37.681648542988114, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 37.782198027009144, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 37.8826277370099, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 37.98319947498385, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 38.08377137500793, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 38.184127521992195, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 38.28454096196219, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 38.38490040396573, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 38.485312659002375, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 38.58567026199307, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 38.68606675096089, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 38.78658559900941, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 38.88693847699324, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 38.98732402001042, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 39.08770173200173, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 39.18806831800612, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 39.288432613015175, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 39.388849809998646, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 39.489303465990815, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 39.589925161970314, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 39.69060047500534, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 39.7910536499694, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 39.89149687899044, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 39.991913663980085, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 40.09237959998427, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 40.19280539097963, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 40.2931909969775, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 40.39356358599616, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 40.49405675701564, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 40.594410279998556, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 40.69476693897741, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 40.79513903701445, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 40.89550133299781, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 40.99586490500951, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 41.09626563999336, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 41.19665185199119, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 41.29704815999139, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 41.397416257008445, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 41.497759215009864, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 41.59811921598157, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 41.698501240985934, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 41.7988571759779, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 41.89924651099136, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 41.99961448396789, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 42.09999108198099, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 42.20041715196567, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 42.30079775600461, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 42.40121577301761, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 42.501759630977176, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 42.602172776998486, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 42.7025693670148, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 42.80295984901022, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 42.90339028398739, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 43.00374501699116, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 43.10410573799163, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 43.20445733598899, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 43.304834779002704, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 43.40535266400548, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 43.5057318820036, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 43.606148535967804, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 43.70653612999013, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 43.806917707959656, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 43.90734704997158, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 44.0077361940057, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 44.108090155990794, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 44.208523286972195, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 44.30890758201713, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 44.40932612598408, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 44.50971011596266, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 44.61007051297929, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 44.710458362009376, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 44.81087213399587, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 44.91128722799476, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 45.011667114973534, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 45.11206684599165, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 45.212477051012684, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 45.31286140601151, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 45.41328852501465, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 45.51365611801157, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 45.61413083696971, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 45.71452486800263, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 45.81493010697886, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 45.915382608014625, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 46.01577792700846, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 46.116353190969676, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 46.216716822003946, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 46.317083661968354, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 46.4174681630102, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 46.517841928987764, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 46.61823721299879, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 46.71859520598082, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 46.818957881012466, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 46.91934698598925, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 47.01973444200121, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 47.120116128004156, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 47.220477949013, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 47.32083992700791, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 47.421236910973676, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 47.521597034996375, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 47.621958945994265, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 47.72232483199332, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 47.82269862800604, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 47.923077682964504, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 48.02347832999658, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 48.124005971010774, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 48.22438626497751, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 48.32475077698473, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 48.425079668988474, + "rss_kib": 106752, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 48.52546483796323, + "rss_kib": 105728, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 48.625832526013255, + "rss_kib": 28376, + "pids": [ + 3, + 20 + ] + }, + { + "seconds": 48.72620791697409, + "rss_kib": 48000, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 48.826621260959655, + "rss_kib": 53396, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 48.927010922983754, + "rss_kib": 76260, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 49.02741556800902, + "rss_kib": 82980, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 49.12781004497083, + "rss_kib": 89896, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 49.22821626701625, + "rss_kib": 98632, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 49.32856421399629, + "rss_kib": 98744, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 49.42892331100302, + "rss_kib": 98820, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 49.5293223990011, + "rss_kib": 98956, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 49.629892450000625, + "rss_kib": 99076, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 49.73029796499759, + "rss_kib": 99300, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 49.830670486961026, + "rss_kib": 99508, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 49.93108124099672, + "rss_kib": 99648, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 50.03145487600705, + "rss_kib": 99660, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 50.13206003600499, + "rss_kib": 99660, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 50.2324471269967, + "rss_kib": 99660, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 50.332873391977046, + "rss_kib": 100264, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 50.43331879697507, + "rss_kib": 100264, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 50.533682039997075, + "rss_kib": 100264, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 50.63405295996927, + "rss_kib": 100272, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 50.73442036396591, + "rss_kib": 100272, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 50.8348054359667, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 50.93521994201001, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 51.03558942297241, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 51.135964575980324, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 51.236379284004215, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 51.33675803296501, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 51.43718260998139, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 51.53755569900386, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 51.637993072974496, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 51.73839167499682, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 51.83875761600211, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 51.93917072797194, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 52.039542551967315, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 52.13990643597208, + "rss_kib": 100280, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 52.24032519001048, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 52.34073602396529, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 52.441137062967755, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 52.541524728992954, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 52.64196939399699, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 52.7423878259724, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 52.84286052000243, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 52.94342935201712, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 53.043801989988424, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 53.14424751600018, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 53.24462161998963, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 53.3449835840147, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 53.44539717299631, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 53.54577725200215, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 53.64622747298563, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 53.74664229596965, + "rss_kib": 100284, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 53.847159416007344, + "rss_kib": 100288, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 53.94764510000823, + "rss_kib": 100288, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 54.04800177301513, + "rss_kib": 100288, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 54.148382126993965, + "rss_kib": 100288, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 54.248729517974425, + "rss_kib": 100288, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 54.349058213992976, + "rss_kib": 100288, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 54.449479468981735, + "rss_kib": 100288, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 54.54985445499187, + "rss_kib": 100288, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 54.650384827982634, + "rss_kib": 101940, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 54.75078023900278, + "rss_kib": 106412, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 54.851270404004026, + "rss_kib": 109980, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 54.95164638198912, + "rss_kib": 115844, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 55.052076085004956, + "rss_kib": 117304, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 55.15246635500807, + "rss_kib": 123256, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 55.25287536898395, + "rss_kib": 129260, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 55.35348474601051, + "rss_kib": 130088, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 55.453880100976676, + "rss_kib": 136548, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 55.55434218200389, + "rss_kib": 142948, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 55.654764399980195, + "rss_kib": 145292, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 55.75535425497219, + "rss_kib": 147632, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 55.85574182897108, + "rss_kib": 152848, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 55.95607807801571, + "rss_kib": 152848, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 56.05647125601536, + "rss_kib": 152848, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 56.15689379500691, + "rss_kib": 152964, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 56.25729609001428, + "rss_kib": 153048, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 56.35766444000183, + "rss_kib": 153152, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 56.45803713001078, + "rss_kib": 153152, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 56.55856373801362, + "rss_kib": 153152, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 56.65893395297462, + "rss_kib": 153152, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 56.75931131996913, + "rss_kib": 153180, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 56.85967627301579, + "rss_kib": 153184, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 56.960093199973926, + "rss_kib": 153184, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 57.06053256196901, + "rss_kib": 153184, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 57.160933597013354, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 57.261340264987666, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 57.361780030012596, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 57.46225791197503, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 57.56263546197442, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 57.66299043898471, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 57.7633781490149, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 57.863855363975745, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 57.96424612001283, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 58.064737437001895, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 58.16514679498505, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 58.26557073596632, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 58.36597345001064, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 58.46634508797433, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 58.566710217972286, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 58.66726790397661, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 58.767633709998336, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 58.8680570970173, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 58.96851437300211, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 59.0690789729706, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 59.16946011898108, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 59.26983395201387, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 59.37022206297843, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 59.47065108199604, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 59.571079690009356, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 59.671582377981395, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 59.77206638699863, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 59.87243123096414, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 59.97281105897855, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 60.07321518898243, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 60.17360668099718, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 60.2739797749673, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 60.37450956896646, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 60.47491256298963, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 60.575326279969886, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 60.67575804999797, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 60.776170447003096, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 60.87656058301218, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 60.97697202197742, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 61.07737900997745, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 61.17775587801589, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 61.27813148300629, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 61.378511799965054, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 61.478871101979166, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 61.57937477901578, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 61.67988848197274, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 61.78033422399312, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 61.88071427698014, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 61.981078815006185, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 62.08145593997324, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 62.18185972300125, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 62.28225026797736, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 62.38264343800256, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 62.48309700097889, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 62.58347201900324, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 62.6838487929781, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 62.78423601499526, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 62.88461779197678, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 62.98524862801423, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 63.08587708097184, + "rss_kib": 153572, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 63.18628764600726, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 63.28664484299952, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 63.387023415009025, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 63.48742993600899, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 63.587786011979915, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 63.68818271596683, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 63.78856481797993, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 63.88897780200932, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 63.98940647899872, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 64.08980722300475, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 64.19031289900886, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 64.29072186001576, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 64.39135897497181, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 64.49176793696824, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 64.59225941996556, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 64.69265444896882, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 64.79307182598859, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 64.8934384759632, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 64.99385161098326, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 65.09427751495969, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 65.19464106997475, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 65.295279545011, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 65.39578197599621, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 65.4963823959697, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 65.59676110500004, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 65.69712502701441, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 65.79749032796826, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 65.89785366499564, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 65.99824007501593, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 66.09859823598526, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 66.19899257097859, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 66.29938936798135, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 66.39989333599806, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 66.5002534489613, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 66.60070825199364, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 66.70120477100136, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 66.80169942096109, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 66.90208080300363, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 67.00257755897474, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 67.10292366001522, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 67.20328163699014, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 67.30365812499076, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 67.40399229101604, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 67.50438681099331, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 67.60483035200741, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 67.70525614300277, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 67.80563810799504, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 67.9060072429711, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 68.00637452799128, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 68.10671846597688, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 68.2070723939687, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 68.30745533196023, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 68.40783147898037, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 68.50820894498611, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 68.60856423497899, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 68.70896688196808, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 68.80938028497621, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 68.90975673601497, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 69.01013220200548, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 69.11047120200237, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 69.21094981598435, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 69.31134830700466, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 69.41184371401323, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 69.51230365299853, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 69.61281217698706, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 69.7131895860075, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 69.8135587819852, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 69.9139251189772, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 70.01434371300275, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 70.11472907901043, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 70.2150979230064, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 70.31546054099454, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 70.41585160396062, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 70.51626313297311, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 70.61662174499361, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 70.7169894319959, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 70.81737152196001, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 70.91785404196708, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 71.01824952999596, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 71.11861511296593, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 71.2189654239919, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 71.31933588499669, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 71.41970736597432, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 71.52106685197214, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 71.62157668400323, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 71.72192548500607, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 71.82234079000773, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 71.92271644598804, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 72.02308529498987, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 72.12349553301465, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 72.22387160401559, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 72.32439867401263, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 72.4247471030103, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 72.52507326100022, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 72.62547858397011, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 72.72605488996487, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 72.82643702096539, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 72.92690163396765, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 73.02733300899854, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 73.12781148595968, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 73.22825958899921, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 73.32864219800103, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 73.42912638897542, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 73.52950397698442, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 73.62988674198277, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 73.7303310430143, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 73.83074228197802, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 73.93108416197356, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 74.031486183987, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 74.13186588999815, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 74.23249776399462, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 74.33292825898388, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 74.43335551698692, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 74.5339478480164, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 74.63446586800274, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 74.73495582101168, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 74.83539406600175, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 74.93575002800208, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 75.03613353596302, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 75.1365124490112, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 75.23688619898167, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 75.33736399200279, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 75.43773540097754, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 75.53811733197654, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 75.63853392400779, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 75.73888554197038, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 75.83940835297108, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 75.93990052997833, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 76.04031439800747, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 76.14066977001494, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 76.24102829396725, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 76.34140701999422, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 76.44177555397619, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 76.5422139739967, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 76.64266357099405, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 76.74301312898751, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 76.8435312169604, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 76.94388196698856, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 77.04425048001576, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 77.14459837198956, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 77.24494508997304, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 77.34544546401594, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 77.4459298409638, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 77.54643387300894, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 77.64678414497757, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 77.74718176299939, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 77.84753167000599, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 77.94790333200945, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 78.04827411600854, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 78.14862954197451, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 78.24898579198634, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 78.34938103496097, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 78.4497428679606, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 78.55009429797065, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 78.65044319297886, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 78.75079427898163, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 78.8511987120146, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 78.95155957801035, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 79.05202827701578, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 79.1523955129669, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 79.2527381539694, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 79.35308232798707, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 79.45344342297176, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 79.55385140300496, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 79.6543637390132, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 79.7548467600136, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 79.85537532198941, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 79.95589798496803, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 80.05644635198405, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 80.15686659998028, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 80.25728094897931, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 80.35781732900068, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 80.45840331399813, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 80.55878325301455, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 80.65969762497116, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 80.76018981996458, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 80.86068704497302, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 80.96126502897823, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 81.0617649939959, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 81.16229081596248, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 81.26268090598751, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 81.36322153301444, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 81.46379685099237, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 81.56436155998381, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 81.66473256296013, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 81.76514014601707, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 81.86553714500042, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 81.96608840598492, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 82.06657395401271, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 82.16713011800312, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 82.2674784209812, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 82.36783557897434, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 82.46823682298418, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 82.5686307309661, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 82.66913175000809, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 82.76951007096795, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 82.86995319300331, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 82.97035809699446, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 83.07094483397668, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 83.17135335400235, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 83.27170052396832, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 83.37212622200605, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 83.47248056600802, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 83.57283831696259, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 83.67321392701706, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 83.77356952801347, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 83.87392759200884, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 83.97431558999233, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 84.0746718510054, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 84.175025790988, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 84.27545692399144, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 84.3758236420108, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 84.47629008599324, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 84.5766771719791, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 84.67708404600853, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 84.77744413801702, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 84.87801328697242, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 84.97851461096434, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 85.07900567096658, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 85.17949868796859, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 85.27998887596186, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 85.38048940600129, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 85.48087325098459, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 85.5812933279667, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 85.68167240696494, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 85.78205567301484, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 85.88245083199581, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 85.9828056099941, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 86.08319880696945, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 86.18354955600807, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 86.28391606401419, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 86.38426398101728, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 86.48460551601602, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 86.58495749096619, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 86.68534513097256, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 86.78571004100377, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 86.88606636901386, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 86.9864315019804, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 87.08828648901545, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 87.18880383699434, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 87.29106177197536, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 87.39157618297031, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 87.4926139509771, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 87.59309219499119, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 87.69356547098141, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 87.79409036895959, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 87.89456397900358, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 87.9950792529853, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 88.09568634995958, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 88.1962111259927, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 88.29667563096154, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 88.39714058098616, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 88.49758416996337, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 88.59803933196235, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 88.69848998798989, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 88.79899879498407, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 88.89946664497256, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 88.99991621798836, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 89.10032766096992, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 89.20067328901496, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 89.30103911599144, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 89.40147656900808, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 89.50191713299137, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 89.60230887198122, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 89.70279073296115, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 89.80335835396545, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 89.90391937701497, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 90.00438466196647, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 90.10493477398995, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 90.20538276899606, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 90.30585552100092, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 90.40628539898898, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 90.5066302359919, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 90.60698700096691, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 90.70738467696356, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 90.80773916497128, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 90.90813440299826, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 91.00848385499557, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 91.10892414097907, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 91.20947372197406, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 91.30992691399297, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 91.41042762197321, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 91.51087556796847, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 91.61135390697746, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 91.71184600197012, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 91.81233725097263, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 91.91278796398547, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 92.01328583696159, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 92.11375621100888, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 92.21422354999231, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 92.31466703797923, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 92.41517752996879, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 92.51552925701253, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 92.61604744696524, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 92.71643037599279, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 92.81677911896259, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 92.91714669996873, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 93.01807008800097, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 93.11857816099655, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 93.2189353859867, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 93.31931806798093, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 93.41968441096833, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 93.52005724096671, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 93.62042450200533, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 93.72093508596299, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 93.82133172801696, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 93.92169190198183, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 94.02205245097866, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 94.12254391296301, + "rss_kib": 107496, + "pids": [ + 3, + 21 + ] + }, + { + "seconds": 94.22306980297435, + "rss_kib": 74284, + "pids": [ + 3, + 21 + ] + } + ], + "scope": "One own execution of the registered normal then optimized commands; no independent reviewer script rerun, Lean, native build or historical archive replay." +} diff --git a/research/owned-relation-independent-validation/evidence/cold/CAPSULE-PREFLIGHT-INITIAL.json b/research/owned-relation-independent-validation/evidence/cold/CAPSULE-PREFLIGHT-INITIAL.json new file mode 100644 index 0000000000..83031cecf5 --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cold/CAPSULE-PREFLIGHT-INITIAL.json @@ -0,0 +1,119 @@ +{ + "head": "c448d13c71908647f968b06cddb795ce7d288139", + "base": "7c472563474e60185e6ca101a17622133d047e56", + "canonical_main": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "package": "research/kappa-owned-relation-20261023", + "rows": [ + { + "path": "research/kappa-owned-relation-20261023/README.md", + "sha256": "eb853337dfaf306808d77538e448a78f16021a2e73295078b4b2f4ff6ea835c4", + "git_blob": "777f4e1d5114e35ba6de2a8e818b790b16aca655", + "origin": "outputs/owned-relation-5377-cost-review-20261024/frozen/README.md" + }, + { + "path": "research/kappa-owned-relation-20261023/RESULT.json", + "sha256": "1937b2e1fb4bec0fa1b0d2428a52734c554152538ac8930605bd46704f1c7320", + "git_blob": "27b4e5470812c2b9feaa54fbfe867b3fb68def68", + "origin": "outputs/owned-relation-5377-cost-review-20261024/frozen/RESULT.json" + }, + { + "path": "research/kappa-owned-relation-20261023/SOURCES.json", + "sha256": "eca6dd5ac3028a72e016e0c8a265be702dd6c4daf481bc009524577ff5e7c831", + "git_blob": "9854abbb4f66f20aad8ab5016ede8319cd47519c", + "origin": "outputs/owned-relation-5377-cost-review-20261024/frozen/SOURCES.json" + }, + { + "path": "research/kappa-owned-relation-20261023/TASK.json", + "sha256": "b9a9ace02d10791b49cf113dd6a19501b297920a29b9a4d5585e25ef4e8ef92f", + "git_blob": "f5df24ffe3bc51288ab57d55494b1db8684d7de9", + "origin": "outputs/owned-relation-5377-cost-review-20261024/frozen/TASK.json" + }, + { + "path": "research/kappa-owned-relation-20261023/VERIFY.json", + "sha256": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8", + "git_blob": "8098df4c806a6c6e9e2be7253ba4101744dab08d", + "origin": "outputs/owned-relation-5377-cost-review-20261024/frozen/VERIFY.json" + }, + { + "path": "research/kappa-owned-relation-20261023/WORD.json.gz", + "sha256": "8d913767ad773839995e54e4d80aeff692a86687d0f78153311c8ad62b7ba1bc", + "git_blob": "5e79bd826c6ca1e782766ea0ae28a61d136303d1", + "origin": "outputs/owned-relation-5377-cost-review-20261024/frozen/WORD.json.gz" + }, + { + "path": "research/kappa-owned-relation-20261023/native.py", + "sha256": "85d994fc5661bfa53c4b42f79955ff74ffe70072163cb02fa76cd79efbcc0c97", + "git_blob": "b8249ed7ba981a798ba282a6aeabd81a600bda36", + "origin": "outputs/owned-relation-5377-cost-review-20261024/frozen/native.py" + }, + { + "path": "research/kappa-owned-relation-20261023/price.py", + "sha256": "e228a48de6138257da7520bb57567a275c402289c90fe7e94f0ef2ad6371f836", + "git_blob": "6077adf74c1a154e5f790411f774a52745eb5281", + "origin": "outputs/owned-relation-5377-cost-review-20261024/frozen/price.py" + }, + { + "path": "research/kappa-owned-relation-20261023/verify.py", + "sha256": "c4d4fe9b74db1d47fbbfc0c602315d8256a15f0ad0e50b9fcfe2249bf65916f1", + "git_blob": "b19f7d0ca4a6e61a0a75595bbc413f9341e84717", + "origin": "outputs/owned-relation-5377-cost-review-20261024/frozen/verify.py" + }, + { + "path": "research/higher-moment-strictification/verify.py", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "origin": "outputs/final4610-admission-source-audit-20261024/snapshot/research/higher-moment-strictification/verify.py" + }, + { + "path": "research/joint-helper-lattice/CONTROLLER.json", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "origin": "outputs/final4610-admission-source-audit-20261024/snapshot/research/joint-helper-lattice/CONTROLLER.json" + }, + { + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "origin": "outputs/final4610-admission-source-audit-20261024/snapshot/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py" + }, + { + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "origin": "outputs/final4610-admission-source-audit-20261024/snapshot/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz" + }, + { + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "origin": "outputs/final4610-admission-source-audit-20261024/snapshot/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz" + }, + { + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "origin": "outputs/final4610-admission-source-audit-20261024/snapshot/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json" + }, + { + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "origin": "outputs/final4610-admission-source-audit-20261024/snapshot/research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py" + } + ], + "missing": [ + { + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "usage": "input", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "research/query-thinned-controllers/RESULT.json", + "usage": "input", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f" + } + ], + "scope": "Scientific byte capsule; exact historical Git metadata not yet available; no cold replay run" +} diff --git a/research/owned-relation-independent-validation/evidence/cold/EXACT-COMMIT.raw b/research/owned-relation-independent-validation/evidence/cold/EXACT-COMMIT.raw new file mode 100644 index 0000000000..4d1d1ea199 --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cold/EXACT-COMMIT.raw @@ -0,0 +1,6 @@ +tree e4370e0bff125a6575ed3c073d24aa1a984323d1 +parent 7c472563474e60185e6ca101a17622133d047e56 +author Ali Romman <226877337+aliromman@users.noreply.github.com> 1792786992 -0500 +committer Ali Romman <226877337+aliromman@users.noreply.github.com> 1792786992 -0500 + +Improve conditional kappa to 0.00302235 with one owned helper relation diff --git a/research/owned-relation-independent-validation/evidence/cold/HEAD-WORKING-BLOB-BINDINGS.json b/research/owned-relation-independent-validation/evidence/cold/HEAD-WORKING-BLOB-BINDINGS.json new file mode 100644 index 0000000000..3c182ef9d1 --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cold/HEAD-WORKING-BLOB-BINDINGS.json @@ -0,0 +1,92 @@ +[ + { + "path": "research/kappa-owned-relation-20261023/TASK.json", + "git_blob": "f5df24ffe3bc51288ab57d55494b1db8684d7de9", + "sha256": "b9a9ace02d10791b49cf113dd6a19501b297920a29b9a4d5585e25ef4e8ef92f" + }, + { + "path": "research/kappa-owned-relation-20261023/native.py", + "git_blob": "b8249ed7ba981a798ba282a6aeabd81a600bda36", + "sha256": "85d994fc5661bfa53c4b42f79955ff74ffe70072163cb02fa76cd79efbcc0c97" + }, + { + "path": "research/kappa-owned-relation-20261023/price.py", + "git_blob": "6077adf74c1a154e5f790411f774a52745eb5281", + "sha256": "e228a48de6138257da7520bb57567a275c402289c90fe7e94f0ef2ad6371f836" + }, + { + "path": "research/kappa-owned-relation-20261023/WORD.json.gz", + "git_blob": "5e79bd826c6ca1e782766ea0ae28a61d136303d1", + "sha256": "8d913767ad773839995e54e4d80aeff692a86687d0f78153311c8ad62b7ba1bc" + }, + { + "path": "research/kappa-owned-relation-20261023/RESULT.json", + "git_blob": "27b4e5470812c2b9feaa54fbfe867b3fb68def68", + "sha256": "1937b2e1fb4bec0fa1b0d2428a52734c554152538ac8930605bd46704f1c7320" + }, + { + "path": "research/kappa-owned-relation-20261023/README.md", + "git_blob": "777f4e1d5114e35ba6de2a8e818b790b16aca655", + "sha256": "eb853337dfaf306808d77538e448a78f16021a2e73295078b4b2f4ff6ea835c4" + }, + { + "path": "research/kappa-owned-relation-20261023/SOURCES.json", + "git_blob": "9854abbb4f66f20aad8ab5016ede8319cd47519c", + "sha256": "eca6dd5ac3028a72e016e0c8a265be702dd6c4daf481bc009524577ff5e7c831" + }, + { + "path": "research/kappa-owned-relation-20261023/verify.py", + "git_blob": "b19f7d0ca4a6e61a0a75595bbc413f9341e84717", + "sha256": "c4d4fe9b74db1d47fbbfc0c602315d8256a15f0ad0e50b9fcfe2249bf65916f1" + }, + { + "path": "research/kappa-owned-relation-20261023/VERIFY.json", + "git_blob": "8098df4c806a6c6e9e2be7253ba4101744dab08d", + "sha256": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8" + }, + { + "path": "research/higher-moment-strictification/verify.py", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326" + }, + { + "path": "research/joint-helper-lattice/CONTROLLER.json", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + { + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7" + }, + { + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + }, + { + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b" + }, + { + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de" + }, + { + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "research/query-thinned-controllers/RESULT.json", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f" + } +] diff --git a/research/owned-relation-independent-validation/evidence/cold/PHYSICAL-EXTENSION-REVIEW.md b/research/owned-relation-independent-validation/evidence/cold/PHYSICAL-EXTENSION-REVIEW.md new file mode 100644 index 0000000000..cdb05cf9ef --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cold/PHYSICAL-EXTENSION-REVIEW.md @@ -0,0 +1,51 @@ +# Same-premise physical extension for PR5377 + +Reviewed exact candidate head `c448d13c71908647f968b06cddb795ce7d288139`, package `research/kappa-owned-relation-20261023`, against selected PR4610 / exact PR5241 audit. This is this worker's static applicability review; the separate physical and cost reviewers' actual executions retain their own provenance. Full registered replay status is recorded separately in `BOUNDED-REGISTERED-RUN.json` when the live process completes. + +The source-specific change belongs to the selected generic scalar/owned-storage grammar. It introduces no native Gaussian operator, monomial adapter, binary map, child factorization or movement exponent. It restricts one previously arbitrary helper to an owned prepared value, retains an additional owned snapshot in its exact frame, and replaces two source jobs by same-frame COPY and identity on a proved zero row. That is a change of independent input inventory and chronological scalar word, so it needs the following new argument; the old all-632-input endpoint alone is insufficient. + +## Relation, all columns and phases + +At the cold backward entrance all five relation helpers have source frame 0. Making L230 owned permits clearing its arbitrary owned entry and preparing + +`h230 = h324 - h326 - h328 + h333`. + +Every other backward persistent input remains arbitrary and independent; L230's rank-nine productive endpoint is debited. The unrestricted source identities are `C0 - saved_L92 = Delta/4` and `L92 = -Delta/4`, with `Delta=h230-h324+h326+h328-h333`. They are equalities of rational rows over free invertible operator words, rather than identities in a chosen numerical tensor sample. Evaluating the free-group algebra at the inherited lifted physical operators therefore preserves them at every allowed column multiplicity and with arbitrary spectators. Scalar coefficients and preparation chronology stay unchanged in that evaluation; tensor power is never distributed over the relation's sum. + +The backward free-word symbols are deliberately disjoint from forward symbols. Their physical representation is the exact inherited oriented source gauge, not a newly assumed equality between forward and backward operators. The physical reviewer separately checks the oriented rows and frames. Both the saved L92 stream and the replaced center output are in actual frame254, so COPY requires no new transport. At the zero site the complete vector is identically zero; physical identity preserves it in the entire ambient space. The `zero_retag` record changes only the chart label attached to that same zero. It does not claim that identity transports arbitrary nonzero vectors between those frames. + +The exact retained warp/main-adapter sequence and all retained paid events are source-identical. Their absolute phases and whole-job factors are already covered by the complete PR5241 phase foundation, including the paid and helper classes. PR5377's phase-inheritance routine by itself checks receipt status and event equality; it is not a new replay of that foundation. Admission must retain the authenticated PR5241 scientific proof/receipt, rather than infer phases from binary frames or the author's PASS label. + +## Physical owner and scratch boundary + +Backward local owned fields are C0, C1 and L230. C1 is one newly allocated complete physical slot; L230 uses its former slot under owned status. C1 is cleared before a same-frame snapshot COPY, C0 is cleared before the saved-value COPY and C1 is erased after the final copy. L230 is cleared after its final use. No borrowed persistent slot is erased or overwritten. Every copy has distinct source/destination slots and preserves the source. + +The 16 backward FULL calls and two forward FULL calls each receive their own owner list; there is no aliasing between calls or between a local caller's live banks and a suspended child's banks. A conservative raw allocation has `16*3+2*1=50` LOCAL owned banks before the separately required query/completion/compiler banks. This is an allocation witness at the raw-controller level, not an expanded compiler bank count. A compiled child must finish with adapters and ordering restored before its parent resumes. Distinct chronological positions may not be batched as simultaneous owner inputs. + +COPY/CLEAR are already permitted primitives on owned complete fields. Four extra unit ADDs use the same frame0. Their descriptor work, dirty-control repair and movement retain the selected physical cost hypotheses. No zero predicate is tested at runtime: the compiled program uses a source-proved invariant. The ideal exact changed program simply executes physical identity at that site. Its approximation/semantic-growth bound must be derived for this changed program, including its new scalar and owned-storage counts. + +## Fresh tariffs, precision and storage constants + +The changed raw scalar allowance increases by46 per backward call:32 for four unit ADDs,14 for seven COPY/CLEAR macros. The candidate conservatively retains old helper wrappers and the maximum old paid count for routing and adds four route groups for the two newly owned lifetimes. Local scalar allowance158214 plus route4806000 is4964214, below10^7. The complete raw-controller allowance remains181098496 below10^9. These inequalities establish that the retained conservative raw unit is sufficient; they do not establish the expanded uniform word's storage or scalar envelope. + +Fix the entire new finite word, its1024-fold product, charged completion/splitting and finite compiler at `N=2^31385200000000` before multiplication input growth. Apply the selected finite emitter/allocation rule to the actual changed owner inventory and chronology. Let W be productive arrays, P rank-one child calls, O all owned banks including every suspended occurrence, R every movement/native/normalizer/route record, and G the new full scalar/phase coefficient allowance. Three banks per backward occurrence and one per forward occurrence, plus every query/completion/splitting/compiler bank, is a conservative finite prescription for O. None contributes productive credit. + +Use these new effective integers in the selected formulas: + +``` +Z=W+O +E=64*(Z+N+P+G+1)^3 +B=P+E +C0=32*N*B^2 +C1=1 +``` + +The new E dominates `2GZ^2+8P+4Z+4+32N`. With parents waiting for completed children, the inherited recurrence is `A(e)<=A(floor(e/N))+P*floor(e/N)+E`, giving `A(e)<=2Be`. The unit preparation coefficients and complete same-frame COPY add no new scalar species. CLEAR reduces magnitude; COPY duplicates a value into a counted bank. Increased O/R/G change thresholds, parking, stock and setup constants, with the same source movement exponent and fixed number of tapes. Full simultaneous stock products remain required. No old numerical expanded size cap, old fine-grid threshold, raw10^9 cap or one-bank-per-depth shortcut is substituted for these new constants. + +The supplied cost review gives a constructive new-constant prescription and independently checks the complete invoice, compiler and outer arithmetic. This worker inspected that prescription against the selected PR5241 contract map. It uses the existing generic fixed finite template assumptions; it does not introduce a separate premise that the new relation/COPY program is a cheap oracle. + +## Conditional conclusion and limits + +Provided the independently checked source identities, same-frame copy/zero arguments, complete asymmetric invoice, registered artifact checks and source-bound PR5241 phase foundation pass, the candidate is an instance of the same five selected assumptions: `native_all_columns`, `owned_erasure`, `compiler`, `precision_tape`, `analytic_recovery`. The changed inventory is charged by losing16 H9 targets and saving16 H1 plus16 H8 jobs over the controller; helper restoration and private erasure are separate obligations. + +The original uniform physical realization, precision/tape and analytic/integer-recovery theorems remain conditional premises. This review does not materialize the compiler word, prove an unconditional multiplication theorem, run Lean, supply an independent human acceptance claim or change selected metadata. Construction credit is Ali Romman's PR5377; PR4610, controller/native/compiler, PR5241 and all physical/BIT/analytic predecessor credits remain intact. Substantial OpenAI Codex assistance was used in this review. diff --git a/research/owned-relation-independent-validation/evidence/cold/POST-RUN-HASHES.json b/research/owned-relation-independent-validation/evidence/cold/POST-RUN-HASHES.json new file mode 100644 index 0000000000..8f98db63cf --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cold/POST-RUN-HASHES.json @@ -0,0 +1,26 @@ +{ + "research/free-word-tensor-lift-audit/PROOF.md": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459", + "research/higher-moment-strictification/verify.py": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "research/joint-helper-lattice/CONTROLLER.json": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "research/kappa-interface-round2-20261022/price_profile.py": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb", + "research/kappa-owned-relation-20261023/README.md": "eb853337dfaf306808d77538e448a78f16021a2e73295078b4b2f4ff6ea835c4", + "research/kappa-owned-relation-20261023/RESULT.json": "1937b2e1fb4bec0fa1b0d2428a52734c554152538ac8930605bd46704f1c7320", + "research/kappa-owned-relation-20261023/SOURCES.json": "eca6dd5ac3028a72e016e0c8a265be702dd6c4daf481bc009524577ff5e7c831", + "research/kappa-owned-relation-20261023/TASK.json": "b9a9ace02d10791b49cf113dd6a19501b297920a29b9a4d5585e25ef4e8ef92f", + "research/kappa-owned-relation-20261023/VERIFY.json": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8", + "research/kappa-owned-relation-20261023/WORD.json.gz": "8d913767ad773839995e54e4d80aeff692a86687d0f78153311c8ad62b7ba1bc", + "research/kappa-owned-relation-20261023/native.py": "85d994fc5661bfa53c4b42f79955ff74ffe70072163cb02fa76cd79efbcc0c97", + "research/kappa-owned-relation-20261023/price.py": "e228a48de6138257da7520bb57567a275c402289c90fe7e94f0ef2ad6371f836", + "research/kappa-owned-relation-20261023/verify.py": "c4d4fe9b74db1d47fbbfc0c602315d8256a15f0ad0e50b9fcfe2249bf65916f1", + "research/kappa-rebuild/architecture/mixed_target_probe.py": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "research/kappa-rebuild/complex/native_extensions.py": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3", + "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "research/query-thinned-controllers/RESULT.json": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "scripts/check_research_commit.py": "28fed1e156fe8601633ed453f682a158cb15e94981e6c89ed96ae72ffc9d0c6f", + "scripts/research_package.py": "8e07ddee4d8e1c70a278538b2758d423a298b96d5d1a18233dc29925696fc96f", + "docs/research/agent-task-catalog.json": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" +} diff --git a/research/owned-relation-independent-validation/evidence/cold/PRE-RUN-HASHES.json b/research/owned-relation-independent-validation/evidence/cold/PRE-RUN-HASHES.json new file mode 100644 index 0000000000..8f98db63cf --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cold/PRE-RUN-HASHES.json @@ -0,0 +1,26 @@ +{ + "research/free-word-tensor-lift-audit/PROOF.md": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459", + "research/higher-moment-strictification/verify.py": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326", + "research/joint-helper-lattice/CONTROLLER.json": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "research/kappa-interface-round2-20261022/price_profile.py": "adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb", + "research/kappa-owned-relation-20261023/README.md": "eb853337dfaf306808d77538e448a78f16021a2e73295078b4b2f4ff6ea835c4", + "research/kappa-owned-relation-20261023/RESULT.json": "1937b2e1fb4bec0fa1b0d2428a52734c554152538ac8930605bd46704f1c7320", + "research/kappa-owned-relation-20261023/SOURCES.json": "eca6dd5ac3028a72e016e0c8a265be702dd6c4daf481bc009524577ff5e7c831", + "research/kappa-owned-relation-20261023/TASK.json": "b9a9ace02d10791b49cf113dd6a19501b297920a29b9a4d5585e25ef4e8ef92f", + "research/kappa-owned-relation-20261023/VERIFY.json": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8", + "research/kappa-owned-relation-20261023/WORD.json.gz": "8d913767ad773839995e54e4d80aeff692a86687d0f78153311c8ad62b7ba1bc", + "research/kappa-owned-relation-20261023/native.py": "85d994fc5661bfa53c4b42f79955ff74ffe70072163cb02fa76cd79efbcc0c97", + "research/kappa-owned-relation-20261023/price.py": "e228a48de6138257da7520bb57567a275c402289c90fe7e94f0ef2ad6371f836", + "research/kappa-owned-relation-20261023/verify.py": "c4d4fe9b74db1d47fbbfc0c602315d8256a15f0ad0e50b9fcfe2249bf65916f1", + "research/kappa-rebuild/architecture/mixed_target_probe.py": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "research/kappa-rebuild/complex/native_extensions.py": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3", + "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "research/query-thinned-controllers/RESULT.json": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "scripts/check_research_commit.py": "28fed1e156fe8601633ed453f682a158cb15e94981e6c89ed96ae72ffc9d0c6f", + "scripts/research_package.py": "8e07ddee4d8e1c70a278538b2758d423a298b96d5d1a18233dc29925696fc96f", + "docs/research/agent-task-catalog.json": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" +} diff --git a/research/owned-relation-independent-validation/evidence/cold/REGISTERED-COLD.stderr.log b/research/owned-relation-independent-validation/evidence/cold/REGISTERED-COLD.stderr.log new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/owned-relation-independent-validation/evidence/cold/REGISTERED-COLD.stdout.log b/research/owned-relation-independent-validation/evidence/cold/REGISTERED-COLD.stdout.log new file mode 100644 index 0000000000..bff6a67edf --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cold/REGISTERED-COLD.stdout.log @@ -0,0 +1,5 @@ +CHECK Exact native rows, owned entry columns, event ranks, independent source identities, p16 Laurent controller, complete asymmetric invoice, two interval engines, compiler and outer predicates, negative controls. +{"gain_over_PR4610": "2871/5000000000", "kappa": "60447/20000000", "paid_calls": 64372, "productive_fields": 10912, "raw_root_interval": ["302238736347/100000000000000", "75559684087/25000000000000"], "status": "PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION"} +CHECK The same checks remain active with Python assertions disabled. +{"gain_over_PR4610": "2871/5000000000", "kappa": "60447/20000000", "paid_calls": 64372, "productive_fields": 10912, "raw_root_interval": ["302238736347/100000000000000", "75559684087/25000000000000"], "status": "PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION"} +PASS_REGISTERED_RESEARCH_PACKAGE research/kappa-owned-relation-20261023 outcome=completed diff --git a/research/owned-relation-independent-validation/evidence/cold/REGISTERED-COMMIT-PREFLIGHT-CORRECTED.json b/research/owned-relation-independent-validation/evidence/cold/REGISTERED-COMMIT-PREFLIGHT-CORRECTED.json new file mode 100644 index 0000000000..494ff2a17f --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cold/REGISTERED-COMMIT-PREFLIGHT-CORRECTED.json @@ -0,0 +1,16 @@ +{ + "argv": [ + "python3", + "-B", + "scripts/check_research_commit.py", + "--package", + "research/kappa-owned-relation-20261023", + "--check-source-history" + ], + "cwd": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/owned-relation-5377-cold-validation-20261024/snapshot", + "returncode": 0, + "stdout": "PASS_RESEARCH_COMMIT_BYTES {\"commit\": \"c448d13c71908647f968b06cddb795ce7d288139\", \"files\": 18, \"package\": \"research/kappa-owned-relation-20261023\", \"source_history_commits\": [\"7c472563474e60185e6ca101a17622133d047e56\"]}\n", + "stderr": "", + "seconds": 0.1952657009824179, + "object_transport": "Working bytes SHA1 checked against actual exact-head tree, then installed unchanged in isolated object store; no commit/tree object rewritten" +} diff --git a/research/owned-relation-independent-validation/evidence/cold/REGISTERED-PREFLIGHT.json b/research/owned-relation-independent-validation/evidence/cold/REGISTERED-PREFLIGHT.json new file mode 100644 index 0000000000..fe9f374830 --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cold/REGISTERED-PREFLIGHT.json @@ -0,0 +1,32 @@ +[ + { + "argv": [ + "python3", + "-B", + "scripts/research_package.py", + "--package", + "research/kappa-owned-relation-20261023", + "--check-only" + ], + "cwd": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/owned-relation-5377-cold-validation-20261024/snapshot", + "returncode": 0, + "stdout": "PASS_PACKAGE_METADATA_AND_PINS (not a mathematical acceptance check)\n", + "stderr": "", + "seconds": 0.3380786839989014 + }, + { + "argv": [ + "python3", + "-B", + "scripts/check_research_commit.py", + "--package", + "research/kappa-owned-relation-20261023", + "--check-source-history" + ], + "cwd": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/owned-relation-5377-cold-validation-20261024/snapshot", + "returncode": 1, + "stdout": "", + "stderr": "missing or non-blob Git source: 777f4e1d5114e35ba6de2a8e818b790b16aca655\n", + "seconds": 0.17831641901284456 + } +] diff --git a/research/owned-relation-independent-validation/evidence/cold/SOURCE-HISTORY-PREFLIGHT.json b/research/owned-relation-independent-validation/evidence/cold/SOURCE-HISTORY-PREFLIGHT.json new file mode 100644 index 0000000000..061088ea94 --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cold/SOURCE-HISTORY-PREFLIGHT.json @@ -0,0 +1,16 @@ +{ + "head": "c448d13c71908647f968b06cddb795ce7d288139", + "base": "7c472563474e60185e6ca101a17622133d047e56", + "ancestry_command": [ + "git", + "--no-replace-objects", + "merge-base", + "--is-ancestor", + "7c472563474e60185e6ca101a17622133d047e56", + "c448d13c71908647f968b06cddb795ce7d288139" + ], + "base_is_ancestor_exit": 0, + "source_manifest_rows_authenticated": 14, + "missing": [], + "git_object_store": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/integer-mult-bounds/.git/objects" +} diff --git a/research/owned-relation-independent-validation/evidence/cold/VALIDATION.json b/research/owned-relation-independent-validation/evidence/cold/VALIDATION.json new file mode 100644 index 0000000000..c34bfcdb95 --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cold/VALIDATION.json @@ -0,0 +1,142 @@ +{ + "status": "PASS_OWN_COMPLETE_REGISTERED_PR5377_NORMAL_AND_OPTIMIZED", + "utc": "2026-10-23T20:37:57.604080+00:00", + "head": "c448d13c71908647f968b06cddb795ce7d288139", + "source_base": "7c472563474e60185e6ca101a17622133d047e56", + "current_canonical_main_pin": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "package": "research/kappa-owned-relation-20261023", + "python": "Python 3.12.3", + "registered_commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "Exact native rows, owned entry columns, event ranks, independent source identities, p16 Laurent controller, complete asymmetric invoice, two interval engines, compiler and outer predicates, negative controls." + }, + { + "argv": [ + "{python}", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "The same checks remain active with Python assertions disabled." + } + ], + "normal_stdout_result": { + "gain_over_PR4610": "2871/5000000000", + "kappa": "60447/20000000", + "paid_calls": 64372, + "productive_fields": 10912, + "raw_root_interval": [ + "302238736347/100000000000000", + "75559684087/25000000000000" + ], + "status": "PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION" + }, + "optimized_stdout_result": { + "gain_over_PR4610": "2871/5000000000", + "kappa": "60447/20000000", + "paid_calls": 64372, + "productive_fields": 10912, + "raw_root_interval": [ + "302238736347/100000000000000", + "75559684087/25000000000000" + ], + "status": "PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION" + }, + "full_result_evidence": "outputs/owned-relation-5377-cold-validation-20261024/snapshot/research/kappa-owned-relation-20261023/RESULT.json", + "full_result_sha256": "1937b2e1fb4bec0fa1b0d2428a52734c554152538ac8930605bd46704f1c7320", + "artifact_equality": "Both unmodified registered commands compare their freshly reconstructed complete result and decompressed literal WORD against the exact committed artifacts; both passed. --write was never used.", + "native_negative_controls": { + "missing_owned_input_clear": "Every independent main/helper endpoint: 0", + "uncleared_owned_output": "Every owned entry column is erased at return", + "under_or_overstated_paid_rank": "Exact paid rank and frame", + "wrong_copy_gauge": "Exact scalar destination frame", + "wrong_relation_sign": "Every independent main/helper endpoint: 0", + "wrong_snapshot_source": "Zero identity requires an identically zero full row", + "wrong_zero_input_frame": "Zero identity requires an identically zero full row" + }, + "arithmetic_negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unearned_helper_credit": "Rejected by the independent complete census", + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "control_count_per_mode": 12, + "total_control_executions": 24, + "all_54_strict_outer_positive": true, + "all_four_functional_positive": true, + "bound": { + "status": "PASS_COMPLETE_REGISTERED_NORMAL_AND_OPTIMIZED", + "argv": [ + "/usr/bin/python3", + "-B", + "scripts/research_package.py", + "--package", + "research/kappa-owned-relation-20261023" + ], + "cwd": "/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/owned-relation-5377-cold-validation-20261024/snapshot", + "exit": 0, + "resource_stop": null, + "seconds": 94.34425078798085, + "peak_sampled_descendant_rss_kib": 153572, + "total_timeout_seconds": 1260, + "rss_limit_kib": 1048576, + "per_registered_command_timeout_seconds": 600, + "scientific_bytes_changed": [], + "hash_inventory_files": 24, + "scope": "One own execution of the registered normal then optimized commands; no independent reviewer script rerun, Lean, native build or historical archive replay." + }, + "evidence_sha256": { + "SOURCE-HISTORY-PREFLIGHT.json": "b4f01b807f1a53bccf542e96d526d683a721e0e5848abd3a02d83d7681d1f12a", + "REGISTERED-PREFLIGHT.json": "cf0111b1ff06b166e0435c1587c0e9001d7d761401da9d7c1cfef84d90b01336", + "REGISTERED-COMMIT-PREFLIGHT-CORRECTED.json": "b99af9e62e506640a766a5d9d83a02732c1a8126593ca8ea1b06fb0847215eaf", + "HEAD-WORKING-BLOB-BINDINGS.json": "04d465c90bd9ccc4299f762c12c1e599cad6d29db23a5df81e5c4a29fac3de26", + "PRE-RUN-HASHES.json": "35aa2409a422a0f9ba3fdedca6971a88f3bc6da1a9ec83634686a3b8e0e02206", + "POST-RUN-HASHES.json": "35aa2409a422a0f9ba3fdedca6971a88f3bc6da1a9ec83634686a3b8e0e02206", + "BOUNDED-REGISTERED-RUN.json": "93a2b28e5a7b0b2720d8eefc2273925db60b5b4bd8af500b0308c92bc7607a39", + "REGISTERED-COLD.stdout.log": "47d795c51b65d124fd2667d42d2fe49fa51facac026e0529a7ab81b07d8b2477", + "REGISTERED-COLD.stderr.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "PHYSICAL-EXTENSION-REVIEW.md": "1f386f91d57e349762a0e474c67997d653ff27a48a17eeab8c2e49bcd9f6a142" + }, + "delegated_review_evidence": { + "outputs/owned-relation-5377-physical-review-20261024/independent-result.json": { + "sha256": "ea1f513c9288b8eb8c379158d4088d1612e2472f1f075426d324ef435abe2601", + "execution_owner": "separate delegated reviewer; not this cold worker" + }, + "outputs/owned-relation-5377-cost-review-20261024/RESULT.json": { + "sha256": "c35e972b649f6004fd5706d22efa4206f29240f1569b512e4c422b54cd3cae65", + "execution_owner": "separate delegated reviewer; not this cold worker" + }, + "outputs/owned-relation-5377-cost-review-20261024/REPORT.md": { + "sha256": "6c97edcbd69ffab608f6dd743071043ea53bc83687dabb82eb474229056eea03", + "execution_owner": "separate delegated reviewer; not this cold worker" + } + }, + "assumptions": "Exactly five selected generic framework assumptions, source-bound PR5241 phase foundation and independently reviewed constructive relation/ownership/precision extension. No unconditional or Lean theorem.", + "selected_record_changed": false, + "external_writes": false +} diff --git a/research/owned-relation-independent-validation/evidence/cold/run_guarded_registered.py b/research/owned-relation-independent-validation/evidence/cold/run_guarded_registered.py new file mode 100644 index 0000000000..c2ba986e0d --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cold/run_guarded_registered.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python3 +"""One bounded serial registered replay; local review orchestration only.""" +from pathlib import Path +import datetime, hashlib, json, os, signal, subprocess, sys, time + +HERE = Path(__file__).resolve().parent +REPO = HERE / 'snapshot' +PACKAGE = 'research/kappa-owned-relation-20261023' +LIMIT_SECONDS = 1260 +LIMIT_KIB = 1024 * 1024 + +def hashes(): + return {str(p.relative_to(REPO)): hashlib.sha256(p.read_bytes()).hexdigest() + for root in ('research', 'scripts', 'docs') + for p in sorted((REPO / root).rglob('*')) if p.is_file()} + +def descendants(pid): + found = set() + todo = [pid] + while todo: + current = todo.pop() + if current in found: + continue + found.add(current) + try: + raw = Path('/proc', str(current), 'task', str(current), 'children').read_text() + todo.extend(map(int, raw.split())) + except (FileNotFoundError, ProcessLookupError): + pass + return found + +def rss(pid): + try: + lines = Path('/proc', str(pid), 'status').read_text().splitlines() + return next((int(x.split()[1]) for x in lines if x.startswith('VmRSS:')), 0) + except (FileNotFoundError, ProcessLookupError): + return 0 + +def main(): + before = hashes() + (HERE / 'PRE-RUN-HASHES.json').write_text(json.dumps(before, indent=2) + '\n') + env = {k: v for k, v in os.environ.items() + if not k.startswith('GIT_') and k not in ('PYTHONPATH', 'PYTHONOPTIMIZE', 'LEAN_AUDIT_BIN')} + env.update(PYTHONDONTWRITEBYTECODE='1', PYTHONUNBUFFERED='1', + GIT_NO_REPLACE_OBJECTS='1', GIT_NO_LAZY_FETCH='1', GIT_GRAFT_FILE=os.devnull) + scratch = HERE / 'scratch' + scratch.mkdir(exist_ok=False) + env['TMPDIR'] = str(scratch) + command = [sys.executable, '-B', 'scripts/research_package.py', '--package', PACKAGE] + started = time.monotonic() + peak = 0 + stop = None + samples = [] + with (HERE / 'REGISTERED-COLD.stdout.log').open('wb') as out, (HERE / 'REGISTERED-COLD.stderr.log').open('wb') as err: + process = subprocess.Popen(command, cwd=REPO, env=env, stdout=out, stderr=err, + start_new_session=True) + (HERE / 'LIVE-HANDLE.json').write_text(json.dumps({'pid': process.pid, 'argv': command, + 'cwd': str(REPO), 'utc': datetime.datetime.now(datetime.timezone.utc).isoformat()}, indent=2) + '\n') + while process.poll() is None: + seconds = time.monotonic() - started + members = descendants(process.pid) + total = sum(rss(pid) for pid in members) + peak = max(peak, total) + samples.append({'seconds': seconds, 'rss_kib': total, 'pids': sorted(members)}) + if seconds > LIMIT_SECONDS: + stop = 'total_timeout' + if total > LIMIT_KIB: + stop = 'aggregate_descendant_rss' + if stop: + os.killpg(process.pid, signal.SIGKILL) + break + time.sleep(0.1) + code = process.wait() + after = hashes() + (HERE / 'POST-RUN-HASHES.json').write_text(json.dumps(after, indent=2) + '\n') + changed = sorted(k for k in before.keys() | after.keys() if before.get(k) != after.get(k)) + result = {'status': 'PASS_COMPLETE_REGISTERED_NORMAL_AND_OPTIMIZED' if code == 0 and stop is None and not changed else 'FAIL_OR_INCOMPLETE', + 'argv': command, 'cwd': str(REPO), 'exit': code, 'resource_stop': stop, + 'seconds': time.monotonic() - started, 'peak_sampled_descendant_rss_kib': peak, + 'total_timeout_seconds': LIMIT_SECONDS, 'rss_limit_kib': LIMIT_KIB, + 'per_registered_command_timeout_seconds': 600, 'scientific_bytes_changed': changed, + 'hash_inventory_files': len(before), 'samples': samples, + 'scope': 'One own execution of the registered normal then optimized commands; no independent reviewer script rerun, Lean, native build or historical archive replay.'} + (HERE / 'BOUNDED-REGISTERED-RUN.json').write_text(json.dumps(result, indent=2) + '\n') + print(json.dumps({k: v for k, v in result.items() if k != 'samples'}), flush=True) + return 0 if result['status'].startswith('PASS_') else 1 + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/research/owned-relation-independent-validation/evidence/cost/FREEZE.json b/research/owned-relation-independent-validation/evidence/cost/FREEZE.json new file mode 100644 index 0000000000..abef8086b9 --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cost/FREEZE.json @@ -0,0 +1,135 @@ +{ + "head": "c448d13c71908647f968b06cddb795ce7d288139", + "canonical_main": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "author_base": "7c472563474e60185e6ca101a17622133d047e56", + "selected_kappa": "15108879/5000000000", + "audit5241_head": "13efb5fc5f3b7c14ec2cfa181dd9eb6480972cf2", + "provenance": "Exact-head GitHub connector files shared by physical reviewer; price.py independently fetched by this reviewer; immutable source copied from authenticated5241 capsule and checked against5377 source pins. Main guidance from sole monitor pinned responses. Git network lazy-fetch unavailable; no ancestry claim newly established here.", + "files": [ + { + "file": "4610-round6-ARITHMETIC.json", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3" + }, + { + "file": "4610review-pinned.txt", + "sha256": "b84f833e3072cbab372fbda2ece98fbc031c15e590cf73003ddea35a5222e148", + "git_blob": "bf5ff049da5fa07f9bf71176dfafe3343b7ac93d" + }, + { + "file": "4610validation-pinned.txt", + "sha256": "dac94ab6a32b5b8ab21282ecb25ce50e3e936196a0dfcae3d71717ceb99f3319", + "git_blob": "98fa64f2795dc9ba7fda012b723b6b620b153e70" + }, + { + "file": "ACTUAL-WORD.json.gz", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e" + }, + { + "file": "FINITE-TEMPLATE-CLOSURE.md", + "sha256": "3f8508c63862dd83968bd30df91b08ba5afcee1e10db15ca546cdff0caef95d9", + "git_blob": "9917ac5543608047fd368e5e75f0851310f53584" + }, + { + "file": "README.md", + "sha256": "eb853337dfaf306808d77538e448a78f16021a2e73295078b4b2f4ff6ea835c4", + "git_blob": "777f4e1d5114e35ba6de2a8e818b790b16aca655" + }, + { + "file": "RESULT.json", + "sha256": "1937b2e1fb4bec0fa1b0d2428a52734c554152538ac8930605bd46704f1c7320", + "git_blob": "27b4e5470812c2b9feaa54fbfe867b3fb68def68" + }, + { + "file": "SOURCES.json", + "sha256": "eca6dd5ac3028a72e016e0c8a265be702dd6c4daf481bc009524577ff5e7c831", + "git_blob": "9854abbb4f66f20aad8ab5016ede8319cd47519c" + }, + { + "file": "SPECIALIZATION.md", + "sha256": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c", + "git_blob": "7ee84b30892f7354e1c36611f1a5e9b082dc6147" + }, + { + "file": "TASK.json", + "sha256": "b9a9ace02d10791b49cf113dd6a19501b297920a29b9a4d5585e25ef4e8ef92f", + "git_blob": "f5df24ffe3bc51288ab57d55494b1db8684d7de9" + }, + { + "file": "VERIFY.json", + "sha256": "1fc62a3afd087aa63f8d993beb1cba944b9b441824cd14e9135e792fcd45bab8", + "git_blob": "8098df4c806a6c6e9e2be7253ba4101744dab08d" + }, + { + "file": "WORD.json.gz", + "sha256": "8d913767ad773839995e54e4d80aeff692a86687d0f78153311c8ad62b7ba1bc", + "git_blob": "5e79bd826c6ca1e782766ea0ae28a61d136303d1" + }, + { + "file": "agents-initial.txt", + "sha256": "eb25d8ec495b80190a4b1a634710819bb74f0fae88d5203285c2b75b6f147347", + "git_blob": "aea5573d1b65cef7d9e08ced46d869e75da8145b" + }, + { + "file": "autoresearch-initial.txt", + "sha256": "d16f0d3bb4d4b213d06c128db6d6460b0fe9ec1ac5a6c1ea1febf1db40e7b60d", + "git_blob": "2fe84a7b30b1e26e60ce0ec4775894eb1831c5d6" + }, + { + "file": "compiler.py", + "sha256": "4ec862afb1b0c18cecebec9b04d692be37083da64814da79ad692da96fd62bb5", + "git_blob": "6a6f9373fe33d20e6aa7588ddcf86dde6a33a26a" + }, + { + "file": "contributing-initial.txt", + "sha256": "8a49fe97e2ad088a2b2e0c5b222aaab08752783b1f9c1260790d7dd13011d215", + "git_blob": "fe54f23f19b082a9f8df3da9b2e205f7e230acf3" + }, + { + "file": "controller-CONTROLLER.json", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5" + }, + { + "file": "mixed_target_probe.py", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e" + }, + { + "file": "native.py", + "sha256": "85d994fc5661bfa53c4b42f79955ff74ffe70072163cb02fa76cd79efbcc0c97", + "git_blob": "b8249ed7ba981a798ba282a6aeabd81a600bda36" + }, + { + "file": "price.py", + "sha256": "e228a48de6138257da7520bb57567a275c402289c90fe7e94f0ef2ad6371f836", + "git_blob": "6077adf74c1a154e5f790411f774a52745eb5281" + }, + { + "file": "priorities-pinned.txt", + "sha256": "7ea971a336bf526719ae1f21617038301ab95d9853a38b92c332a9ffb968297a", + "git_blob": "b4ece97a60dcc3a33b04d83e9f1093e60326ac4a" + }, + { + "file": "query-thinned-RESULT.json", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c" + }, + { + "file": "selected-initial.txt", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e" + }, + { + "file": "verify.py", + "sha256": "c4d4fe9b74db1d47fbbfc0c602315d8256a15f0ad0e50b9fcfe2249bf65916f1", + "git_blob": "b19f7d0ca4a6e61a0a75595bbc413f9341e84717" + } + ], + "outputs": { + "check_cost.py": "eb66bad5d584ab29d29dd3e9f2fa7b2e71405fc1b05a659eb299c428c1332443", + "RESULT.json": "c35e972b649f6004fd5706d22efa4206f29240f1569b512e4c422b54cd3cae65", + "REPORT.md": "6c97edcbd69ffab608f6dd743071043ea53bc83687dabb82eb474229056eea03" + } +} diff --git a/research/owned-relation-independent-validation/evidence/cost/REPORT.md b/research/owned-relation-independent-validation/evidence/cost/REPORT.md new file mode 100644 index 0000000000..aa855c967b --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cost/REPORT.md @@ -0,0 +1,94 @@ +# Independent cost and compiler review of PR5377 + +Static gate: **PASS for the complete invoice, directed scalar arithmetic and same-premise finite-template extension**, conditional on the separately audited COPY/zero/ownership argument and the five selected framework assumptions. This is a recommendation for one serial complete cold replay, not a selected-record update or a claim that that replay has occurred. + +Reviewed candidate: Ali Romman's PR5377 head `c448d13c71908647f968b06cddb795ce7d288139`, package `research/kappa-owned-relation-20261023`. Current canonical main is pinned by the sole monitor at `1ec1119972c9aefe42525172d07b332fcff81cb4`. The selected value is PR4610/PR5241 `15108879/5000000000=.0030217758`. Candidate source base is `7c472563474e60185e6ca101a17622133d047e56`; source word remains Cao Yifan's final head `20bb93cd990d2ff683e4d0fc56b87a42cd5d3296`. These three source roles are distinct. + +The frozen source word, round6 arithmetic, controller and supplied candidate word are identified by SHA256 and Git blob in `FREEZE.json`; `SOURCES.json` is the author's external-input manifest. Source word SHA256 is `7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05`, decompressed payload `cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`. Candidate word SHA256 is `8d913767ad773839995e54e4d80aeff692a86687d0f78153311c8ad62b7ba1bc`. Git network lazy-fetch was unavailable in this worker; exact-head connector materialization and authenticated source capsules were used. New canonical ancestry verification remains a root/preflight obligation. + +## Independently executed check + +`python3 -B outputs/owned-relation-5377-cost-review-20261024/check_cost.py` completed in 18.74 seconds and produced `RESULT.json` with status `PASS_INDEPENDENT_SCALAR_CENSUS_MOMENT_COMPILER_OUTER_SCREEN`. + +The script reads the literal candidate word and controller. It does not import either PR5377 interval engine, the candidate native verifier, or its price module. Its new directed rational engine uses an atanh logarithm series of 60 terms with a geometric tail, a 32-term positive exponential with explicit remainder and dyadic range reduction, and outward rounding to a `10^55` grid. All acceptance comparisons use fractions and integers. Only the independent PR5241 manually transcribed outer ledger function is reused, explicitly; it is frozen as `compiler.py`. Source provenance and numerical independence are separate claims. + +The independently derived result is: + +| Obligation | Result | +| --- | --- | +| Actual controller incidence | 16 backward full calls, 2 forward full calls, 15 thin query shears | +| Full delta from selected PR4610 | minus 16 H1 and 16 H8 paid jobs; minus 16 H9 productive targets | +| Complete counts | 64,372 paid jobs; 10,912 productive fields | +| Target/paid rank masses | 239,742 / 238,990; surplus 752 | +| Claim/tested saving | .00302235 / .00302236 | +| Raw crossing | strict enclosure (.00302238736347,.00302238736348) | +| Complete fixed-profile uniqueness | negative derivative on [0,.05]; negative moment on [.05,1] | +| Charged paid ratio alpha | .999999971483293515393313955729...; below 1 minus 10^-9 | +| Paid/completion tails gamma/delta | .9563109807264388... / .9574596897585276...; both below .97 | +| Completion and splitting | power 1024, cutoff20, floor21, offset1/5, both charged tails and rounding pass | +| Uniform gap | 1/700000000; uniform saving 2115651/700000000 | +| Compiler | j=44836, H=31385200000000, N=2^H; strict integer success and preceding-grid failure | +| Outer predicates | all 54 strict plus four functional; minimum strict slack 1/7000000000 | +| Scalar/route allowance | backward158214, forward158120; conservative route4806000; sum below10^7 | +| Complete raw allowance | 181098496 below10^9 | + +The local backward paid profile is `{1:2200,2:412,3:510,4:127,5:40,8:7}` and helper profile `{4:28,7:7,8:47,9:325}`. Forward keeps the source profiles. Full invoice reconstruction accounts for actual idle windows and diagonal main ranks, then compares to an independent substitution in the old round6 bill. The local changed scalar macros cost exactly 46 extra primitive allowances: four signed unit ADDs cost32, seven new COPY/CLEARs cost14. Across16 backward occurrences the scalar difference is736. No productive L230 output is credited. For 09^t`, so the full moment gain is `16(1+8^t-9^t)>0`. + +The global crossing screen is stronger than a positive sample at the claim: the derivative upper bound is below -195778.63 throughout[0,.05], and the remaining interval moment upper bound is below -6836.54. The integer grid result is a threshold for this sufficient compiler inequality, not an optimum over compilers. The concavity of `log(step*j+1)-j*log(2)/1000` gives one positive crossing, making the adjacent integer tests a valid minimum on that particular grid. + +Four independently applied ledger controls reject insufficient old BIT saving .0027, a closed uniform gap, charging the tested endpoint as the final claim, and epsilon=1. Productive-credit fraud is excluded by the literal census, which omits owned L230 in backward calls before assembling the full invoice. Physical review owns the separate candidate native controls. + +## Constructive extension of selected5241 precision and tape specialization + +This section supplies an implication from the selected generic contracts, rather than adding a candidate-specific premise that the new syntax is cheap. The pinned selected PR5241 `SPECIALIZATION.md` sections1,4–6 and `FINITE-TEMPLATE-CLOSURE.md` sections2–5 explicitly cover a fixed finite scalar/owned-storage program, all-column free-word evaluation, whole completed jobs, distinct suspended banks, fresh semantic constants and fixed-tape execution. They do not limit the permitted owner list to the original one center. + +The changed scalar instructions belong to precisely that alphabet. Four additions have coefficients plus or minus one and same exact physical frame. COPY and CLEAR act on proved owned fields. Identity on a row proved identically zero has no physical instruction; its new chart is justified by the physical review. No new monomial or phase recipe enters. Every retained paid factor, warp and main chart can therefore use the selected5241 phase-bearing catalogue and171/342 primitive-record bound. The changed algorithm contains no new gather primitive or movement exponent. + +The extra local scalar tariff and routes are freshly charged. Conservative routing retains every old408-helper wrapper, all old local paid jobs at their maximum direction,240 warps and448 main charts, and adds four route groups for two newly owned lifetimes. Thus the candidate does not obtain a lower tariff by relabeling L230 owned. The raw program needs one additional physical slot C1; L230 occupies its former slot. At the controller level, each backward full occurrence has three owned banks(C0,C1,L230), each forward full occurrence one(C0):50 LOCAL banks in the deliberately conservative disjoint allocation, plus the source's separately charged query, completion and compiler banks. This50 is a raw controller count, not the final expanded bank count. + +Now fix the candidate mixed word, the1024-fold product, charged completion/splitting, and the finite compiler at N=2^31385200000000, before allowing multiplication input width to grow. Run the retained finite emission/allocation algorithm on this new word. Define its own W as full productive arrays, P as rank-one children, and O as all physical owned banks. In counting O, allocate three banks for every instantiated backward local occurrence and one for each forward local occurrence; count all query, completion, splitting and compiler banks in addition. More conservatively, three times all LOCAL occurrences plus those additional source banks suffices. Every simultaneously suspended occurrence has a distinct bank. No factor of O contributes productive output credit, and no single-bank-per-depth reuse is allowed. + +Let R count every actual movement/native/normalizer/route record in the final expanded word. Define G by summing the fresh scalar primitive allowances, adding the selected conservative unit-phase charge8 per non-scalar and normalization record throughout the expanded word. The four new unit ADDs add at most four logarithmic height units per local occurrence and are already dominated by their32 primitive allowances; COPY/CLEAR add zero height but retain their14 execution allowances. Frame permutations and unit phases add no magnitude/denominator height, while retaining their movement cost in R. This is a finite algorithm for new integers W,P,O,R,G; it does not reuse an old raw or expanded cap. The old formal prefix L1/denominator numbers are optional corroboration, not a replacement for this semantic charge. + +Substitute these **new** integers into the unchanged source prescription: + +``` +Z = W+O +E = 64*(Z+N+P+G+1)^3 +B = P+E +C0 = 32*N*B^2 +C1 = 1 +``` + +For positive integer N and nonnegative W,P,O,G with W>=1, putting S=Z+N+P+G+1 gives +`2GZ^2+8P+4Z+4+32N <= 2S^3+48S <64S^3=E`. +The same completed-child estimate then gives `A(e)<=A(floor(e/N))+P*floor(e/N)+E`, and induction yields `A(e)<=2Be`; the layer envelope is below C0*d. Correlated owned values do not weaken this norm bound: each child finishes before its parent resumes, each COPY duplicates a complete same-frame value, and permitted CLEAR deletes an owned value. No rounded or compressed child return is introduced. + +With this new W, use the unchanged source ordinary stock rule `q0=ceil(log2 W)*D(d)` and whole row factor at least W^D(d). O changes the fixed storage multiplier and parking passes. Simultaneous BIT and complex stocks must retain their product; taking their maximum is not licensed. The existing strict functional stock predicates are recomputed here at the candidate outer parameters. The fixed number of tapes, matrices and routing recipes uses new W,P,O,R,N. Its setup degree and coefficients may increase, but remain fixed before input growth and are absorbed by the same retained superpolynomial record fiber once epsilon<1. The new eventual threshold must use the new C0 and setup degrees. For example the source constructive fine-grid prescription with epsilon=a/b uses bitlength L of4*C0*ceil(c), t=max(4,ceil(bL/(b-a))), p0=2^t. There is no claim that old p0 or an old numerical template-size cap still applies. + +The independently passing alpha/tail/shifted-exit/eta/logarithmic-majorant/integer inequalities supply the retained mixed-target compiler's numerical premises for the changed bill. The old controller Laurent identity and main endpoint/chronological commutation argument remain source-identical; the physical reviewer separately checks the changed local endpoints and disjoint helper-bank interpretation. The ordinary BIT interface is unchanged with admitted saving.0034. Its authenticated conversion/stock is reused; it is not re-proved by this complex screen. All54+4 outer inequalities are freshly satisfied using C1=1 justified above. + +Thus the candidate's changes fit the same five selected contracts: native_all_columns, owned_erasure, compiler, precision_tape, analytic_recovery. This establishes the required generic specialization extension under those assumptions, while preserving the remaining physical/analytic theorem assumptions themselves. It neither materializes the enormous compiled word nor independently executes fixed-tape precision or integer recovery. + +## Remaining gate and complete obligation map + +| Obligation | Coverage and disposition | +| --- | --- | +| Exact source/head/bytes | Frozen connector bytes and source capsules; root must finish canonical ancestry/working-byte preflight | +| Three row identities and tensor/free-word lift | Separate physical reviewer; not inferred from this invoice | +| COPY frame/gauge and zero physical identity | Separate physical reviewer; prerequisite for replacing the two jobs | +| Ownership, all retained arbitrary entries, private return | Separate physical reviewer; all three owned backward fields required | +| Retained native/paid phases | Source-identical selected5241 catalogue applies; final all-phase foundation audit is separately coordinated by root | +| p16 calls/idle/main/helper census | Fresh literal reconstruction here and physical review bank-incidence crosscheck | +| Original main controller endpoint | Source-identical Laurent and boundary proof reused; cold registered replay also recomputes it | +| Root, positive gain and fixed-profile ceiling | Fresh directed scalar check here | +| Completion, reserve, splitting and tails | Fresh directed scalar check here | +| Compiler height and uniform gap | Fresh exact rational/integer check here | +| Additional scalar/storage/routes | Fresh raw bill and constructive new expanded constants above | +| All-size precision, stock and fixed tapes | Same-premise constructive extension above; original physical assumptions retained | +| BIT and outer transfer | BIT source reuse, fresh conversion domain and54+4 arithmetic here; original analytic/recovery assumptions retained | +| Negative controls and emitted artifacts | Independent ledger controls here; physical controls separately; author complete registered normal/optimized cold replay still outstanding | + +Recommended next action: ONE serial complete registered cold replay after the physical gate and closed export are ready. `VERIFY.json` registers `python3 -B research/kappa-owned-relation-20261023/verify.py` and then `python3 -O -B research/kappa-owned-relation-20261023/verify.py`, each with600-second timeout, standard-library Python3.12. The standard package command is `python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023`. An export must preserve the9 exact input paths; only the small pure modules are loaded by that verifier. Do not run Lean, Docker or historical suites as a substitute. An author replay supplements these independent checks; its PASS alone would not prove the above applicability argument. + +No selected record, repository source, public post or Lean state was changed by this worker. Outputs are local review evidence only. Credit remains with Ali Romman for the changed relation/word, Cao Yifan for PR4610, Cinna Davis for the controller/helper lineage, zxv for native/compiler/precision machinery, Jacob Alan Sussman for mixed-target recursion, Chris R/Clear1nsight for PR5241 independent admission and all attributed physical/BIT/analytic predecessors. This review used substantial OpenAI Codex assistance and makes no independent-human acceptance claim. diff --git a/research/owned-relation-independent-validation/evidence/cost/RESULT.json b/research/owned-relation-independent-validation/evidence/cost/RESULT.json new file mode 100644 index 0000000000..5975458889 --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cost/RESULT.json @@ -0,0 +1,144 @@ +{ + "H": 31385200000000, + "away_moment_upper": "-34182747710376247990167913998096796602246940868624236327091/5000000000000000000000000000000000000000000000000000000", + "capacity": { + "eta": true, + "height_domain": true, + "height_encoding": true, + "initial_range": true, + "integer_success": true, + "normalized": true, + "preceding_grid_fails": true, + "shifted_exits": true, + "split": true, + "tail_block": true, + "total_tails": true + }, + "controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "derivative_upper": "-97889315019420058207499976618782634130619638823734973271109/500000000000000000000000000000000000000000000000000000", + "eta": [ + "1019635281556829958140945025847885756850714643749/5000000000000000000000000000000000000000000000000000000", + "163141645049092793302551204135661721096114343/800000000000000000000000000000000000000000000000000" + ], + "expanded_word_materialized": false, + "gain": "2871/5000000000", + "gap": "1/700000000", + "head": "c448d13c71908647f968b06cddb795ce7d288139", + "independent_native_replay": false, + "j": 44836, + "kappa": "60447/20000000", + "local_routes": 4806000, + "local_scalar": { + "backward": 158214, + "forward": 158120 + }, + "normalized": "2097152001953127/2097154147483648", + "outer_functional_count": 4, + "outer_min": "1/7000000000", + "outer_strict_count": 54, + "paid": { + "1": 41282, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 128 + }, + "rank_masses": [ + 239742, + 238990 + ], + "ratios": { + "alpha": [ + "4999999857416467576966569778645527061954322982193192739/5000000000000000000000000000000000000000000000000000000", + "9999999714832935153933139557291054123908645964386386073/10000000000000000000000000000000000000000000000000000000" + ], + "delta": [ + "9574596897585276619213348515125306962597456984954143379/10000000000000000000000000000000000000000000000000000000", + "9574596897585276619213348515125306962597456984954143719/10000000000000000000000000000000000000000000000000000000" + ], + "gamma": [ + "9563109807264388476183966069110939186746956808613120029/10000000000000000000000000000000000000000000000000000000", + "38252439229057553904735864276443756746987827234452483/40000000000000000000000000000000000000000000000000000" + ] + }, + "raw": 181098496, + "root": [ + "302238736347/100000000000000", + "75559684087/25000000000000" + ], + "root_signs": [ + [ + "1654180864758140801638144271742026171376018367/1250000000000000000000000000000000000000000000000000000", + "3308361729516281603276288543484052342785913733/2500000000000000000000000000000000000000000000000000000" + ], + [ + "-45934963440687655168371536193650439131625933/40000000000000000000000000000000000000000000000000000", + "-5741870430085956896046442024206304891381449293/5000000000000000000000000000000000000000000000000000000" + ] + ], + "scope": "Finite scalar/census check. Physical replacement and all-f specialization reviewed separately; same five conditional assumptions retained. Raw bound is not an expanded precision/storage bound.", + "seconds": 18.739914530015085, + "sha256": { + "4610-round6-ARITHMETIC.json": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de", + "ACTUAL-WORD.json.gz": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "README.md": "eb853337dfaf306808d77538e448a78f16021a2e73295078b4b2f4ff6ea835c4", + "RESULT.json": "1937b2e1fb4bec0fa1b0d2428a52734c554152538ac8930605bd46704f1c7320", + "SOURCES.json": "eca6dd5ac3028a72e016e0c8a265be702dd6c4daf481bc009524577ff5e7c831", + "SPECIALIZATION.md": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c", + "WORD.json.gz": "8d913767ad773839995e54e4d80aeff692a86687d0f78153311c8ad62b7ba1bc", + "compiler.py": "4ec862afb1b0c18cecebec9b04d692be37083da64814da79ad692da96fd62bb5", + "controller-CONTROLLER.json": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "native.py": "85d994fc5661bfa53c4b42f79955ff74ffe70072163cb02fa76cd79efbcc0c97", + "price.py": "e228a48de6138257da7520bb57567a275c402289c90fe7e94f0ef2ad6371f836", + "verify.py": "c4d4fe9b74db1d47fbbfc0c602315d8256a15f0ad0e50b9fcfe2249bf65916f1" + }, + "status": "PASS_INDEPENDENT_SCALAR_CENSUS_MOMENT_COMPILER_OUTER_SCREEN", + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5852 + }, + "tested": "75559/25000000", + "uniform_saving": "2115651/700000000" +} diff --git a/research/owned-relation-independent-validation/evidence/cost/pr-pinned.json b/research/owned-relation-independent-validation/evidence/cost/pr-pinned.json new file mode 100644 index 0000000000..17bf5dc372 --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/cost/pr-pinned.json @@ -0,0 +1,55 @@ +{ + "content": [ + { + "type": "text", + "text": "Action completed." + } + ], + "structuredContent": { + "pull_request": { + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/5377", + "number": 5377, + "state": "open", + "merged": false, + "mergeable": true, + "draft": false, + "body": "This construction gives **conditional κ = 60447/20000000 = 0.00302235**, a gain of **0.0000005742** over Cao Yifan's final [PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610) value, 0.0030217758. It changes the complete paid profile and moves its raw crossing. The selected frontier is unchanged.\n\nThe [proof and complete bill](https://github.com/aliromman/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/README.md), [exact result](https://github.com/aliromman/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/RESULT.json), [literal word](https://github.com/aliromman/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/WORD.json.gz) and [source pins](https://github.com/aliromman/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/SOURCES.json) define the review scope.\n\nIn each backward call, make L230 private and prepare `h230 = h324 - h326 - h328 + h333` from four arbitrary cold helpers. Debit its rank-nine productive output. Let `Delta = h230 - h324 + h326 + h328 - h333`. Exact replay of the unrestricted source gives `C0 - saved_L92 = Delta/4` at center event 11332, and `L92 = -Delta/4` at climb event 15584. The saved value is taken just after event 11205 in the same frame as the center output. Under the prepared relation, one owned copy replaces the rank-eight job, and physical identity on a proved zero row replaces the rank-one job. All event indices are zero-based.\n\nAll 224 main inputs and the other 407 backward helper inputs remain arbitrary and independent. Every retained output keeps its complete source operator. Forward calls keep all 408 helpers. Explicit clears remove arbitrary owned entry values and erase every private output. One new private slot and 46 additional scalar operations per backward call are charged. Every retained Gaussian operator, native map, frame gauge and main adapter is unchanged.\n\nThe p16/a7 controller has 16 backward calls, two forward calls and 15 query shears. Its complete difference is **−16 H1 −16 H8 paid jobs and −16 H9 targets**. For every `00`. The new bill has **64,372 paid jobs, 10,912 productive fields and rank surplus 752**, with every main, idle, query and completion term included.\n\nTwo rational interval engines check the complete bill. The fixed-profile crossing lies in **(0.00302238736347, 0.00302238736348)**. The claimed κ leaves more than **0.00000003736347** raw headroom. The separately tested saving is 0.00302236. Both completion tails, the finite compiler at `N=2^31385200000000`, and all **54 strict plus four functional outer predicates** pass. The complete raw nonrecursive bound remains **181,098,496 < 10^9**.\n\nBase: canonical main [7c472563474e60185e6ca101a17622133d047e56](https://github.com/CrocSwap/integer-mult-bounds/commit/7c472563474e60185e6ca101a17622133d047e56), priority revision 7. The source is the final [PR #4610 word](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz) at `20bb93cd990d2ff683e4d0fc56b87a42cd5d3296`; all consumed bytes are in the recorded main base. The [scoped Discussion claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737) distinguishes this changed inventory from the original-input cache and all-helper-return investigations. Live PRs and Discussions were checked again before publication.\n\nUse standard-library Python 3.12 from the repository root:\n\n```sh\npython3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023\n```\n\nBoth registered normal and optimized replays pass:\n\n```text\nPASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION\n```\n\nVerification covers exact free-word rows in both source and candidate orientations, all independent and owned entry columns, frame/rank checks, two separately computed source identities, the p16 Laurent factorization and scalar boundaries, independent full invoice counts, two rational interval engines, the fixed-profile ceiling, compiler and outer inequalities. Seven native and five cost/outer controls reject wrong relation, ownership, snapshot, gauge, rank, helper credit and compiler assumptions. Metadata, committed-byte checks, official export integrity and Git-free replay also pass. The optional full-history preflight is not claimed in this shallow checkout.\n\nThe [source absolute-phase receipt](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz) is authenticated and reused. New operations are same-frame scalar operations, owned copies/clears and identity on zero; there is no new Gaussian phase recipe. Full source phase lowering, BIT native replay, Lean, Docker, physical tape/precision execution, analytic decomposition and integer recovery were not rerun. The bound retains the source permitted-erasure, whole-job, mixed-target all-size, native, precision, tape, analytic, prime and exact-recovery contracts. It is a conditional construction with exact finite evidence, not an unconditional theorem, practical speedup or independent human acceptance. The compiled word is algorithmically specified and not materialized.\n\nCao Yifan supplied the source construction and prior κ in [PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610). Cinna Davis supplied the p16 controller and helper lineage in [PR #4470](https://github.com/CrocSwap/integer-mult-bounds/pull/4470). The [pricing source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-interface-round2-20261022/price_profile.py) retains zxv's completion/compiler and Jacob Alan Sussman's mixed-target credit; Dugongue's transported frames and the wider native lineage remain credited. zxv's [PR #5283](https://github.com/CrocSwap/integer-mult-bounds/pull/5283) supplied the cache-contract handoff to find actual matching rows and lifetimes; its standalone example is not used here. The new result is this helper relation, its exact native realization and its complete positive bill.\n\nPrepared by Ali Romman with substantial OpenAI Codex assistance. Apache-2.0. Next review task: check the three source rows and COPY/zero argument, then the inherited transfer assumptions. No broader helper-relation search is claimed.\n", + "title": "Conditional κ = 0.00302235 (+5.742e-7 over #4610): one owned helper relation", + "base": "main", + "base_sha": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "head": "codex/kappa-owned-relation-20261023", + "head_sha": "c448d13c71908647f968b06cddb795ce7d288139", + "head_repo_id": 1413892976, + "head_repo_full_name": "aliromman/integer-mult-bounds", + "merge_commit_sha": "08e75e22ae4d39e8e3bcfafab789aa349c0ecfe6", + "user": { + "login": "aliromman", + "name": "aliromman", + "email": null, + "avatar_url": "https://avatars.githubusercontent.com/u/226877337?v=4", + "id": 226877337 + }, + "requested_reviewers": null, + "requested_team_reviewers": null, + "diff": "@@ -0,0 +1,249 @@\n+# Conditional kappa 0.00302235 from one owned helper relation\n+\n+This construction gives **conditional kappa = 60447/20000000 = 0.00302235**.\n+The gain over Cao Yifan's final\n+[PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610)\n+value, 0.0030217758, is **2871/5000000000 = 0.0000005742**.\n+The construction changes the complete paid profile. It does not obtain the\n+gain by taking more digits of the old root.\n+\n+One helper becomes owned storage in each backward call. A prepared relation\n+then makes one paid rank-eight center equal to an earlier saved value. The same\n+relation makes one later rank-one job act on zero. Both jobs can be removed,\n+with the rank-nine helper credit also removed. All other independent outputs\n+and all main interfaces keep their source operators.\n+\n+[WORD.json.gz](WORD.json.gz) is the complete emitted word.\n+[RESULT.json](RESULT.json) records the exact native checks, the two source\n+identities, both full profiles, completion, compiler and outer calculations.\n+[SOURCES.json](SOURCES.json) pins every external input by Git blob and SHA256.\n+The proof below explains why the changed word has the stated contract.\n+\n+## Source and scope\n+\n+The base is canonical main\n+[7c472563474e60185e6ca101a17622133d047e56](https://github.com/CrocSwap/integer-mult-bounds/commit/7c472563474e60185e6ca101a17622133d047e56).\n+The native source is the final PR #4610 word at\n+[20bb93cd990d2ff683e4d0fc56b87a42cd5d3296](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz).\n+Its decompressed SHA256 is\n+`cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`.\n+The comparison value and old crossing come from its\n+[final compiler arithmetic](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json).\n+All consumed bytes are already in the recorded main base.\n+\n+This is one instance of the current `complex-new-helper-inventory` priority.\n+The [scoped claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737)\n+reserves only the relation and two replacements below.\n+[Discussion #5355](https://github.com/CrocSwap/integer-mult-bounds/discussions/5355)\n+retains all 632 independent inputs and all eight centers.\n+[Discussion #4930](https://github.com/CrocSwap/integer-mult-bounds/discussions/4930)\n+retains every original helper endpoint. This construction removes the\n+independent L230 job in backward calls. It does not claim those broader scopes.\n+The selected certificate is unchanged. A fresh check at 20:20 UTC found that\n+Discussion #5355 had released its original-input scope without a saving.\n+Canonical main still had the recorded base commit.\n+\n+## Exact replacement proof\n+\n+All indices below are zero-based indices in the frozen backward program.\n+Let `h_r` be the source logical input of helper `Lr`. The five helpers in\n+\n+```math\n+\\Delta=h_{230}-h_{324}+h_{326}+h_{328}-h_{333}\n+```\n+\n+all start in frame 0 and finish in frame 1, of rank nine. The new backward\n+contract has 224 independent main fields and 407 independent helper fields.\n+L230 is private. Clear it, then use four same-frame ADDs to prepare\n+\n+```math\n+h_{230}=h_{324}-h_{326}-h_{328}+h_{333}.\n+```\n+\n+The other helper inputs remain arbitrary and independent. This preparation\n+sets Delta to zero for every input. It uses no recursive job. It removes one\n+rank-nine productive target; the dependent field receives no output credit.\n+\n+Run the original source program on unrestricted inputs. Let `q` be the\n+logical row of L92 just after event 11205, a paid climb into frame 254.\n+The separate predecessor row engine gives these exact identities:\n+\n+| Source position | Exact logical row |\n+| --- | --- |\n+| C0 at the rank-eight center, event 11332 | `q + Delta/4` |\n+| L92 at the rank-one climb, event 15584 | `-Delta/4` |\n+\n+These identities are over rational coefficients and free native operator\n+words. They hold for every value of every source input and for every invertible\n+interpretation of the native symbols. They do not use numerical samples or an\n+assumed relation between distinct native maps.\n+\n+For every positive tensor width f, substitute each native generator by its\n+source operator tensor power and each inverse by the inverse tensor power.\n+This defines a representation of the free group. Keep the rational scalar\n+coefficients outside the substitution. The two row identities therefore hold\n+at every such width. In particular, Delta/4 remains a scalar linear form; it\n+is not a tensor power of that sum. This uses the termwise argument recorded in\n+the [free-word tensor audit](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/free-word-tensor-lift-audit/PROOF.md),\n+which credits Cinna Davis's proposal and ToikY's scoped audit. Physical frame\n+realization and the complete all-size compiler retain their source contracts.\n+\n+Immediately after event 11205, clear a new private field C1 in frame 254 and\n+COPY L92 into it. C1 is not written until the replacement of event 11332. At\n+that event, clear owned C0, set its frame to 254, COPY C1 into C0, then clear C1.\n+The copy coefficient is exactly one. Under Delta = 0, the copied field is the\n+same physical value as the old center output: the logical rows and the exact\n+frame gauge are equal. The old C0 input can be erased because C0 is owned.\n+This removes one rank-eight recursive job.\n+\n+At event 15584, L92 is exactly zero in every input column. The physical\n+identity therefore has the same result as the old rank-one frame change.\n+`zero_retag` records this fact. It performs no physical write and is accepted\n+only when the full exact row is empty and the current frame is 254. It then\n+records frame 1. This removes one rank-one recursive job. It does not erase a\n+main input or replace a nonzero transform with a free frame change.\n+\n+Every other event stays in source order. Clear private L230 at return. The\n+source clears C0, and the new program has already cleared C1. The original\n+linear endpoint identity, restricted by the prepared relation, gives all 224\n+main outputs and all 407 retained helper outputs. The literal new-word replay\n+checks these outputs separately, with all 631 retained inputs and all three\n+owned entry fields initially arbitrary. It also checks every scalar frame,\n+paid rank, native frame transition and final frame.\n+\n+The 4,429 source frames, 72 native maps, all remaining paid operators, and main\n+adapters are unchanged. The source\n+[absolute-phase certificate](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz)\n+is authenticated and reused. Same-frame COPY and identity on zero introduce no\n+phase recipe. The source's amplitude and Clifford-lowering checks are not\n+rerun by this package. The new free-word identities prove equivalence for the\n+source operators with their full phases, not just their projective classes.\n+\n+## Complete cost and conditional compiler\n+\n+The forward word is unchanged. Each backward call has these counts:\n+\n+```text\n+paid: {1:2200, 2:412, 3:510, 4:127, 5:40, 8:7}\n+helpers: {4:28, 7:7, 8:47, 9:325}\n+```\n+\n+The full p16/a7 controller contains 16 backward calls, two forward calls and\n+15 query shears. Thus the complete difference is **minus 16 H1 and 16 H8 paid\n+jobs, and minus 16 H9 productive targets**. It includes every idle and main\n+target. There are 64,372 paid jobs and 10,912 productive fields. Their rank\n+masses are 238,990 and 239,742; the surplus remains 752.\n+\n+For every real `0 < t < 1`, the complete target-minus-paid moment increases by\n+\n+```math\n+16(1+8^t-9^t)>0.\n+```\n+\n+For a direct proof, both `(1/9)^t > 1/9` and `(8/9)^t > 8/9`; multiply their\n+sum by `9^t`. The improvement is strict throughout the required range.\n+\n+The backward word has 158,214 real scalar operations under the source macro\n+allowance, exactly 46 more than its source. Its maximum formal prefix L1 norm\n+is 169, with maximum denominator 64; both equal the source bounds. The forward\n+bounds remain 457 and 32. One extra physical private slot holds C1. L230 uses\n+an existing slot. The route bound also charges two routes for each of the two\n+new owned lifetimes. The local scalar-plus-route bound stays below 10^7, and\n+the complete raw nonrecursive bound stays **181,098,496 < 10^9**. Preparation,\n+COPY, CLEAR and storage therefore do not introduce an unpaid recursive cost.\n+\n+Two rational interval engines check the complete moment. Its unique crossing\n+in `0 < kappa < 1` lies in\n+**(0.00302238736347, 0.00302238736348)**. The verifier proves the moment decreases\n+on `[0,0.05]` and remains negative on `[0.05,1]`. This is a ceiling for this\n+fixed complete profile, not an optimum over circuits or helper relations.\n+The claimed kappa leaves more than **0.00000003736347** raw headroom.\n+\n+The separately tested saving is 0.00302236. The paid/target ratio is below\n+`0.999999971483293515393313955730`, with reserve `1e-9`. Both charged tails are\n+below `0.97`. The source power 1024, cutoff 20, floor 21, tail offset 1/5,\n+complement factor 63/64 and logarithm power 1000 still pass. The compiler gap\n+is `1/700000000`, with `j=44836`, `H=31385200000000` and `N=2^31385200000000`.\n+The exact integer test `(H+1)^1000 < 2^44836` passes; the preceding grid integer\n+fails. The uniform complex saving is `2115651/700000000`. All 54 strict outer\n+predicates and four functional predicates pass, using the retained ordinary\n+BIT saving 0.0034.\n+\n+## Verification and reproduction\n+\n+Use Python 3.12 or 3.14, with the standard library only. From the repository root:\n+\n+```sh\n+python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023 --check-only\n+python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023\n+```\n+\n+The registered commands run normal and optimized Python. The direct command,\n+also used for a Git-free export, is:\n+\n+```sh\n+python3 -B research/kappa-owned-relation-20261023/verify.py\n+python3 -O -B research/kappa-owned-relation-20261023/verify.py\n+```\n+\n+Each prints status\n+`PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION`.\n+The verifier reconstructs the word and compares its bytes and exact result with\n+the published artifacts. `--write` is a separate authoring command. It changes\n+only this package's word and result after all checks pass.\n+\n+Fresh checks cover both source words, both candidate words, every independent\n+entry column and owned return, the two unrestricted source identities, retained\n+phase bindings, the p16 rational Laurent factorization, both scalar boundary\n+programs, two complete invoice counts, two rational interval engines, the fixed\n+profile ceiling, completion, compiler, BIT conversion and all outer predicates.\n+The emitted word replaces the old single `canonical.local_profile` metadata\n+field with explicit `paid_profiles` for the two directions.\n+\n+Seven native controls reject a wrong relation sign, omitted input clear, wrong\n+snapshot, wrong zero frame, wrong paid rank, wrong copy gauge, and omitted\n+output clear. Five cost/outer controls reject the lost helper's output credit,\n+old BIT stock, closed uniform gap, unfunded endpoint and closed epsilon.\n+\n+Normal and optimized registered replays passed on CPython 3.12.14. The direct\n+author check also passed on CPython 3.14. Source metadata and pins passed.\n+The optional full-history preflight is not claimed in the shallow checkout.\n+The publication handoff records export and committed-byte checks.\n+\n+The full source phase lowering, BIT native replay, Lean, Docker, physical tape\n+execution, numerical precision execution, analytic decomposition and integer\n+recovery are not rerun here. The complete bound retains those predecessor\n+contracts, including permitted owned erasure, whole-job normalizers, mixed\n+productive-target recursion and all-size closure. The expanded compiled word\n+is specified by a finite algorithm, not materialized. This is a conditional\n+construction with exact finite evidence, not an unconditional multiplication\n+theorem, a practical timing result or independent human acceptance.\n+\n+## Credit\n+\n+Prepared by Ali Romman with substantial OpenAI Codex assistance. Apache-2.0.\n+Cao Yifan's [PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610)\n+supplies the exact source word, phase evidence and previous compiler value.\n+Cinna Davis's [PR #4470](https://github.com/CrocSwap/integer-mult-bounds/pull/4470)\n+supplies the p16 controller and helper-interface lineage. The source code keeps\n+credit for Dugongue's transported frames, zxv's native and finite-compiler\n+work, Jacob Alan Sussman's mixed-target recursion and their predecessors.\n+The [pricing source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-interface-round2-20261022/price_profile.py)\n+and [literal native source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-rebuild/complex/native_extensions.py)\n+are pinned as provenance for the adapted checks.\n+\n+zxv's [PR #5283](https://github.com/CrocSwap/integer-mult-bounds/pull/5283)\n+supplies the related cache contract and the explicit handoff to find actual\n+matching rows and their lifetimes. Its standalone cache example is not part of\n+this word. The new contribution is the five-helper relation, its actual cache\n+and zero identities, the full owned-field replacement and the complete positive\n+bill. No priority is claimed for the general cache or paid-history ideas.\n+\n+## Open next questions\n+\n+Independent review should first check the three source rows and the physical\n+COPY/zero argument above, then the retained all-size and phase premises.\n+A later construction could test a different helper relation, but it must claim\n+a disjoint scope and pay every lost target and owned field. This package does\n+not classify such relations. [TASK.json](TASK.json) records the first steps,\n+relevance and blockers for both questions.\n@@ -0,0 +1,373 @@\n+{\n+ \"arithmetic\": {\n+ \"compiler\": {\n+ \"H\": 31385200000000,\n+ \"N\": \"2^31385200000000\",\n+ \"eta\": {\n+ \"lower\": \"0.000000203927056311365991628189\",\n+ \"upper\": \"0.000000203927056311365991628190\"\n+ },\n+ \"gap\": \"1/700000000\",\n+ \"integer_test_exponent\": 44836,\n+ \"logarithm_power\": 1000,\n+ \"theta\": \"63/64\",\n+ \"uniform_saving\": \"2115651/700000000\",\n+ \"word_materialized\": false\n+ },\n+ \"fixed_profile_ceiling\": {\n+ \"decreasing_through\": \"1/20\",\n+ \"derivative_upper\": {\n+ \"lower\": \"-195778.630038840116414999953237565269\",\n+ \"upper\": \"-195778.630038840116414999953237565268\"\n+ },\n+ \"remaining_interval_moment_upper\": {\n+ \"lower\": \"-6836.549542075249598033582799619360\",\n+ \"upper\": \"-6836.549542075249598033582799619359\"\n+ }\n+ },\n+ \"full_backward\": 16,\n+ \"full_forward\": 2,\n+ \"gain_over_PR4610\": \"2871/5000000000\",\n+ \"kappa\": \"60447/20000000\",\n+ \"kappa_decimal\": \".00302235\",\n+ \"margin_at_previous_kappa\": {\n+ \"lower\": \"0.151161494385402651700356241377\",\n+ \"upper\": \"0.151161494385402651700356241378\"\n+ },\n+ \"margin_at_previous_root_upper\": {\n+ \"lower\": \"0.151143999513185007311808491175\",\n+ \"upper\": \"0.151143999513185007311808491176\"\n+ },\n+ \"negative_controls\": {\n+ \"closed_epsilon\": [\n+ \"epsilon_below_one\",\n+ \"global_gamma_power_slack\",\n+ \"actual_logarithmic_gamma_guard\",\n+ \"source_axis_superpolynomial\",\n+ \"gaussian_above_main\",\n+ \"new_semantic_guard_with_C1_one\"\n+ ],\n+ \"closed_uniform\": [\n+ \"new_complex_uniform_saving_above_b\"\n+ ],\n+ \"old_BIT\": [\n+ \"actual_bit_above_effective\"\n+ ],\n+ \"unearned_helper_credit\": \"Rejected by the independent complete census\",\n+ \"unfunded_endpoint\": [\n+ \"main_transform_above_kappa\",\n+ \"global_coordinate_router_above_kappa\",\n+ \"fused_gaussian_above_kappa\",\n+ \"group_bit_router_above_kappa\",\n+ \"boundary_algebraic_matrix_above_kappa\"\n+ ]\n+ },\n+ \"nonrecursive\": {\n+ \"additional_private_slots\": 1,\n+ \"local_routes\": 4806000,\n+ \"local_scalar\": 158214,\n+ \"owned_slots_backward\": 3,\n+ \"raw_budget\": 1000000000,\n+ \"raw_scalar_upper\": 181098496\n+ },\n+ \"ordinary_BIT\": {\n+ \"admitted\": \"17/5000\",\n+ \"after_cover\": \"69/20000\",\n+ \"atom\": \"1/250\",\n+ \"before_cover\": \"3459/1000000\",\n+ \"ordinary_saving\": \"8590884599/2500000000000\",\n+ \"prime_rule\": \"odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses\"\n+ },\n+ \"outer\": {\n+ \"functional_checks\": {\n+ \"actual_new_BIT_stock_sublinear\": \"174299999253/175000000000\",\n+ \"fixed_halo_explicit_metadata_branch\": \"13475000001/175000000\",\n+ \"new_BIT_row_stock_sublinear_in_active_group\": \"697899997009/700000000000\",\n+ \"new_semantic_group_guard\": \"3/700000000\"\n+ },\n+ \"margins\": {\n+ \"boundary_algebraic_matrix\": \"23139910904443/7656250000000000\",\n+ \"fused_gaussian\": \"23139910838329/7656250000000000\",\n+ \"global_coordinate_router\": \"2115649/700000000\",\n+ \"group_bit_router\": \"1480954993653053/490000000000000000\",\n+ \"group_scans\": \"349999999/350000000\",\n+ \"main_transform\": \"23139899966943/7656250000000000\",\n+ \"microbox_face_corrections\": \"13475000001/175000000\",\n+ \"polynomial_products\": \"699999999/700000000\",\n+ \"sparse_union_movement\": \"3133491473404443/7656250000000000\"\n+ },\n+ \"parameters\": {\n+ \"a\": \"2115649/700000000\",\n+ \"b\": \"42313/14000000\",\n+ \"beta\": \"699999997/700000000\",\n+ \"bit_saving\": \"17/5000\",\n+ \"cap_xi\": \"6961616462466943/7656250000000000\",\n+ \"complex_uniform_saving\": \"2115651/700000000\",\n+ \"d\": \"1/700000000\",\n+ \"epsilon\": \"699999999/700000000\",\n+ \"kappa\": \"60447/20000000\",\n+ \"lambda_\": \"199395529/200000000\",\n+ \"lambda_prime\": \"10904443/10937500\",\n+ \"layout\": \"1/700000000\",\n+ \"q\": \"33057/10937500\",\n+ \"r0\": \"1/7000000000\",\n+ \"stop\": \"1/700000000\",\n+ \"tested_saving\": \"75559/25000000\"\n+ },\n+ \"strict_checks\": {\n+ \"actual_bit_above_effective\": \"264351/700000000\",\n+ \"actual_logarithmic_gamma_guard\": \"1/700000000\",\n+ \"actual_logarithmic_group_guard\": \"694633553939307/3828125000000000\",\n+ \"alpha_logarithm_absorption\": \"1/7000000000\",\n+ \"boundary_algebraic_matrix_above_kappa\": \"43716943/7656250000000000\",\n+ \"cap_above_band\": \"3133491462466943/7656250000000000\",\n+ \"cap_below_cell\": \"694633526595557/7656250000000000\",\n+ \"cap_below_phase_cell_power\": \"8350883537533057/7656250000000000\",\n+ \"complex_above_effective\": \"1/700000000\",\n+ \"complex_below_one_over_32\": \"395187/14000000\",\n+ \"complex_endpoint\": \"1/350000000\",\n+ \"epsilon_below_one\": \"1/700000000\",\n+ \"epsilon_positive\": \"699999999/700000000\",\n+ \"fine_prime_halo_umbrella\": \"7/2\",\n+ \"fused_gaussian_above_kappa\": \"43650829/7656250000000000\",\n+ \"gaussian_above_main\": \"5435693/3828125000000000\",\n+ \"global_coordinate_router_above_kappa\": \"1/175000000\",\n+ \"global_gamma_power_slack\": \"9/7000000000\",\n+ \"group_below_dimension\": \"1/350000000\",\n+ \"group_bit_router_above_kappa\": \"3493653053/490000000000000000\",\n+ \"group_gauge_power_slack\": \"43414597087027/239257812500000\",\n+ \"group_key_fits_record\": \"1/350000000\",\n+ \"group_positive\": \"699999997/700000000\",\n+ \"group_scans_above_kappa\": \"697884353/700000000\",\n+ \"halo_covers_generic_inverse_radius\": \"5\",\n+ \"improvement_over_user_baseline\": \"645689790400418148631/500000000000000000000000\",\n+ \"lambda_above_internal\": \"1/1400000000\",\n+ \"lambda_above_sigma\": \"3/1400000000\",\n+ \"lambda_above_tau\": \"1/1400000000\",\n+ \"lambda_prime_above_lambda\": \"1/1400000000\",\n+ \"lambda_prime_above_leaf\": \"27957687/9800000000000000\",\n+ \"leaf_saving_above_effective\": \"13957687/9800000000000000\",\n+ \"main_transform_above_kappa\": \"32779443/7656250000000000\",\n+ \"membership_arithmetic_fits_record\": \"1/700000000\",\n+ \"microbox_face_corrections_above_kappa\": \"53897884359/700000000\",\n+ \"microbox_halo_volume\": \"55300000003/700000000\",\n+ \"new_complex_uniform_saving_above_b\": \"1/700000000\",\n+ \"new_semantic_guard_with_C1_one\": \"1/700000000\",\n+ \"polynomial_products_above_kappa\": \"348942177/350000000\",\n+ \"positive_layout_slack\": \"1/700000000\",\n+ \"q_below_effective\": \"1/700000000\",\n+ \"q_below_internal\": \"1/700000000\",\n+ \"q_below_leaf\": \"27957687/9800000000000000\",\n+ \"q_positive\": \"33057/10937500\",\n+ \"short_record_fallback\": \"13957687/14000000\",\n+ \"source_axis_superpolynomial\": \"1/700000000\",\n+ \"sparse_union_movement_above_kappa\": \"3110351606216943/7656250000000000\",\n+ \"stop_below_one\": \"699999999/700000000\",\n+ \"stop_positive\": \"1/700000000\",\n+ \"strassen_integer_power_gap\": \"1951441519231\",\n+ \"support_router_span\": \"3/700000000\",\n+ \"theta_positive_polynomial_power\": \"2\",\n+ \"union_header_fits_record\": \"3/700000000\",\n+ \"union_tag_work_per_visit_fits_record\": \"3/700000000\"\n+ }\n+ },\n+ \"paid\": {\n+ \"1\": 41282,\n+ \"16\": 448,\n+ \"2\": 7416,\n+ \"24\": 448,\n+ \"3\": 9180,\n+ \"32\": 448,\n+ \"4\": 2286,\n+ \"40\": 448,\n+ \"48\": 448,\n+ \"5\": 720,\n+ \"56\": 448,\n+ \"64\": 448,\n+ \"72\": 224,\n+ \"8\": 128\n+ },\n+ \"paid_calls\": 64372,\n+ \"productive_fields\": 10912,\n+ \"query_shears\": 15,\n+ \"rank_mass_surplus\": 752,\n+ \"raw_headroom\": [\n+ \"3736347/100000000000000\",\n+ \"934087/25000000000000\"\n+ ],\n+ \"raw_root_interval\": [\n+ \"302238736347/100000000000000\",\n+ \"75559684087/25000000000000\"\n+ ],\n+ \"strictification\": {\n+ \"alpha\": {\n+ \"lower\": \"0.999999971483293515393313955729\",\n+ \"upper\": \"0.999999971483293515393313955730\"\n+ },\n+ \"cutoff\": 20,\n+ \"delta\": {\n+ \"lower\": \"0.957459689758527661921334851512\",\n+ \"upper\": \"0.957459689758527661921334851513\"\n+ },\n+ \"floor\": 21,\n+ \"gamma\": {\n+ \"lower\": \"0.956310980726438847618396606911\",\n+ \"upper\": \"0.956310980726438847618396606912\"\n+ },\n+ \"normalized_paid_upper\": \"2097152001953127/2097154147483648\",\n+ \"power\": 1024,\n+ \"reserve\": \"1/1000000000\",\n+ \"tail_offset\": \"1/5\",\n+ \"tested\": \"75559/25000000\"\n+ },\n+ \"targets\": {\n+ \"145\": 224,\n+ \"17\": 448,\n+ \"25\": 448,\n+ \"33\": 448,\n+ \"4\": 504,\n+ \"41\": 448,\n+ \"49\": 448,\n+ \"57\": 448,\n+ \"65\": 448,\n+ \"7\": 126,\n+ \"73\": 224,\n+ \"8\": 846,\n+ \"9\": 5852\n+ }\n+ },\n+ \"candidate_native\": {\n+ \"backward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 325\n+ },\n+ \"independent_owned_entry_columns\": 3,\n+ \"independent_persistent_columns\": 631,\n+ \"max_denominator\": 64,\n+ \"max_formal_prefix_l1\": \"169\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2200,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 7\n+ },\n+ \"real_scalar_allowance\": 158214,\n+ \"zero_identities\": 1\n+ },\n+ \"forward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 326\n+ },\n+ \"independent_owned_entry_columns\": 1,\n+ \"independent_persistent_columns\": 632,\n+ \"max_denominator\": 32,\n+ \"max_formal_prefix_l1\": \"457\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2201,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 8\n+ },\n+ \"real_scalar_allowance\": 158120,\n+ \"zero_identities\": 0\n+ }\n+ },\n+ \"independent_source_identities\": {\n+ \"center_minus_snapshot\": \"Delta/4\",\n+ \"center_replaced\": 11332,\n+ \"copy_coefficient\": \"1\",\n+ \"relation\": {\n+ \"230\": 1,\n+ \"324\": -1,\n+ \"326\": 1,\n+ \"328\": 1,\n+ \"333\": -1\n+ },\n+ \"snapshot_after\": 11205,\n+ \"snapshot_terms_before_substitution\": 61,\n+ \"source_event_indices_are_zero_based\": true,\n+ \"zero_identity_at\": 15584,\n+ \"zero_site_row\": \"-Delta/4\"\n+ },\n+ \"native_negative_controls\": {\n+ \"missing_owned_input_clear\": \"Every independent main/helper endpoint: 0\",\n+ \"uncleared_owned_output\": \"Every owned entry column is erased at return\",\n+ \"under_or_overstated_paid_rank\": \"Exact paid rank and frame\",\n+ \"wrong_copy_gauge\": \"Exact scalar destination frame\",\n+ \"wrong_relation_sign\": \"Every independent main/helper endpoint: 0\",\n+ \"wrong_snapshot_source\": \"Zero identity requires an identically zero full row\",\n+ \"wrong_zero_input_frame\": \"Zero identity requires an identically zero full row\"\n+ },\n+ \"phase_inheritance\": {\n+ \"absolute_phase_receipt_reused\": \"research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz\",\n+ \"all_retained_paid_events_and_warps_from_source\": true,\n+ \"new_gaussian_operators\": 0,\n+ \"new_native_maps\": 0,\n+ \"new_operations\": \"Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.\",\n+ \"source_amplitudes_and_phase_lowering_freshly_replayed\": false\n+ },\n+ \"scope\": \"Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.\",\n+ \"source_native\": {\n+ \"backward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 326\n+ },\n+ \"independent_owned_entry_columns\": 1,\n+ \"independent_persistent_columns\": 632,\n+ \"max_denominator\": 64,\n+ \"max_formal_prefix_l1\": \"169\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2201,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 8\n+ },\n+ \"real_scalar_allowance\": 158168,\n+ \"zero_identities\": 0\n+ },\n+ \"forward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 326\n+ },\n+ \"independent_owned_entry_columns\": 1,\n+ \"independent_persistent_columns\": 632,\n+ \"max_denominator\": 32,\n+ \"max_formal_prefix_l1\": \"457\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2201,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 8\n+ },\n+ \"real_scalar_allowance\": 158120,\n+ \"zero_identities\": 0\n+ }\n+ },\n+ \"source_payload_sha256\": \"cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd\",\n+ \"status\": \"PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION\",\n+ \"word_payload_sha256\": \"645b32ff67dfd49bbe8c2287d21f12a66a775d3c5e187db6f813e17e9f8fae35\"\n+}\n@@ -0,0 +1,90 @@\n+{\n+ \"schema_version\": 1,\n+ \"base_commit\": \"7c472563474e60185e6ca101a17622133d047e56\",\n+ \"files\": [\n+ {\n+ \"path\": \"certificates/selected-result.json\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"c35482cd9035843b15a634cc8276a7e1e40e8395\",\n+ \"sha256\": \"6fe0a099b89aa2aed796a13c3a21dafc63f3388ebf397464e44e0451893b9375\"\n+ },\n+ {\n+ \"path\": \"docs/research/agent-task-catalog.json\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"f126dd2e2dad2b669e75d1d0d0bd05c600725602\",\n+ \"sha256\": \"f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72\"\n+ },\n+ {\n+ \"path\": \"research/free-word-tensor-lift-audit/PROOF.md\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"69c337a7704ce589798269ab4b8606189c070c4e\",\n+ \"sha256\": \"cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459\"\n+ },\n+ {\n+ \"path\": \"research/higher-moment-strictification/verify.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"4b24a5096154736ce060474eb8c72dc64c303699\",\n+ \"sha256\": \"0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326\"\n+ },\n+ {\n+ \"path\": \"research/joint-helper-lattice/CONTROLLER.json\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"49a2f0675819f9deeea27ed77be2c2b6ff2e87e5\",\n+ \"sha256\": \"1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f\"\n+ },\n+ {\n+ \"path\": \"research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"5a55034ec9e6185d981e16c28e1e2e455069e2cb\",\n+ \"sha256\": \"106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7\"\n+ },\n+ {\n+ \"path\": \"research/kappa-interface-round2-20261022/price_profile.py\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"1d93e43d1cb888d128c2faa2be83a96d85b84295\",\n+ \"sha256\": \"adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb\"\n+ },\n+ {\n+ \"path\": \"research/kappa-rebuild/architecture/mixed_target_probe.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"4fc05ab08138218ba9f09e5c89b649afae7c914e\",\n+ \"sha256\": \"011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a\"\n+ },\n+ {\n+ \"path\": \"research/kappa-rebuild/complex/native_extensions.py\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"7f84894efc309546a903d314c7ac1473e7f594a8\",\n+ \"sha256\": \"50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3\"\n+ },\n+ {\n+ \"path\": \"research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"46d929df83817b85a5387bcdb9745e0627d6366e\",\n+ \"sha256\": \"7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05\"\n+ },\n+ {\n+ \"path\": \"research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"ac77b78547d6dbf2e6bd102e1047c5b16c1bca88\",\n+ \"sha256\": \"6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b\"\n+ },\n+ {\n+ \"path\": \"research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"0fdb65f946d557c13d8e2781b9151e2a8ddee5c3\",\n+ \"sha256\": \"b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de\"\n+ },\n+ {\n+ \"path\": \"research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59\",\n+ \"sha256\": \"d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15\"\n+ },\n+ {\n+ \"path\": \"research/query-thinned-controllers/RESULT.json\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"e0695152c98d727edfd0d2034b58a1c7e8682c0c\",\n+ \"sha256\": \"6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f\"\n+ }\n+ ]\n+}\n@@ -0,0 +1,80 @@\n+{\n+ \"schema_version\": 1,\n+ \"task_id\": \"complex-new-helper-inventory\",\n+ \"priority_revision\": 7,\n+ \"base_commit\": \"7c472563474e60185e6ca101a17622133d047e56\",\n+ \"original_card\": {\n+ \"id\": \"complex-new-helper-inventory\",\n+ \"question\": \"Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?\",\n+ \"starting_points\": [\n+ \"docs/research/research-family-status.md\",\n+ \"research/complex-local-word-ceiling/README.md\",\n+ \"research/heterogeneous-owner-assembly/README.md\",\n+ \"certificates/selected-result.json\",\n+ \"research/selected-k8-unrestricted-ends/README.md\"\n+ ],\n+ \"methods\": [\n+ \"Propose a changed helper inventory and derive an optimistic exact moment.\",\n+ \"Design a small completed instance and independently verify its endpoint and rank bill.\"\n+ ],\n+ \"acceptance_gate\": \"A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a lower cap does not establish identical circuitry or order attainable optima, and is insufficient to pass the stronger-budget target under this model. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.\",\n+ \"first_step\": {\n+ \"command\": [\n+ \"python3\",\n+ \"-B\",\n+ \"research/complex-local-word-ceiling/verify.py\"\n+ ],\n+ \"expected\": \"PASS_COMPLEX_LOCAL_WORD_CEILING\",\n+ \"inspect\": \"Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.\",\n+ \"scope\": \"Positive control and planning budget only; this is not a new construction or full cold replay.\"\n+ },\n+ \"first_experiment\": \"Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.\",\n+ \"bottleneck_link\": \"Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.\",\n+ \"allowed_variations\": [\n+ \"Narrow to one changed boundary or helper type with explicit counts.\",\n+ \"If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope.\"\n+ ],\n+ \"scope_change_triggers\": [\n+ \"Mixing only providers already inside the pinned catalogue.\",\n+ \"Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.\",\n+ \"Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts.\"\n+ ],\n+ \"overlap_terms\": [\n+ \"helper inventory\",\n+ \"heterogeneous-owner\",\n+ \"mutable leaver\"\n+ ]\n+ },\n+ \"scope_status\": \"refined\",\n+ \"actual_scope\": \"Make helper L230 owned in each backward call, prepare one five-helper relation, retain one exact frame-254 snapshot, remove one rank-eight center and one rank-one zero job, and debit one rank-nine target.\",\n+ \"scope_change_reason\": \"This uses the current helper-inventory priority. It changes the independent input inventory and scalar word; all physical native maps and the p16 controller remain fixed.\",\n+ \"bottleneck_link\": \"https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737\",\n+ \"budget_minutes\": 240,\n+ \"stop_rule\": \"Publish one exact complete-profile kappa improvement after native, ownership, phase-inheritance, compiler and cold-export checks.\",\n+ \"outcome\": \"completed\",\n+ \"evidence\": \"README.md, WORD.json.gz, RESULT.json and verify.py. The complete conditional kappa is 60447/20000000.\",\n+ \"author\": \"Ali Romman\",\n+ \"ai_assistance\": \"Substantial OpenAI Codex assistance in discovery, code, proof, verification and publication.\",\n+ \"open_questions\": [\n+ {\n+ \"question\": \"Can a separate reviewer validate this one-relation restriction and the inherited physical transfer premises?\",\n+ \"why_it_matters\": \"The new finite construction is exact, but the complete bound still uses the source phase and all-size contracts.\",\n+ \"first_step\": \"Replay the three unrestricted source rows in native.py and check the COPY and zero-identity argument in README.md.\",\n+ \"blocked_by\": \"Independent review has not yet occurred.\"\n+ },\n+ {\n+ \"question\": \"Can a different helper relation give another complete positive bill?\",\n+ \"why_it_matters\": \"This construction gives one positive instance, not an optimum for changed helper inventories.\",\n+ \"first_step\": \"Claim a disjoint relation in Discussions, derive its exact rows, and include every lost target and owned-storage cost.\",\n+ \"blocked_by\": \"Current active cache and paid-history scopes must be checked first.\"\n+ }\n+ ],\n+ \"coordination\": {\n+ \"claim\": \"https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737\",\n+ \"distinct_scopes\": [\n+ \"https://github.com/CrocSwap/integer-mult-bounds/discussions/5355\",\n+ \"https://github.com/CrocSwap/integer-mult-bounds/discussions/4930\"\n+ ],\n+ \"boundary\": \"The first scope retains 632 arbitrary inputs and eight centers. The second retains every original helper endpoint. This package removes the independent L230 job only in backward calls and claims only the stated relation and two event replacements.\"\n+ }\n+}\n@@ -0,0 +1,38 @@\n+{\n+ \"schema_version\": 1,\n+ \"status\": \"ready\",\n+ \"python\": \"3.12\",\n+ \"requirements\": [],\n+ \"inputs\": [\n+ \"research/higher-moment-strictification/verify.py\",\n+ \"research/joint-helper-lattice/CONTROLLER.json\",\n+ \"research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py\",\n+ \"research/kappa-rebuild/architecture/mixed_target_probe.py\",\n+ \"research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz\",\n+ \"research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz\",\n+ \"research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json\",\n+ \"research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py\",\n+ \"research/query-thinned-controllers/RESULT.json\"\n+ ],\n+ \"commands\": [\n+ {\n+ \"argv\": [\n+ \"{python}\",\n+ \"-B\",\n+ \"{package}/verify.py\"\n+ ],\n+ \"timeout_seconds\": 600,\n+ \"checks\": \"Exact native rows, owned entry columns, event ranks, independent source identities, p16 Laurent controller, complete asymmetric invoice, two interval engines, compiler and outer predicates, negative controls.\"\n+ },\n+ {\n+ \"argv\": [\n+ \"{python}\",\n+ \"-O\",\n+ \"-B\",\n+ \"{package}/verify.py\"\n+ ],\n+ \"timeout_seconds\": 600,\n+ \"checks\": \"The same checks remain active with Python assertions disabled.\"\n+ }\n+ ]\n+}\n\n@@ -0,0 +1,299 @@\n+\"\"\"One prepared helper removes two paid jobs in the PR4610 backward word.\n+\n+Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0.\n+The source word is by Cao Yifan. The row convention and scalar allowance\n+follow the credited native work of Cinna Davis and zxv.\n+\"\"\"\n+from collections import Counter\n+from copy import deepcopy\n+from fractions import Fraction as Q\n+from hashlib import sha1, sha256\n+from pathlib import Path\n+import gzip\n+import importlib.util\n+import json\n+import sys\n+\n+HERE = Path(__file__).resolve().parent\n+ROOT = HERE.parents[1]\n+SOURCE = 'research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz'\n+PHASE = 'research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz'\n+PAYLOAD = 'cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd'\n+RELATION = {230: 1, 324: -1, 326: 1, 328: 1, 333: -1}\n+OLD_PAID = {1: 2201, 2: 412, 3: 510, 4: 127, 5: 40, 8: 8}\n+NEW_PAID = dict(OLD_PAID)\n+NEW_PAID[1] -= 1\n+NEW_PAID[8] -= 1\n+OLD_HELPERS = {4: 28, 7: 7, 8: 47, 9: 326}\n+\n+\n+def need(ok, why):\n+ if not ok:\n+ raise ValueError(why)\n+\n+\n+def read(path):\n+ data = path.read_bytes()\n+ return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data)\n+\n+\n+def encode(x):\n+ if isinstance(x, Q):\n+ return str(x)\n+ if isinstance(x, dict):\n+ return {str(k): encode(v) for k, v in x.items()}\n+ if isinstance(x, (list, tuple)):\n+ return [encode(v) for v in x]\n+ return x\n+\n+\n+def load(relative, name):\n+ spec = importlib.util.spec_from_file_location(name, ROOT / relative)\n+ module = importlib.util.module_from_spec(spec)\n+ sys.modules[name] = module\n+ spec.loader.exec_module(module)\n+ return module\n+\n+\n+def authenticate():\n+ pins = read(HERE / 'SOURCES.json')\n+ for row in pins['files']:\n+ if row['usage'] != 'input':\n+ continue\n+ p = ROOT\n+ for part in Path(row['path']).parts:\n+ p /= part\n+ need(not p.is_symlink(), 'No source aliases')\n+ raw = p.read_bytes()\n+ need(sha256(raw).hexdigest() == row['sha256'], 'Changed source: ' + row['path'])\n+ need(sha1(b'blob ' + str(len(raw)).encode() + b'\\0' + raw).hexdigest() == row['git_blob'], 'Source Git blob')\n+ need(sha256(gzip.decompress((ROOT / SOURCE).read_bytes())).hexdigest() == PAYLOAD, 'Exact source payload')\n+ return pins\n+\n+\n+def span(basis):\n+ out = {0}\n+ for vector in basis:\n+ need(isinstance(vector, int) and 0 <= vector < 512, 'Binary frame coordinate')\n+ out |= {v ^ vector for v in tuple(out)}\n+ need(len(out) == 2 ** len(basis), 'Independent frame basis')\n+ return out\n+\n+\n+def add(dst, src, q):\n+ for k, v in tuple(src.items()):\n+ value = dst.get(k, Q(0)) + q * v\n+ if value:\n+ dst[k] = value\n+ else:\n+ dst.pop(k, None)\n+\n+\n+def allowance(g):\n+ if g[0] in ('clear', 'copy'):\n+ return 2\n+ q = Q(*g[3:]) if g[0] == 'add' else Q(*g[2:])\n+ n, d = abs(q.numerator), q.denominator\n+ need(n > 0 and d & (d - 1) == 0, 'Nonzero dyadic scalar')\n+ if g[0] == 'scale':\n+ need(n & (n - 1) == 0, 'Dyadic unit SCALE')\n+ return 2 * (abs(n.bit_length() - d.bit_length()) + int(q < 0))\n+ need(g[0] == 'add', 'Known scalar operation')\n+ return 2 * (3 + n.bit_length() - 1 + n.bit_count() + d.bit_length() - 1)\n+\n+\n+def construct(source):\n+ c = source['canonical']\n+ old = source['programs']['backward']\n+ need(old[11205] == ['climb', 'warp_retimed', 92, 310, 254, 4], 'Snapshot source event')\n+ need(old[11332] == ['center', 0, 0, 254, 8], 'Center source event')\n+ need(old[15584] == ['climb', 'warp_retimed', 92, 254, 1, 1], 'Zero source event')\n+ need(all(c['start'][h] == 0 and c['final'][h] == 1 for h in RELATION), 'Five cold full-ended helpers')\n+ word = [['scalar', ['clear', ['L', 230]], 0]]\n+ word += [['scalar', ['add', ['L', 230], ['L', h], -q, 1], 0]\n+ for h, q in RELATION.items() if h != 230]\n+ for i, event in enumerate(old):\n+ if i == 11332:\n+ word += [['scalar', ['clear', ['C', 0]], 254],\n+ ['scalar', ['copy', ['C', 0], ['C', 1]], 254],\n+ ['scalar', ['clear', ['C', 1]], 254]]\n+ elif i == 15584:\n+ word.append(['zero_retag', ['L', 92], 254, 1])\n+ else:\n+ word.append(deepcopy(event))\n+ if i == 11205:\n+ word += [['scalar', ['clear', ['C', 1]], 254],\n+ ['scalar', ['copy', ['C', 1], ['L', 92]], 254]]\n+ word.append(['scalar', ['clear', ['L', 230]], 1])\n+ physical = deepcopy(c)\n+ physical.pop('local_profile')\n+ return {'schema': 'owned-helper-relation-word/1', 'canonical': physical,\n+ 'paid_profiles': {'forward': OLD_PAID, 'backward': NEW_PAID},\n+ 'owned': {'forward': [['C', 0]], 'backward': [['C', 0], ['C', 1], ['L', 230]]},\n+ 'programs': {'forward': deepcopy(source['programs']['forward']), 'backward': word}}\n+\n+\n+def replay(c, program, backward, specialized):\n+ \"\"\"Run every event on all independent entry columns and exact frames.\"\"\"\n+ owned = {('C', 0)} | ({('C', 1), ('L', 230)} if specialized else set())\n+ roles = {('L', i) for i in range(632)} | owned\n+ rows = {r: {(r, ()): Q(1)} for r in roles}\n+ frames = {('L', i): f for i, f in enumerate(c['start'])}\n+ frames.update({r: None for r in owned if r[0] == 'C'})\n+ spaces = [span(b) for b in c['frames']]\n+ paid = Counter()\n+ cost, max_l1, denominator, zero_count = 0, Q(1), 1, 0\n+ for e in program:\n+ kind, touched = e[0], None\n+ if kind == 'scalar':\n+ g, frame = e[1:]\n+ dst = tuple(g[1]); touched = dst\n+ need(dst in rows and 0 <= frame < len(spaces), 'Declared scalar destination and frame')\n+ cost += allowance(g)\n+ if g[0] == 'clear':\n+ need(dst in owned, 'Only owned fields can be erased')\n+ rows[dst] = {}; frames[dst] = frame\n+ else:\n+ need(frames[dst] == frame, 'Exact scalar destination frame')\n+ if g[0] in ('add', 'copy'):\n+ src = tuple(g[2])\n+ need(src in rows and frames[src] == frame and dst != src, 'Exact scalar source frame')\n+ if g[0] == 'copy':\n+ need(dst in owned and not rows[dst], 'COPY into cleared owned storage')\n+ rows[dst] = dict(rows[src])\n+ else:\n+ add(rows[dst], rows[src], Q(g[3], g[4]))\n+ else:\n+ need(g[0] == 'scale', 'Known scalar operation')\n+ rows[dst] = {k: Q(g[2], g[3]) * v for k, v in rows[dst].items()}\n+ elif kind == 'warp':\n+ _, role, op, old, new = e\n+ dst = tuple(role); touched = dst\n+ need(frames[dst] == old and 1 <= abs(op) <= len(c['warps']), 'Exact warp input')\n+ symbol = (1 if op > 0 else -1) * (abs(op) + (10**6 if backward else 0))\n+ rows[dst] = {(r, w[1:] if w and w[0] == -symbol else (symbol,) + w): q\n+ for (r, w), q in rows[dst].items()}\n+ frames[dst] = new\n+ elif kind in ('climb', 'center'):\n+ if kind == 'climb':\n+ _, _, i, old, new, rank = e\n+ dst = ('L', i)\n+ need(spaces[old] < spaces[new], 'Ascending paid climb')\n+ else:\n+ _, i, old, new, rank = e\n+ dst = ('C', i)\n+ need(spaces[old] < spaces[new] or spaces[new] < spaces[old], 'Nested paid center')\n+ need(frames[dst] == old and rank == abs(len(c['frames'][new]) - len(c['frames'][old])), 'Exact paid rank and frame')\n+ frames[dst] = new; paid[rank] += 1\n+ elif kind == 'zero_retag':\n+ _, role, old, new = e\n+ dst = tuple(role)\n+ need(specialized and backward and dst == ('L', 92), 'Declared zero identity')\n+ need(frames[dst] == old and not rows[dst], 'Zero identity requires an identically zero full row')\n+ need((old, new) == (254, 1), 'Declared zero frame change')\n+ frames[dst] = new; zero_count += 1\n+ else:\n+ need(kind in ('phase', 'adapter'), 'Known inert source marker')\n+ if touched is not None:\n+ max_l1 = max(max_l1, sum(map(abs, rows[touched].values()), Q(0)))\n+ denominator = max(denominator, max((q.denominator for q in rows[touched].values()), default=1))\n+ need([frames['L', i] for i in range(632)] == c['final'], 'Every final native frame')\n+ for i in range(632):\n+ r = ('L', i)\n+ if r in owned:\n+ continue\n+ expected = {(r, ()): Q(1)}\n+ if i < 112 if backward else 112 <= i < 224:\n+ expected[(('L', i + 112 if backward else i - 112), ())] = Q(-1 if backward else 1)\n+ need(rows[r] == expected, 'Every independent main/helper endpoint: ' + str(i))\n+ need(all(not rows[r] for r in owned), 'Every owned entry column is erased at return')\n+ need(zero_count == int(specialized), 'Exactly one checked zero identity')\n+ helpers = Counter()\n+ for i in range(224, 632):\n+ if ('L', i) in owned:\n+ continue\n+ a, b = c['start'][i], c['final'][i]\n+ need(spaces[a] < spaces[b], 'Strict independent productive helper')\n+ helpers[len(c['frames'][b]) - len(c['frames'][a])] += 1\n+ return {'paid': dict(sorted(paid.items())), 'helpers': dict(sorted(helpers.items())),\n+ 'independent_persistent_columns': 631 if specialized else 632,\n+ 'independent_owned_entry_columns': len(owned), 'owned_outputs_zero': True,\n+ 'real_scalar_allowance': cost, 'max_formal_prefix_l1': str(max_l1),\n+ 'max_denominator': denominator, 'zero_identities': zero_count}\n+\n+\n+def independent_source_identities(source):\n+ \"\"\"Use the predecessor row engine on the unrestricted original word.\"\"\"\n+ v = load('research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py', 'owned_relation_source_rows')\n+ rows = {('L', i): v.identity(('L', i)) for i in range(632)}\n+ rows['C', 0] = v.identity(('C', 0))\n+ delta = {(('L', i), ()): Q(q) for i, q in RELATION.items()}\n+ saved = None\n+ for index, e in enumerate(source['programs']['backward']):\n+ if e[0] == 'scalar':\n+ g = e[1]; dst = tuple(g[1])\n+ if g[0] == 'clear': rows[dst] = {}\n+ elif g[0] == 'copy': rows[dst] = dict(rows[tuple(g[2])])\n+ elif g[0] == 'scale': rows[dst] = {k: Q(g[2], g[3]) * a for k, a in rows[dst].items()}\n+ else: v.add(rows[dst], rows[tuple(g[2])], Q(g[3], g[4]))\n+ elif e[0] == 'warp':\n+ dst = tuple(e[1]); rows[dst] = v.warp(rows[dst], e[2], True)\n+ if index == 11205: saved = dict(rows['L', 92])\n+ if index == 11332:\n+ diff = dict(rows['C', 0]); v.add(diff, saved, -1)\n+ need(diff == {k: q / 4 for k, q in delta.items()}, 'Independent exact center minus snapshot = Delta/4')\n+ if index == 15584:\n+ need(rows['L', 92] == {k: -q / 4 for k, q in delta.items()}, 'Independent exact zero-site row = -Delta/4')\n+ need(all(rows['L', i] == v.expected(('L', i), [], True, False) for i in range(632)), 'Independent unrestricted source endpoints')\n+ return {'source_event_indices_are_zero_based': True, 'snapshot_after': 11205,\n+ 'center_replaced': 11332, 'zero_identity_at': 15584,\n+ 'snapshot_terms_before_substitution': len(saved), 'copy_coefficient': '1',\n+ 'center_minus_snapshot': 'Delta/4', 'zero_site_row': '-Delta/4', 'relation': RELATION}\n+\n+\n+def phase_inheritance(source, candidate):\n+ receipt = read(ROOT / PHASE)\n+ need(receipt['status'] == 'PASS_JOINT_HELPER_MAPS_ALL_ACTUAL_ABSOLUTE_PHASES' and\n+ receipt['actual_word_canonical_sha256'] == PAYLOAD, 'Authenticated source absolute-phase receipt')\n+ physical = deepcopy(source['canonical']); physical.pop('local_profile')\n+ need(candidate['canonical'] == physical, 'Every frame, native map and main adapter unchanged')\n+ for direction, program in candidate['programs'].items():\n+ old = source['programs'][direction]\n+ for kind in ('warp', 'adapter', 'phase'):\n+ need([e for e in program if e[0] == kind] == [e for e in old if e[0] == kind], 'Exact inherited ' + kind + ' sequence')\n+ old_paid = Counter(tuple(e) for e in old if e[0] in ('climb', 'center'))\n+ new_paid = Counter(tuple(e) for e in program if e[0] in ('climb', 'center'))\n+ expected = Counter() if direction == 'forward' else Counter(tuple(old[i]) for i in (11332, 15584))\n+ need(old_paid - new_paid == expected and not new_paid - old_paid, 'Only the two proved jobs are removed')\n+ return {'new_gaussian_operators': 0, 'new_native_maps': 0,\n+ 'all_retained_paid_events_and_warps_from_source': True,\n+ 'absolute_phase_receipt_reused': PHASE,\n+ 'source_amplitudes_and_phase_lowering_freshly_replayed': False,\n+ 'new_operations': 'Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.'}\n+\n+\n+def controls(c, candidate):\n+ controls = {}\n+ base = candidate['programs']['backward']\n+ variants = {}\n+ bad = deepcopy(base); bad[1][1][3] *= -1; variants['wrong_relation_sign'] = bad\n+ variants['missing_owned_input_clear'] = deepcopy(base[1:])\n+ bad = deepcopy(base)\n+ next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 1]])[1][2] = ['L', 63]\n+ variants['wrong_snapshot_source'] = bad\n+ bad = deepcopy(base); next(e for e in bad if e[0] == 'zero_retag')[2] = 0\n+ variants['wrong_zero_input_frame'] = bad\n+ bad = deepcopy(base); next(e for e in bad if e[0] == 'climb')[5] += 1\n+ variants['under_or_overstated_paid_rank'] = bad\n+ bad = deepcopy(base)\n+ next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 0]])[2] = 0\n+ variants['wrong_copy_gauge'] = bad\n+ variants['uncleared_owned_output'] = deepcopy(base[:-1])\n+ for name, program in variants.items():\n+ try:\n+ replay(c, program, True, True)\n+ except ValueError as err:\n+ controls[name] = str(err)\n+ else:\n+ raise ValueError('Control accepted: ' + name)\n+ return controls\n@@ -0,0 +1,196 @@\n+\"\"\"Complete p16 bill and finite compiler for one owned helper relation.\n+\n+The interval and compiler proof follows Cao Yifan's PR4610 pricing, Cinna\n+Davis's PR4470 controller, zxv's completion and logarithmic majorant, and\n+Jacob Alan Sussman's mixed-target recursion. Apache-2.0.\n+Ali Romman, with substantial OpenAI Codex assistance.\n+\"\"\"\n+from collections import Counter\n+from fractions import Fraction as Q\n+from native import ROOT, read, load, need, encode, OLD_PAID, OLD_HELPERS\n+\n+KAPPA = Q('.00302235')\n+TESTED = Q('.00302236')\n+PREVIOUS = Q('.0030217758')\n+OLD_ROOT_UPPER = Q('.00302177587078')\n+\n+\n+def controller():\n+ \"\"\"Check the literal p16 word and both rational boundary programs.\"\"\"\n+ word = read(ROOT / 'research/joint-helper-lattice/CONTROLLER.json')\n+ need((word['kind'], word['pairs'], word['prefix_pairs'], word['ambient_rank']) == ('complex', 16, 7, 145), 'Source p16/a7 controller')\n+ zero = (0,) * 34\n+ def plus(dst, src, q):\n+ for k, v in src.items():\n+ value = dst.get(k, Q(0)) + q * v\n+ if value: dst[k] = value\n+ else: dst.pop(k, None)\n+ def shifted(row, term, sign=1):\n+ return [{tuple(a + b for a, b in zip(k, term)): sign * v for k, v in cell.items()} for cell in row]\n+ for side in ('left', 'right'):\n+ matrix = [[Q(i == j) for j in range(32)] for i in range(32)]\n+ for e in word['boundaries'][side + '_program']:\n+ if e[0] == 'SWAP': matrix[e[1]], matrix[e[2]] = matrix[e[2]], matrix[e[1]]\n+ elif e[0] == 'SCALE': matrix[e[1]] = [Q(e[2]) * x for x in matrix[e[1]]]\n+ else:\n+ need(e[0] == 'ADD', 'Boundary scalar opcode')\n+ matrix[e[1]] = [x + Q(e[3]) * y for x, y in zip(matrix[e[1]], matrix[e[2]])]\n+ need(matrix == [[Q(x) for x in row] for row in word['boundaries'][side]], 'Exact scalar boundary program')\n+ rows = [[{zero: Q(x)} if Q(x) else {} for x in row] for row in word['boundaries']['right']]\n+ for e in word['physical_events']:\n+ if e[0] in ('LOCAL', 'QUERY_SHEAR'):\n+ _, stage, pair, back = e\n+ x, y = 2 * pair, 2 * pair + 1\n+ if back: x, y = y, x\n+ term = (1 if back else -1,) + (0,) * 33\n+ for dst, src in zip(rows[y], shifted(rows[x], term)):\n+ plus(dst, src, Q(-1 if back else 1))\n+ if e[0] == 'LOCAL':\n+ term = (0,) + tuple(int(s == stage) for s in range(33))\n+ for r in (x, y): rows[r] = shifted(rows[r], term)\n+ elif e[0] == 'IDLE':\n+ term = (0,) + tuple(int(s in e[2]) for s in range(33))\n+ for r in (2 * e[1], 2 * e[1] + 1): rows[r] = shifted(rows[r], term)\n+ elif e[0] == 'ADD':\n+ for dst, src in zip(rows[e[1]], rows[e[2]]): plus(dst, src, Q(e[3]))\n+ else:\n+ need(e[0] in ('SWAP', 'SIGNED_SWAP'), 'Controller physical opcode')\n+ rows[e[1]], rows[e[2]] = rows[e[2]], shifted(rows[e[1]], zero, -1 if e[0] == 'SIGNED_SWAP' else 1)\n+ out = [[{} for _ in range(32)] for _ in range(32)]\n+ for i, row in enumerate(word['boundaries']['left']):\n+ for k, q in enumerate(row):\n+ if Q(q):\n+ for j in range(32): plus(out[i][j], rows[k][j], Q(q))\n+ expected = [[{tuple(word['diagonal'][i]): Q(1)} if i == j else {} for j in range(32)] for i in range(32)]\n+ need(out == expected, 'All p16 Laurent coefficients, central signs and boundary factors')\n+ return word\n+\n+\n+def assemble(native, word):\n+ T, P = Counter(), Counter()\n+ orientations = Counter(); thin = 0\n+ for e in word['physical_events']:\n+ if e[0] == 'LOCAL':\n+ direction = 'backward' if e[3] else 'forward'\n+ orientations[direction] += 1\n+ T.update(native[direction]['helpers']); P.update(native[direction]['paid'])\n+ elif e[0] == 'QUERY_SHEAR': thin += 1; P[1] += 112\n+ elif e[0] == 'IDLE': P[8 * len(e[2])] += 224\n+ main = Counter()\n+ for term in word['diagonal']:\n+ need(term[0] in (-1, 1) and all(x in (0, 1) for x in term[1:]), 'Whole Gaussian main target')\n+ main[1 + 8 * sum(term[1:])] += 112\n+ T.update(main)\n+ need(orientations == {'backward': 16, 'forward': 2} and thin == 15, 'Every actual call orientation')\n+ # This second census uses the source invoice and the two local deltas.\n+ check_T = Counter({int(r): n for r, n in word['invoice']['main'].items()})\n+ check_T.update({r: 18 * n for r, n in OLD_HELPERS.items()}); check_T[9] -= 16\n+ check_P = Counter({int(r): n for r, n in word['invoice']['whole_idle'].items()})\n+ check_P.update({r: 18 * n for r, n in OLD_PAID.items()}); check_P[1] += 1680 - 16; check_P[8] -= 16\n+ need(T == check_T and P == check_P, 'Independent full invoice substitution')\n+ need(sum(T.values()) == 10912 and sum(P.values()) == 64372, 'Complete productive and paid counts')\n+ need(sum(r * n for r, n in T.items()) - sum(r * n for r, n in P.items()) == 752, 'Unchanged complete rank surplus')\n+ return T, P\n+\n+\n+def run(native):\n+ word = controller(); T, P = assemble(native, word)\n+ prior = read(ROOT / 'research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json')\n+ need(Q(prior['kappa']) == PREVIOUS and Q(prior['raw_root_interval'][1]) == OLD_ROOT_UPPER, 'Pinned prior conditional bound and raw crossing')\n+ prior_T = Counter({int(r): n for r, n in prior['targets'].items()})\n+ prior_P = Counter({int(r): n for r, n in prior['paid'].items()})\n+ prior_T[9] -= 16; prior_P[1] -= 16; prior_P[8] -= 16\n+ need(T == prior_T and P == prior_P, 'Complete delta from the final PR4610 bill')\n+ E = load('research/higher-moment-strictification/verify.py', 'owned_relation_intervals')\n+ other = load('research/kappa-rebuild/architecture/mixed_target_probe.py', 'owned_relation_second_intervals')\n+ def margin(c):\n+ t, p = E.moment(T, 1 - c), E.moment(P, 1 - c)\n+ return t[0] - p[1], t[1] - p[0]\n+ need(margin(OLD_ROOT_UPPER)[0] > 0, 'Changed invoice beats the prior raw root upper endpoint')\n+ lo, hi, grid = 0, 10**12, 10**14\n+ while hi - lo > 1:\n+ mid = (lo + hi) // 2\n+ if margin(Q(mid, grid))[0] > 0: lo = mid\n+ else: hi = mid\n+ root_low, root_high = Q(lo, grid), Q(hi, grid)\n+ need(margin(root_low)[0] > 0 and margin(root_high)[1] < 0, 'Strict rational root enclosure')\n+ need(PREVIOUS < KAPPA < TESTED < root_low, 'New bound and explicit compiler headroom')\n+ # The complete signed profile decreases on [0, .05], and stays negative\n+ # on [.05, 1]. This proves a fixed-profile ceiling, not a circuit ceiling.\n+ signed = {r: T[r] - P[r] for r in T.keys() | P.keys()}\n+ derivative, upper = None, None\n+ for i in range(16):\n+ l, r = Q(i, 320), Q(i + 1, 320); low = Q(0)\n+ for rank, n in signed.items():\n+ term = E.mul(E.power(rank, 1 - r if n > 0 else 1 - l), E.log_bounds(rank))\n+ low += n * term[0 if n > 0 else 1]\n+ derivative = low if derivative is None else min(derivative, low)\n+ for i in range(128):\n+ l, r = Q(1, 20) + Q(19 * i, 2560), Q(1, 20) + Q(19 * (i + 1), 2560)\n+ value = sum(n * E.power(rank, 1 - l if n > 0 else 1 - r)[1 if n > 0 else 0] for rank, n in signed.items())\n+ upper = value if upper is None else max(upper, value)\n+ need(derivative > 0 and upper < 0, 'Fixed-profile ceiling on all 0 < kappa < 1')\n+ t, u, v, c, b = 1 - TESTED, Q(1, 5), 1024, 20, 21\n+ target, paid = E.moment(T, t), E.moment(P, t)\n+ tl, th = other.moment(T, TESTED); pl, ph = other.moment(P, TESTED)\n+ need(tl > ph and max(tl, target[0]) <= min(th, target[1]) and max(pl, paid[0]) <= min(ph, paid[1]), 'Two exact interval engines agree')\n+ alpha = E.divide(paid, target)\n+ gamma = E.divide(E.moment(P, t + u), E.mul(E.power(c, u), target))\n+ delta = E.divide((Q(sum(T.values()) * b),) * 2, E.mul(E.power(c, TESTED), target))\n+ reserve = Q(1, 10**9); g = d = Q(97, 100)\n+ need(alpha[1] < 1 - reserve and gamma[1] < g and delta[1] < d, 'Original and completion tails charged')\n+ need(g**128 < Q(1, 16) and d**128 < Q(1, 16), 'Two strict tail decay blocks')\n+ normalized = 1 / (1 + v * reserve) + Q(4, 2**32)\n+ need(normalized < 1 and c**64 < b**63, 'Paid completion, splitting and rounding')\n+ theta, power = Q(63, 64), 1000\n+ eta = E.scale(E.power(145, -v * TESTED), t)\n+ need(2 * (20**v)**64 <= (145**v)**63 and eta[0] > theta**power, 'Shifted exits and complement capacity')\n+ need(E.power(145, v * TESTED)[1] < 2**power, 'Compiler initial range')\n+ gap = (TESTED - KAPPA) / 7; need(gap.numerator == 1, 'Finite integer grid')\n+ step = gap.denominator\n+ def wins(j): return (step * j + 1)**power < 2**j\n+ left, right = 1, 2\n+ while not wins(right): left, right = right, 2 * right\n+ while right - left > 1:\n+ mid = (left + right) // 2\n+ if wins(mid): right = mid\n+ else: left = mid\n+ height = step * right\n+ need(height > 8 * v and wins(right) and not wins(right - 1), 'Finite uniform-rank threshold')\n+ local_scalar = max(x['real_scalar_allowance'] for x in native.values())\n+ # The old route allowance is retained. Charge two additional owned field\n+ # lifetimes at two routes each, even though L230 uses an existing slot.\n+ routes = (max(sum(x['paid'].values()) for x in native.values()) + 2 * 408 + 688 + 4) * 1000\n+ need(local_scalar + routes < 10**7, 'All new preparation, COPY, CLEAR and fixed routes fit')\n+ scalar_upper = 18 * 10**7 + 15 * 1792 + 32 * 112 * (len(word['physical_events']) + sum(len(word['boundaries'][k + '_program']) for k in ('left', 'right')))\n+ need(scalar_upper < 10**9, 'Complete raw nonrecursive bound')\n+ bit = read(ROOT / 'research/query-thinned-controllers/RESULT.json')['ordinary_BIT']\n+ atom = Q(bit['atom']); ordinary = (1 - atom) * Q(bit['after_cover']) + atom * Q('.0000384599'); admitted = Q(bit['admitted'])\n+ need(atom == Q('.004') and atom > ordinary > admitted > TESTED and atom < 1 - ordinary, 'Retained stronger BIT admission and stock')\n+ L = load('research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py', 'owned_relation_outer')\n+ params = {'kappa': KAPPA, 'tested_saving': TESTED, 'complex_uniform_saving': KAPPA + 6 * gap,\n+ 'b': KAPPA + 5 * gap, 'a': KAPPA + 4 * gap, 'q': KAPPA + 3 * gap, 'bit_saving': admitted,\n+ 'epsilon': 1 - gap, 'beta': 1 - 3 * gap, 'r0': gap / 10, 'stop': gap, 'layout': gap, 'd': gap}\n+ outer = L.ledger(params); outer['functional_checks']['actual_new_BIT_stock_sublinear'] = params['beta'] * (1 - atom)\n+ need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 4, 'Complete outer predicate inventory')\n+ need(all(x > 0 for key in ('strict_checks', 'functional_checks') for x in outer[key].values()), 'Every outer inequality is strict')\n+ controls = {}\n+ for name, patch in [('old_BIT', {'bit_saving': Q('.0027')}), ('closed_uniform', {'complex_uniform_saving': params['b']}), ('unfunded_endpoint', {'kappa': TESTED}), ('closed_epsilon', {'epsilon': Q(1)})]:\n+ bad = L.ledger(dict(params, **patch)); failed = [k for k, x in bad['strict_checks'].items() if x <= 0]\n+ need(failed, 'Reject outer patch ' + name); controls[name] = failed\n+ bad_native = {d: dict(x) for d, x in native.items()}\n+ bad_native['backward']['helpers'] = OLD_HELPERS\n+ try: assemble(bad_native, word)\n+ except ValueError: controls['unearned_helper_credit'] = 'Rejected by the independent complete census'\n+ else: raise ValueError('Unowned helper credit was accepted')\n+ return encode({'kappa': KAPPA, 'kappa_decimal': '.00302235', 'gain_over_PR4610': KAPPA - PREVIOUS,\n+ 'raw_root_interval': [root_low, root_high], 'raw_headroom': [root_low - KAPPA, root_high - KAPPA],\n+ 'margin_at_previous_kappa': E.display(margin(PREVIOUS)),\n+ 'margin_at_previous_root_upper': E.display(margin(OLD_ROOT_UPPER)),\n+ 'fixed_profile_ceiling': {'decreasing_through': Q(1, 20), 'derivative_upper': E.display((-derivative,) * 2), 'remaining_interval_moment_upper': E.display((upper,) * 2)},\n+ 'targets': T, 'paid': P, 'productive_fields': sum(T.values()), 'paid_calls': sum(P.values()), 'rank_mass_surplus': 752,\n+ 'full_backward': 16, 'full_forward': 2, 'query_shears': 15,\n+ 'strictification': {'tested': TESTED, 'power': v, 'cutoff': c, 'floor': b, 'tail_offset': u, 'reserve': reserve, 'alpha': E.display(alpha), 'gamma': E.display(gamma), 'delta': E.display(delta), 'normalized_paid_upper': normalized},\n+ 'compiler': {'theta': theta, 'logarithm_power': power, 'eta': E.display(eta), 'gap': gap, 'uniform_saving': params['complex_uniform_saving'], 'H': height, 'N': '2^' + str(height), 'integer_test_exponent': right, 'word_materialized': False},\n+ 'nonrecursive': {'local_scalar': local_scalar, 'local_routes': routes, 'raw_scalar_upper': scalar_upper, 'raw_budget': 10**9, 'additional_private_slots': 1, 'owned_slots_backward': 3},\n+ 'ordinary_BIT': bit, 'outer': outer, 'negative_controls': controls})\n@@ -0,0 +1,64 @@\n+#!/usr/bin/env python3\n+\"\"\"Replay the one-relation native word and its complete conditional kappa.\n+\n+Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0.\n+Read README.md for the source credit and inherited proof obligations.\n+\"\"\"\n+from hashlib import sha256\n+import argparse\n+import gzip\n+import json\n+from pathlib import Path\n+import sys\n+sys.dont_write_bytecode = True\n+import native as N\n+import price\n+\n+\n+def run():\n+ N.authenticate()\n+ source = N.read(N.ROOT / N.SOURCE)\n+ candidate = N.construct(source)\n+ c = candidate['canonical']\n+ before, after = {}, {}\n+ for direction in ('forward', 'backward'):\n+ back = direction == 'backward'\n+ before[direction] = N.replay(c, source['programs'][direction], back, False)\n+ after[direction] = N.replay(c, candidate['programs'][direction], back, back)\n+ N.need(before[direction]['paid'] == N.OLD_PAID and before[direction]['helpers'] == N.OLD_HELPERS, 'Pinned source census')\n+ N.need(after[direction]['paid'] == candidate['paid_profiles'][direction], 'Emitted direction-specific paid profile')\n+ helpers = dict(N.OLD_HELPERS)\n+ if back: helpers[9] -= 1\n+ N.need(after[direction]['paid'] == (N.NEW_PAID if back else N.OLD_PAID) and after[direction]['helpers'] == helpers, 'Actual complete changed native census')\n+ identities = N.independent_source_identities(source)\n+ phase = N.phase_inheritance(source, candidate)\n+ controls = N.controls(c, candidate)\n+ arithmetic = price.run(after)\n+ data = (json.dumps(candidate, sort_keys=True, separators=(',', ':')) + '\\n').encode()\n+ result = N.encode({'status': 'PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION',\n+ 'source_payload_sha256': N.PAYLOAD, 'word_payload_sha256': sha256(data).hexdigest(),\n+ 'source_native': before, 'candidate_native': after, 'independent_source_identities': identities,\n+ 'phase_inheritance': phase, 'native_negative_controls': controls, 'arithmetic': arithmetic,\n+ 'scope': 'Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.'})\n+ return data, result\n+\n+\n+def main():\n+ ap = argparse.ArgumentParser(description=__doc__)\n+ ap.add_argument('--write', action='store_true', help='Write only this package word and result after all checks pass.')\n+ ap.add_argument('--out', type=Path, help='Write a replay result to a separate path.')\n+ args = ap.parse_args()\n+ data, result = run()\n+ if args.write:\n+ (N.HERE / 'WORD.json.gz').write_bytes(gzip.compress(data, mtime=0))\n+ (N.HERE / 'RESULT.json').write_text(json.dumps(result, indent=2, sort_keys=True) + '\\n', encoding='utf-8')\n+ else:\n+ N.need(gzip.decompress((N.HERE / 'WORD.json.gz').read_bytes()) == data, 'Exact literal published word')\n+ N.need(N.read(N.HERE / 'RESULT.json') == result, 'Exact published replay result')\n+ if args.out:\n+ args.out.write_text(json.dumps(result, indent=2, sort_keys=True) + '\\n', encoding='utf-8')\n+ print(json.dumps({'status': result['status'], **{k: result['arithmetic'][k] for k in ('kappa', 'gain_over_PR4610', 'raw_root_interval', 'paid_calls', 'productive_fields')}}, sort_keys=True))\n+\n+\n+if __name__ == '__main__':\n+ main()", + "comments": [], + "created_at": "2026-10-23T20:26:27Z", + "updated_at": "2026-10-23T20:26:27Z", + "closed_at": null, + "merged_at": null, + "commits": 1, + "changed_files": 9, + "additions": 1389, + "deletions": 0, + "display_url": "https://github.com/CrocSwap/integer-mult-bounds/pull/5377", + "display_title": "Conditional κ = 0.00302235 (+5.742e-7 over #4610): one owned helper relation" + }, + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/5377", + "title": "Conditional κ = 0.00302235 (+5.742e-7 over #4610): one owned helper relation", + "diff": "@@ -0,0 +1,249 @@\n+# Conditional kappa 0.00302235 from one owned helper relation\n+\n+This construction gives **conditional kappa = 60447/20000000 = 0.00302235**.\n+The gain over Cao Yifan's final\n+[PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610)\n+value, 0.0030217758, is **2871/5000000000 = 0.0000005742**.\n+The construction changes the complete paid profile. It does not obtain the\n+gain by taking more digits of the old root.\n+\n+One helper becomes owned storage in each backward call. A prepared relation\n+then makes one paid rank-eight center equal to an earlier saved value. The same\n+relation makes one later rank-one job act on zero. Both jobs can be removed,\n+with the rank-nine helper credit also removed. All other independent outputs\n+and all main interfaces keep their source operators.\n+\n+[WORD.json.gz](WORD.json.gz) is the complete emitted word.\n+[RESULT.json](RESULT.json) records the exact native checks, the two source\n+identities, both full profiles, completion, compiler and outer calculations.\n+[SOURCES.json](SOURCES.json) pins every external input by Git blob and SHA256.\n+The proof below explains why the changed word has the stated contract.\n+\n+## Source and scope\n+\n+The base is canonical main\n+[7c472563474e60185e6ca101a17622133d047e56](https://github.com/CrocSwap/integer-mult-bounds/commit/7c472563474e60185e6ca101a17622133d047e56).\n+The native source is the final PR #4610 word at\n+[20bb93cd990d2ff683e4d0fc56b87a42cd5d3296](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz).\n+Its decompressed SHA256 is\n+`cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`.\n+The comparison value and old crossing come from its\n+[final compiler arithmetic](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json).\n+All consumed bytes are already in the recorded main base.\n+\n+This is one instance of the current `complex-new-helper-inventory` priority.\n+The [scoped claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737)\n+reserves only the relation and two replacements below.\n+[Discussion #5355](https://github.com/CrocSwap/integer-mult-bounds/discussions/5355)\n+retains all 632 independent inputs and all eight centers.\n+[Discussion #4930](https://github.com/CrocSwap/integer-mult-bounds/discussions/4930)\n+retains every original helper endpoint. This construction removes the\n+independent L230 job in backward calls. It does not claim those broader scopes.\n+The selected certificate is unchanged. A fresh check at 20:20 UTC found that\n+Discussion #5355 had released its original-input scope without a saving.\n+Canonical main still had the recorded base commit.\n+\n+## Exact replacement proof\n+\n+All indices below are zero-based indices in the frozen backward program.\n+Let `h_r` be the source logical input of helper `Lr`. The five helpers in\n+\n+```math\n+\\Delta=h_{230}-h_{324}+h_{326}+h_{328}-h_{333}\n+```\n+\n+all start in frame 0 and finish in frame 1, of rank nine. The new backward\n+contract has 224 independent main fields and 407 independent helper fields.\n+L230 is private. Clear it, then use four same-frame ADDs to prepare\n+\n+```math\n+h_{230}=h_{324}-h_{326}-h_{328}+h_{333}.\n+```\n+\n+The other helper inputs remain arbitrary and independent. This preparation\n+sets Delta to zero for every input. It uses no recursive job. It removes one\n+rank-nine productive target; the dependent field receives no output credit.\n+\n+Run the original source program on unrestricted inputs. Let `q` be the\n+logical row of L92 just after event 11205, a paid climb into frame 254.\n+The separate predecessor row engine gives these exact identities:\n+\n+| Source position | Exact logical row |\n+| --- | --- |\n+| C0 at the rank-eight center, event 11332 | `q + Delta/4` |\n+| L92 at the rank-one climb, event 15584 | `-Delta/4` |\n+\n+These identities are over rational coefficients and free native operator\n+words. They hold for every value of every source input and for every invertible\n+interpretation of the native symbols. They do not use numerical samples or an\n+assumed relation between distinct native maps.\n+\n+For every positive tensor width f, substitute each native generator by its\n+source operator tensor power and each inverse by the inverse tensor power.\n+This defines a representation of the free group. Keep the rational scalar\n+coefficients outside the substitution. The two row identities therefore hold\n+at every such width. In particular, Delta/4 remains a scalar linear form; it\n+is not a tensor power of that sum. This uses the termwise argument recorded in\n+the [free-word tensor audit](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/free-word-tensor-lift-audit/PROOF.md),\n+which credits Cinna Davis's proposal and ToikY's scoped audit. Physical frame\n+realization and the complete all-size compiler retain their source contracts.\n+\n+Immediately after event 11205, clear a new private field C1 in frame 254 and\n+COPY L92 into it. C1 is not written until the replacement of event 11332. At\n+that event, clear owned C0, set its frame to 254, COPY C1 into C0, then clear C1.\n+The copy coefficient is exactly one. Under Delta = 0, the copied field is the\n+same physical value as the old center output: the logical rows and the exact\n+frame gauge are equal. The old C0 input can be erased because C0 is owned.\n+This removes one rank-eight recursive job.\n+\n+At event 15584, L92 is exactly zero in every input column. The physical\n+identity therefore has the same result as the old rank-one frame change.\n+`zero_retag` records this fact. It performs no physical write and is accepted\n+only when the full exact row is empty and the current frame is 254. It then\n+records frame 1. This removes one rank-one recursive job. It does not erase a\n+main input or replace a nonzero transform with a free frame change.\n+\n+Every other event stays in source order. Clear private L230 at return. The\n+source clears C0, and the new program has already cleared C1. The original\n+linear endpoint identity, restricted by the prepared relation, gives all 224\n+main outputs and all 407 retained helper outputs. The literal new-word replay\n+checks these outputs separately, with all 631 retained inputs and all three\n+owned entry fields initially arbitrary. It also checks every scalar frame,\n+paid rank, native frame transition and final frame.\n+\n+The 4,429 source frames, 72 native maps, all remaining paid operators, and main\n+adapters are unchanged. The source\n+[absolute-phase certificate](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz)\n+is authenticated and reused. Same-frame COPY and identity on zero introduce no\n+phase recipe. The source's amplitude and Clifford-lowering checks are not\n+rerun by this package. The new free-word identities prove equivalence for the\n+source operators with their full phases, not just their projective classes.\n+\n+## Complete cost and conditional compiler\n+\n+The forward word is unchanged. Each backward call has these counts:\n+\n+```text\n+paid: {1:2200, 2:412, 3:510, 4:127, 5:40, 8:7}\n+helpers: {4:28, 7:7, 8:47, 9:325}\n+```\n+\n+The full p16/a7 controller contains 16 backward calls, two forward calls and\n+15 query shears. Thus the complete difference is **minus 16 H1 and 16 H8 paid\n+jobs, and minus 16 H9 productive targets**. It includes every idle and main\n+target. There are 64,372 paid jobs and 10,912 productive fields. Their rank\n+masses are 238,990 and 239,742; the surplus remains 752.\n+\n+For every real `0 < t < 1`, the complete target-minus-paid moment increases by\n+\n+```math\n+16(1+8^t-9^t)>0.\n+```\n+\n+For a direct proof, both `(1/9)^t > 1/9` and `(8/9)^t > 8/9`; multiply their\n+sum by `9^t`. The improvement is strict throughout the required range.\n+\n+The backward word has 158,214 real scalar operations under the source macro\n+allowance, exactly 46 more than its source. Its maximum formal prefix L1 norm\n+is 169, with maximum denominator 64; both equal the source bounds. The forward\n+bounds remain 457 and 32. One extra physical private slot holds C1. L230 uses\n+an existing slot. The route bound also charges two routes for each of the two\n+new owned lifetimes. The local scalar-plus-route bound stays below 10^7, and\n+the complete raw nonrecursive bound stays **181,098,496 < 10^9**. Preparation,\n+COPY, CLEAR and storage therefore do not introduce an unpaid recursive cost.\n+\n+Two rational interval engines check the complete moment. Its unique crossing\n+in `0 < kappa < 1` lies in\n+**(0.00302238736347, 0.00302238736348)**. The verifier proves the moment decreases\n+on `[0,0.05]` and remains negative on `[0.05,1]`. This is a ceiling for this\n+fixed complete profile, not an optimum over circuits or helper relations.\n+The claimed kappa leaves more than **0.00000003736347** raw headroom.\n+\n+The separately tested saving is 0.00302236. The paid/target ratio is below\n+`0.999999971483293515393313955730`, with reserve `1e-9`. Both charged tails are\n+below `0.97`. The source power 1024, cutoff 20, floor 21, tail offset 1/5,\n+complement factor 63/64 and logarithm power 1000 still pass. The compiler gap\n+is `1/700000000`, with `j=44836`, `H=31385200000000` and `N=2^31385200000000`.\n+The exact integer test `(H+1)^1000 < 2^44836` passes; the preceding grid integer\n+fails. The uniform complex saving is `2115651/700000000`. All 54 strict outer\n+predicates and four functional predicates pass, using the retained ordinary\n+BIT saving 0.0034.\n+\n+## Verification and reproduction\n+\n+Use Python 3.12 or 3.14, with the standard library only. From the repository root:\n+\n+```sh\n+python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023 --check-only\n+python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023\n+```\n+\n+The registered commands run normal and optimized Python. The direct command,\n+also used for a Git-free export, is:\n+\n+```sh\n+python3 -B research/kappa-owned-relation-20261023/verify.py\n+python3 -O -B research/kappa-owned-relation-20261023/verify.py\n+```\n+\n+Each prints status\n+`PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION`.\n+The verifier reconstructs the word and compares its bytes and exact result with\n+the published artifacts. `--write` is a separate authoring command. It changes\n+only this package's word and result after all checks pass.\n+\n+Fresh checks cover both source words, both candidate words, every independent\n+entry column and owned return, the two unrestricted source identities, retained\n+phase bindings, the p16 rational Laurent factorization, both scalar boundary\n+programs, two complete invoice counts, two rational interval engines, the fixed\n+profile ceiling, completion, compiler, BIT conversion and all outer predicates.\n+The emitted word replaces the old single `canonical.local_profile` metadata\n+field with explicit `paid_profiles` for the two directions.\n+\n+Seven native controls reject a wrong relation sign, omitted input clear, wrong\n+snapshot, wrong zero frame, wrong paid rank, wrong copy gauge, and omitted\n+output clear. Five cost/outer controls reject the lost helper's output credit,\n+old BIT stock, closed uniform gap, unfunded endpoint and closed epsilon.\n+\n+Normal and optimized registered replays passed on CPython 3.12.14. The direct\n+author check also passed on CPython 3.14. Source metadata and pins passed.\n+The optional full-history preflight is not claimed in the shallow checkout.\n+The publication handoff records export and committed-byte checks.\n+\n+The full source phase lowering, BIT native replay, Lean, Docker, physical tape\n+execution, numerical precision execution, analytic decomposition and integer\n+recovery are not rerun here. The complete bound retains those predecessor\n+contracts, including permitted owned erasure, whole-job normalizers, mixed\n+productive-target recursion and all-size closure. The expanded compiled word\n+is specified by a finite algorithm, not materialized. This is a conditional\n+construction with exact finite evidence, not an unconditional multiplication\n+theorem, a practical timing result or independent human acceptance.\n+\n+## Credit\n+\n+Prepared by Ali Romman with substantial OpenAI Codex assistance. Apache-2.0.\n+Cao Yifan's [PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610)\n+supplies the exact source word, phase evidence and previous compiler value.\n+Cinna Davis's [PR #4470](https://github.com/CrocSwap/integer-mult-bounds/pull/4470)\n+supplies the p16 controller and helper-interface lineage. The source code keeps\n+credit for Dugongue's transported frames, zxv's native and finite-compiler\n+work, Jacob Alan Sussman's mixed-target recursion and their predecessors.\n+The [pricing source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-interface-round2-20261022/price_profile.py)\n+and [literal native source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-rebuild/complex/native_extensions.py)\n+are pinned as provenance for the adapted checks.\n+\n+zxv's [PR #5283](https://github.com/CrocSwap/integer-mult-bounds/pull/5283)\n+supplies the related cache contract and the explicit handoff to find actual\n+matching rows and their lifetimes. Its standalone cache example is not part of\n+this word. The new contribution is the five-helper relation, its actual cache\n+and zero identities, the full owned-field replacement and the complete positive\n+bill. No priority is claimed for the general cache or paid-history ideas.\n+\n+## Open next questions\n+\n+Independent review should first check the three source rows and the physical\n+COPY/zero argument above, then the retained all-size and phase premises.\n+A later construction could test a different helper relation, but it must claim\n+a disjoint scope and pay every lost target and owned field. This package does\n+not classify such relations. [TASK.json](TASK.json) records the first steps,\n+relevance and blockers for both questions.\n@@ -0,0 +1,373 @@\n+{\n+ \"arithmetic\": {\n+ \"compiler\": {\n+ \"H\": 31385200000000,\n+ \"N\": \"2^31385200000000\",\n+ \"eta\": {\n+ \"lower\": \"0.000000203927056311365991628189\",\n+ \"upper\": \"0.000000203927056311365991628190\"\n+ },\n+ \"gap\": \"1/700000000\",\n+ \"integer_test_exponent\": 44836,\n+ \"logarithm_power\": 1000,\n+ \"theta\": \"63/64\",\n+ \"uniform_saving\": \"2115651/700000000\",\n+ \"word_materialized\": false\n+ },\n+ \"fixed_profile_ceiling\": {\n+ \"decreasing_through\": \"1/20\",\n+ \"derivative_upper\": {\n+ \"lower\": \"-195778.630038840116414999953237565269\",\n+ \"upper\": \"-195778.630038840116414999953237565268\"\n+ },\n+ \"remaining_interval_moment_upper\": {\n+ \"lower\": \"-6836.549542075249598033582799619360\",\n+ \"upper\": \"-6836.549542075249598033582799619359\"\n+ }\n+ },\n+ \"full_backward\": 16,\n+ \"full_forward\": 2,\n+ \"gain_over_PR4610\": \"2871/5000000000\",\n+ \"kappa\": \"60447/20000000\",\n+ \"kappa_decimal\": \".00302235\",\n+ \"margin_at_previous_kappa\": {\n+ \"lower\": \"0.151161494385402651700356241377\",\n+ \"upper\": \"0.151161494385402651700356241378\"\n+ },\n+ \"margin_at_previous_root_upper\": {\n+ \"lower\": \"0.151143999513185007311808491175\",\n+ \"upper\": \"0.151143999513185007311808491176\"\n+ },\n+ \"negative_controls\": {\n+ \"closed_epsilon\": [\n+ \"epsilon_below_one\",\n+ \"global_gamma_power_slack\",\n+ \"actual_logarithmic_gamma_guard\",\n+ \"source_axis_superpolynomial\",\n+ \"gaussian_above_main\",\n+ \"new_semantic_guard_with_C1_one\"\n+ ],\n+ \"closed_uniform\": [\n+ \"new_complex_uniform_saving_above_b\"\n+ ],\n+ \"old_BIT\": [\n+ \"actual_bit_above_effective\"\n+ ],\n+ \"unearned_helper_credit\": \"Rejected by the independent complete census\",\n+ \"unfunded_endpoint\": [\n+ \"main_transform_above_kappa\",\n+ \"global_coordinate_router_above_kappa\",\n+ \"fused_gaussian_above_kappa\",\n+ \"group_bit_router_above_kappa\",\n+ \"boundary_algebraic_matrix_above_kappa\"\n+ ]\n+ },\n+ \"nonrecursive\": {\n+ \"additional_private_slots\": 1,\n+ \"local_routes\": 4806000,\n+ \"local_scalar\": 158214,\n+ \"owned_slots_backward\": 3,\n+ \"raw_budget\": 1000000000,\n+ \"raw_scalar_upper\": 181098496\n+ },\n+ \"ordinary_BIT\": {\n+ \"admitted\": \"17/5000\",\n+ \"after_cover\": \"69/20000\",\n+ \"atom\": \"1/250\",\n+ \"before_cover\": \"3459/1000000\",\n+ \"ordinary_saving\": \"8590884599/2500000000000\",\n+ \"prime_rule\": \"odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses\"\n+ },\n+ \"outer\": {\n+ \"functional_checks\": {\n+ \"actual_new_BIT_stock_sublinear\": \"174299999253/175000000000\",\n+ \"fixed_halo_explicit_metadata_branch\": \"13475000001/175000000\",\n+ \"new_BIT_row_stock_sublinear_in_active_group\": \"697899997009/700000000000\",\n+ \"new_semantic_group_guard\": \"3/700000000\"\n+ },\n+ \"margins\": {\n+ \"boundary_algebraic_matrix\": \"23139910904443/7656250000000000\",\n+ \"fused_gaussian\": \"23139910838329/7656250000000000\",\n+ \"global_coordinate_router\": \"2115649/700000000\",\n+ \"group_bit_router\": \"1480954993653053/490000000000000000\",\n+ \"group_scans\": \"349999999/350000000\",\n+ \"main_transform\": \"23139899966943/7656250000000000\",\n+ \"microbox_face_corrections\": \"13475000001/175000000\",\n+ \"polynomial_products\": \"699999999/700000000\",\n+ \"sparse_union_movement\": \"3133491473404443/7656250000000000\"\n+ },\n+ \"parameters\": {\n+ \"a\": \"2115649/700000000\",\n+ \"b\": \"42313/14000000\",\n+ \"beta\": \"699999997/700000000\",\n+ \"bit_saving\": \"17/5000\",\n+ \"cap_xi\": \"6961616462466943/7656250000000000\",\n+ \"complex_uniform_saving\": \"2115651/700000000\",\n+ \"d\": \"1/700000000\",\n+ \"epsilon\": \"699999999/700000000\",\n+ \"kappa\": \"60447/20000000\",\n+ \"lambda_\": \"199395529/200000000\",\n+ \"lambda_prime\": \"10904443/10937500\",\n+ \"layout\": \"1/700000000\",\n+ \"q\": \"33057/10937500\",\n+ \"r0\": \"1/7000000000\",\n+ \"stop\": \"1/700000000\",\n+ \"tested_saving\": \"75559/25000000\"\n+ },\n+ \"strict_checks\": {\n+ \"actual_bit_above_effective\": \"264351/700000000\",\n+ \"actual_logarithmic_gamma_guard\": \"1/700000000\",\n+ \"actual_logarithmic_group_guard\": \"694633553939307/3828125000000000\",\n+ \"alpha_logarithm_absorption\": \"1/7000000000\",\n+ \"boundary_algebraic_matrix_above_kappa\": \"43716943/7656250000000000\",\n+ \"cap_above_band\": \"3133491462466943/7656250000000000\",\n+ \"cap_below_cell\": \"694633526595557/7656250000000000\",\n+ \"cap_below_phase_cell_power\": \"8350883537533057/7656250000000000\",\n+ \"complex_above_effective\": \"1/700000000\",\n+ \"complex_below_one_over_32\": \"395187/14000000\",\n+ \"complex_endpoint\": \"1/350000000\",\n+ \"epsilon_below_one\": \"1/700000000\",\n+ \"epsilon_positive\": \"699999999/700000000\",\n+ \"fine_prime_halo_umbrella\": \"7/2\",\n+ \"fused_gaussian_above_kappa\": \"43650829/7656250000000000\",\n+ \"gaussian_above_main\": \"5435693/3828125000000000\",\n+ \"global_coordinate_router_above_kappa\": \"1/175000000\",\n+ \"global_gamma_power_slack\": \"9/7000000000\",\n+ \"group_below_dimension\": \"1/350000000\",\n+ \"group_bit_router_above_kappa\": \"3493653053/490000000000000000\",\n+ \"group_gauge_power_slack\": \"43414597087027/239257812500000\",\n+ \"group_key_fits_record\": \"1/350000000\",\n+ \"group_positive\": \"699999997/700000000\",\n+ \"group_scans_above_kappa\": \"697884353/700000000\",\n+ \"halo_covers_generic_inverse_radius\": \"5\",\n+ \"improvement_over_user_baseline\": \"645689790400418148631/500000000000000000000000\",\n+ \"lambda_above_internal\": \"1/1400000000\",\n+ \"lambda_above_sigma\": \"3/1400000000\",\n+ \"lambda_above_tau\": \"1/1400000000\",\n+ \"lambda_prime_above_lambda\": \"1/1400000000\",\n+ \"lambda_prime_above_leaf\": \"27957687/9800000000000000\",\n+ \"leaf_saving_above_effective\": \"13957687/9800000000000000\",\n+ \"main_transform_above_kappa\": \"32779443/7656250000000000\",\n+ \"membership_arithmetic_fits_record\": \"1/700000000\",\n+ \"microbox_face_corrections_above_kappa\": \"53897884359/700000000\",\n+ \"microbox_halo_volume\": \"55300000003/700000000\",\n+ \"new_complex_uniform_saving_above_b\": \"1/700000000\",\n+ \"new_semantic_guard_with_C1_one\": \"1/700000000\",\n+ \"polynomial_products_above_kappa\": \"348942177/350000000\",\n+ \"positive_layout_slack\": \"1/700000000\",\n+ \"q_below_effective\": \"1/700000000\",\n+ \"q_below_internal\": \"1/700000000\",\n+ \"q_below_leaf\": \"27957687/9800000000000000\",\n+ \"q_positive\": \"33057/10937500\",\n+ \"short_record_fallback\": \"13957687/14000000\",\n+ \"source_axis_superpolynomial\": \"1/700000000\",\n+ \"sparse_union_movement_above_kappa\": \"3110351606216943/7656250000000000\",\n+ \"stop_below_one\": \"699999999/700000000\",\n+ \"stop_positive\": \"1/700000000\",\n+ \"strassen_integer_power_gap\": \"1951441519231\",\n+ \"support_router_span\": \"3/700000000\",\n+ \"theta_positive_polynomial_power\": \"2\",\n+ \"union_header_fits_record\": \"3/700000000\",\n+ \"union_tag_work_per_visit_fits_record\": \"3/700000000\"\n+ }\n+ },\n+ \"paid\": {\n+ \"1\": 41282,\n+ \"16\": 448,\n+ \"2\": 7416,\n+ \"24\": 448,\n+ \"3\": 9180,\n+ \"32\": 448,\n+ \"4\": 2286,\n+ \"40\": 448,\n+ \"48\": 448,\n+ \"5\": 720,\n+ \"56\": 448,\n+ \"64\": 448,\n+ \"72\": 224,\n+ \"8\": 128\n+ },\n+ \"paid_calls\": 64372,\n+ \"productive_fields\": 10912,\n+ \"query_shears\": 15,\n+ \"rank_mass_surplus\": 752,\n+ \"raw_headroom\": [\n+ \"3736347/100000000000000\",\n+ \"934087/25000000000000\"\n+ ],\n+ \"raw_root_interval\": [\n+ \"302238736347/100000000000000\",\n+ \"75559684087/25000000000000\"\n+ ],\n+ \"strictification\": {\n+ \"alpha\": {\n+ \"lower\": \"0.999999971483293515393313955729\",\n+ \"upper\": \"0.999999971483293515393313955730\"\n+ },\n+ \"cutoff\": 20,\n+ \"delta\": {\n+ \"lower\": \"0.957459689758527661921334851512\",\n+ \"upper\": \"0.957459689758527661921334851513\"\n+ },\n+ \"floor\": 21,\n+ \"gamma\": {\n+ \"lower\": \"0.956310980726438847618396606911\",\n+ \"upper\": \"0.956310980726438847618396606912\"\n+ },\n+ \"normalized_paid_upper\": \"2097152001953127/2097154147483648\",\n+ \"power\": 1024,\n+ \"reserve\": \"1/1000000000\",\n+ \"tail_offset\": \"1/5\",\n+ \"tested\": \"75559/25000000\"\n+ },\n+ \"targets\": {\n+ \"145\": 224,\n+ \"17\": 448,\n+ \"25\": 448,\n+ \"33\": 448,\n+ \"4\": 504,\n+ \"41\": 448,\n+ \"49\": 448,\n+ \"57\": 448,\n+ \"65\": 448,\n+ \"7\": 126,\n+ \"73\": 224,\n+ \"8\": 846,\n+ \"9\": 5852\n+ }\n+ },\n+ \"candidate_native\": {\n+ \"backward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 325\n+ },\n+ \"independent_owned_entry_columns\": 3,\n+ \"independent_persistent_columns\": 631,\n+ \"max_denominator\": 64,\n+ \"max_formal_prefix_l1\": \"169\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2200,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 7\n+ },\n+ \"real_scalar_allowance\": 158214,\n+ \"zero_identities\": 1\n+ },\n+ \"forward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 326\n+ },\n+ \"independent_owned_entry_columns\": 1,\n+ \"independent_persistent_columns\": 632,\n+ \"max_denominator\": 32,\n+ \"max_formal_prefix_l1\": \"457\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2201,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 8\n+ },\n+ \"real_scalar_allowance\": 158120,\n+ \"zero_identities\": 0\n+ }\n+ },\n+ \"independent_source_identities\": {\n+ \"center_minus_snapshot\": \"Delta/4\",\n+ \"center_replaced\": 11332,\n+ \"copy_coefficient\": \"1\",\n+ \"relation\": {\n+ \"230\": 1,\n+ \"324\": -1,\n+ \"326\": 1,\n+ \"328\": 1,\n+ \"333\": -1\n+ },\n+ \"snapshot_after\": 11205,\n+ \"snapshot_terms_before_substitution\": 61,\n+ \"source_event_indices_are_zero_based\": true,\n+ \"zero_identity_at\": 15584,\n+ \"zero_site_row\": \"-Delta/4\"\n+ },\n+ \"native_negative_controls\": {\n+ \"missing_owned_input_clear\": \"Every independent main/helper endpoint: 0\",\n+ \"uncleared_owned_output\": \"Every owned entry column is erased at return\",\n+ \"under_or_overstated_paid_rank\": \"Exact paid rank and frame\",\n+ \"wrong_copy_gauge\": \"Exact scalar destination frame\",\n+ \"wrong_relation_sign\": \"Every independent main/helper endpoint: 0\",\n+ \"wrong_snapshot_source\": \"Zero identity requires an identically zero full row\",\n+ \"wrong_zero_input_frame\": \"Zero identity requires an identically zero full row\"\n+ },\n+ \"phase_inheritance\": {\n+ \"absolute_phase_receipt_reused\": \"research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz\",\n+ \"all_retained_paid_events_and_warps_from_source\": true,\n+ \"new_gaussian_operators\": 0,\n+ \"new_native_maps\": 0,\n+ \"new_operations\": \"Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.\",\n+ \"source_amplitudes_and_phase_lowering_freshly_replayed\": false\n+ },\n+ \"scope\": \"Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.\",\n+ \"source_native\": {\n+ \"backward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 326\n+ },\n+ \"independent_owned_entry_columns\": 1,\n+ \"independent_persistent_columns\": 632,\n+ \"max_denominator\": 64,\n+ \"max_formal_prefix_l1\": \"169\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2201,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 8\n+ },\n+ \"real_scalar_allowance\": 158168,\n+ \"zero_identities\": 0\n+ },\n+ \"forward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 326\n+ },\n+ \"independent_owned_entry_columns\": 1,\n+ \"independent_persistent_columns\": 632,\n+ \"max_denominator\": 32,\n+ \"max_formal_prefix_l1\": \"457\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2201,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 8\n+ },\n+ \"real_scalar_allowance\": 158120,\n+ \"zero_identities\": 0\n+ }\n+ },\n+ \"source_payload_sha256\": \"cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd\",\n+ \"status\": \"PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION\",\n+ \"word_payload_sha256\": \"645b32ff67dfd49bbe8c2287d21f12a66a775d3c5e187db6f813e17e9f8fae35\"\n+}\n@@ -0,0 +1,90 @@\n+{\n+ \"schema_version\": 1,\n+ \"base_commit\": \"7c472563474e60185e6ca101a17622133d047e56\",\n+ \"files\": [\n+ {\n+ \"path\": \"certificates/selected-result.json\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"c35482cd9035843b15a634cc8276a7e1e40e8395\",\n+ \"sha256\": \"6fe0a099b89aa2aed796a13c3a21dafc63f3388ebf397464e44e0451893b9375\"\n+ },\n+ {\n+ \"path\": \"docs/research/agent-task-catalog.json\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"f126dd2e2dad2b669e75d1d0d0bd05c600725602\",\n+ \"sha256\": \"f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72\"\n+ },\n+ {\n+ \"path\": \"research/free-word-tensor-lift-audit/PROOF.md\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"69c337a7704ce589798269ab4b8606189c070c4e\",\n+ \"sha256\": \"cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459\"\n+ },\n+ {\n+ \"path\": \"research/higher-moment-strictification/verify.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"4b24a5096154736ce060474eb8c72dc64c303699\",\n+ \"sha256\": \"0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326\"\n+ },\n+ {\n+ \"path\": \"research/joint-helper-lattice/CONTROLLER.json\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"49a2f0675819f9deeea27ed77be2c2b6ff2e87e5\",\n+ \"sha256\": \"1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f\"\n+ },\n+ {\n+ \"path\": \"research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"5a55034ec9e6185d981e16c28e1e2e455069e2cb\",\n+ \"sha256\": \"106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7\"\n+ },\n+ {\n+ \"path\": \"research/kappa-interface-round2-20261022/price_profile.py\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"1d93e43d1cb888d128c2faa2be83a96d85b84295\",\n+ \"sha256\": \"adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb\"\n+ },\n+ {\n+ \"path\": \"research/kappa-rebuild/architecture/mixed_target_probe.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"4fc05ab08138218ba9f09e5c89b649afae7c914e\",\n+ \"sha256\": \"011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a\"\n+ },\n+ {\n+ \"path\": \"research/kappa-rebuild/complex/native_extensions.py\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"7f84894efc309546a903d314c7ac1473e7f594a8\",\n+ \"sha256\": \"50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3\"\n+ },\n+ {\n+ \"path\": \"research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"46d929df83817b85a5387bcdb9745e0627d6366e\",\n+ \"sha256\": \"7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05\"\n+ },\n+ {\n+ \"path\": \"research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"ac77b78547d6dbf2e6bd102e1047c5b16c1bca88\",\n+ \"sha256\": \"6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b\"\n+ },\n+ {\n+ \"path\": \"research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"0fdb65f946d557c13d8e2781b9151e2a8ddee5c3\",\n+ \"sha256\": \"b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de\"\n+ },\n+ {\n+ \"path\": \"research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59\",\n+ \"sha256\": \"d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15\"\n+ },\n+ {\n+ \"path\": \"research/query-thinned-controllers/RESULT.json\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"e0695152c98d727edfd0d2034b58a1c7e8682c0c\",\n+ \"sha256\": \"6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f\"\n+ }\n+ ]\n+}\n@@ -0,0 +1,80 @@\n+{\n+ \"schema_version\": 1,\n+ \"task_id\": \"complex-new-helper-inventory\",\n+ \"priority_revision\": 7,\n+ \"base_commit\": \"7c472563474e60185e6ca101a17622133d047e56\",\n+ \"original_card\": {\n+ \"id\": \"complex-new-helper-inventory\",\n+ \"question\": \"Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?\",\n+ \"starting_points\": [\n+ \"docs/research/research-family-status.md\",\n+ \"research/complex-local-word-ceiling/README.md\",\n+ \"research/heterogeneous-owner-assembly/README.md\",\n+ \"certificates/selected-result.json\",\n+ \"research/selected-k8-unrestricted-ends/README.md\"\n+ ],\n+ \"methods\": [\n+ \"Propose a changed helper inventory and derive an optimistic exact moment.\",\n+ \"Design a small completed instance and independently verify its endpoint and rank bill.\"\n+ ],\n+ \"acceptance_gate\": \"A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a lower cap does not establish identical circuitry or order attainable optima, and is insufficient to pass the stronger-budget target under this model. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.\",\n+ \"first_step\": {\n+ \"command\": [\n+ \"python3\",\n+ \"-B\",\n+ \"research/complex-local-word-ceiling/verify.py\"\n+ ],\n+ \"expected\": \"PASS_COMPLEX_LOCAL_WORD_CEILING\",\n+ \"inspect\": \"Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.\",\n+ \"scope\": \"Positive control and planning budget only; this is not a new construction or full cold replay.\"\n+ },\n+ \"first_experiment\": \"Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.\",\n+ \"bottleneck_link\": \"Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.\",\n+ \"allowed_variations\": [\n+ \"Narrow to one changed boundary or helper type with explicit counts.\",\n+ \"If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope.\"\n+ ],\n+ \"scope_change_triggers\": [\n+ \"Mixing only providers already inside the pinned catalogue.\",\n+ \"Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.\",\n+ \"Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts.\"\n+ ],\n+ \"overlap_terms\": [\n+ \"helper inventory\",\n+ \"heterogeneous-owner\",\n+ \"mutable leaver\"\n+ ]\n+ },\n+ \"scope_status\": \"refined\",\n+ \"actual_scope\": \"Make helper L230 owned in each backward call, prepare one five-helper relation, retain one exact frame-254 snapshot, remove one rank-eight center and one rank-one zero job, and debit one rank-nine target.\",\n+ \"scope_change_reason\": \"This uses the current helper-inventory priority. It changes the independent input inventory and scalar word; all physical native maps and the p16 controller remain fixed.\",\n+ \"bottleneck_link\": \"https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737\",\n+ \"budget_minutes\": 240,\n+ \"stop_rule\": \"Publish one exact complete-profile kappa improvement after native, ownership, phase-inheritance, compiler and cold-export checks.\",\n+ \"outcome\": \"completed\",\n+ \"evidence\": \"README.md, WORD.json.gz, RESULT.json and verify.py. The complete conditional kappa is 60447/20000000.\",\n+ \"author\": \"Ali Romman\",\n+ \"ai_assistance\": \"Substantial OpenAI Codex assistance in discovery, code, proof, verification and publication.\",\n+ \"open_questions\": [\n+ {\n+ \"question\": \"Can a separate reviewer validate this one-relation restriction and the inherited physical transfer premises?\",\n+ \"why_it_matters\": \"The new finite construction is exact, but the complete bound still uses the source phase and all-size contracts.\",\n+ \"first_step\": \"Replay the three unrestricted source rows in native.py and check the COPY and zero-identity argument in README.md.\",\n+ \"blocked_by\": \"Independent review has not yet occurred.\"\n+ },\n+ {\n+ \"question\": \"Can a different helper relation give another complete positive bill?\",\n+ \"why_it_matters\": \"This construction gives one positive instance, not an optimum for changed helper inventories.\",\n+ \"first_step\": \"Claim a disjoint relation in Discussions, derive its exact rows, and include every lost target and owned-storage cost.\",\n+ \"blocked_by\": \"Current active cache and paid-history scopes must be checked first.\"\n+ }\n+ ],\n+ \"coordination\": {\n+ \"claim\": \"https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737\",\n+ \"distinct_scopes\": [\n+ \"https://github.com/CrocSwap/integer-mult-bounds/discussions/5355\",\n+ \"https://github.com/CrocSwap/integer-mult-bounds/discussions/4930\"\n+ ],\n+ \"boundary\": \"The first scope retains 632 arbitrary inputs and eight centers. The second retains every original helper endpoint. This package removes the independent L230 job only in backward calls and claims only the stated relation and two event replacements.\"\n+ }\n+}\n@@ -0,0 +1,38 @@\n+{\n+ \"schema_version\": 1,\n+ \"status\": \"ready\",\n+ \"python\": \"3.12\",\n+ \"requirements\": [],\n+ \"inputs\": [\n+ \"research/higher-moment-strictification/verify.py\",\n+ \"research/joint-helper-lattice/CONTROLLER.json\",\n+ \"research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py\",\n+ \"research/kappa-rebuild/architecture/mixed_target_probe.py\",\n+ \"research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz\",\n+ \"research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz\",\n+ \"research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json\",\n+ \"research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py\",\n+ \"research/query-thinned-controllers/RESULT.json\"\n+ ],\n+ \"commands\": [\n+ {\n+ \"argv\": [\n+ \"{python}\",\n+ \"-B\",\n+ \"{package}/verify.py\"\n+ ],\n+ \"timeout_seconds\": 600,\n+ \"checks\": \"Exact native rows, owned entry columns, event ranks, independent source identities, p16 Laurent controller, complete asymmetric invoice, two interval engines, compiler and outer predicates, negative controls.\"\n+ },\n+ {\n+ \"argv\": [\n+ \"{python}\",\n+ \"-O\",\n+ \"-B\",\n+ \"{package}/verify.py\"\n+ ],\n+ \"timeout_seconds\": 600,\n+ \"checks\": \"The same checks remain active with Python assertions disabled.\"\n+ }\n+ ]\n+}\n\n@@ -0,0 +1,299 @@\n+\"\"\"One prepared helper removes two paid jobs in the PR4610 backward word.\n+\n+Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0.\n+The source word is by Cao Yifan. The row convention and scalar allowance\n+follow the credited native work of Cinna Davis and zxv.\n+\"\"\"\n+from collections import Counter\n+from copy import deepcopy\n+from fractions import Fraction as Q\n+from hashlib import sha1, sha256\n+from pathlib import Path\n+import gzip\n+import importlib.util\n+import json\n+import sys\n+\n+HERE = Path(__file__).resolve().parent\n+ROOT = HERE.parents[1]\n+SOURCE = 'research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz'\n+PHASE = 'research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz'\n+PAYLOAD = 'cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd'\n+RELATION = {230: 1, 324: -1, 326: 1, 328: 1, 333: -1}\n+OLD_PAID = {1: 2201, 2: 412, 3: 510, 4: 127, 5: 40, 8: 8}\n+NEW_PAID = dict(OLD_PAID)\n+NEW_PAID[1] -= 1\n+NEW_PAID[8] -= 1\n+OLD_HELPERS = {4: 28, 7: 7, 8: 47, 9: 326}\n+\n+\n+def need(ok, why):\n+ if not ok:\n+ raise ValueError(why)\n+\n+\n+def read(path):\n+ data = path.read_bytes()\n+ return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data)\n+\n+\n+def encode(x):\n+ if isinstance(x, Q):\n+ return str(x)\n+ if isinstance(x, dict):\n+ return {str(k): encode(v) for k, v in x.items()}\n+ if isinstance(x, (list, tuple)):\n+ return [encode(v) for v in x]\n+ return x\n+\n+\n+def load(relative, name):\n+ spec = importlib.util.spec_from_file_location(name, ROOT / relative)\n+ module = importlib.util.module_from_spec(spec)\n+ sys.modules[name] = module\n+ spec.loader.exec_module(module)\n+ return module\n+\n+\n+def authenticate():\n+ pins = read(HERE / 'SOURCES.json')\n+ for row in pins['files']:\n+ if row['usage'] != 'input':\n+ continue\n+ p = ROOT\n+ for part in Path(row['path']).parts:\n+ p /= part\n+ need(not p.is_symlink(), 'No source aliases')\n+ raw = p.read_bytes()\n+ need(sha256(raw).hexdigest() == row['sha256'], 'Changed source: ' + row['path'])\n+ need(sha1(b'blob ' + str(len(raw)).encode() + b'\\0' + raw).hexdigest() == row['git_blob'], 'Source Git blob')\n+ need(sha256(gzip.decompress((ROOT / SOURCE).read_bytes())).hexdigest() == PAYLOAD, 'Exact source payload')\n+ return pins\n+\n+\n+def span(basis):\n+ out = {0}\n+ for vector in basis:\n+ need(isinstance(vector, int) and 0 <= vector < 512, 'Binary frame coordinate')\n+ out |= {v ^ vector for v in tuple(out)}\n+ need(len(out) == 2 ** len(basis), 'Independent frame basis')\n+ return out\n+\n+\n+def add(dst, src, q):\n+ for k, v in tuple(src.items()):\n+ value = dst.get(k, Q(0)) + q * v\n+ if value:\n+ dst[k] = value\n+ else:\n+ dst.pop(k, None)\n+\n+\n+def allowance(g):\n+ if g[0] in ('clear', 'copy'):\n+ return 2\n+ q = Q(*g[3:]) if g[0] == 'add' else Q(*g[2:])\n+ n, d = abs(q.numerator), q.denominator\n+ need(n > 0 and d & (d - 1) == 0, 'Nonzero dyadic scalar')\n+ if g[0] == 'scale':\n+ need(n & (n - 1) == 0, 'Dyadic unit SCALE')\n+ return 2 * (abs(n.bit_length() - d.bit_length()) + int(q < 0))\n+ need(g[0] == 'add', 'Known scalar operation')\n+ return 2 * (3 + n.bit_length() - 1 + n.bit_count() + d.bit_length() - 1)\n+\n+\n+def construct(source):\n+ c = source['canonical']\n+ old = source['programs']['backward']\n+ need(old[11205] == ['climb', 'warp_retimed', 92, 310, 254, 4], 'Snapshot source event')\n+ need(old[11332] == ['center', 0, 0, 254, 8], 'Center source event')\n+ need(old[15584] == ['climb', 'warp_retimed', 92, 254, 1, 1], 'Zero source event')\n+ need(all(c['start'][h] == 0 and c['final'][h] == 1 for h in RELATION), 'Five cold full-ended helpers')\n+ word = [['scalar', ['clear', ['L', 230]], 0]]\n+ word += [['scalar', ['add', ['L', 230], ['L', h], -q, 1], 0]\n+ for h, q in RELATION.items() if h != 230]\n+ for i, event in enumerate(old):\n+ if i == 11332:\n+ word += [['scalar', ['clear', ['C', 0]], 254],\n+ ['scalar', ['copy', ['C', 0], ['C', 1]], 254],\n+ ['scalar', ['clear', ['C', 1]], 254]]\n+ elif i == 15584:\n+ word.append(['zero_retag', ['L', 92], 254, 1])\n+ else:\n+ word.append(deepcopy(event))\n+ if i == 11205:\n+ word += [['scalar', ['clear', ['C', 1]], 254],\n+ ['scalar', ['copy', ['C', 1], ['L', 92]], 254]]\n+ word.append(['scalar', ['clear', ['L', 230]], 1])\n+ physical = deepcopy(c)\n+ physical.pop('local_profile')\n+ return {'schema': 'owned-helper-relation-word/1', 'canonical': physical,\n+ 'paid_profiles': {'forward': OLD_PAID, 'backward': NEW_PAID},\n+ 'owned': {'forward': [['C', 0]], 'backward': [['C', 0], ['C', 1], ['L', 230]]},\n+ 'programs': {'forward': deepcopy(source['programs']['forward']), 'backward': word}}\n+\n+\n+def replay(c, program, backward, specialized):\n+ \"\"\"Run every event on all independent entry columns and exact frames.\"\"\"\n+ owned = {('C', 0)} | ({('C', 1), ('L', 230)} if specialized else set())\n+ roles = {('L', i) for i in range(632)} | owned\n+ rows = {r: {(r, ()): Q(1)} for r in roles}\n+ frames = {('L', i): f for i, f in enumerate(c['start'])}\n+ frames.update({r: None for r in owned if r[0] == 'C'})\n+ spaces = [span(b) for b in c['frames']]\n+ paid = Counter()\n+ cost, max_l1, denominator, zero_count = 0, Q(1), 1, 0\n+ for e in program:\n+ kind, touched = e[0], None\n+ if kind == 'scalar':\n+ g, frame = e[1:]\n+ dst = tuple(g[1]); touched = dst\n+ need(dst in rows and 0 <= frame < len(spaces), 'Declared scalar destination and frame')\n+ cost += allowance(g)\n+ if g[0] == 'clear':\n+ need(dst in owned, 'Only owned fields can be erased')\n+ rows[dst] = {}; frames[dst] = frame\n+ else:\n+ need(frames[dst] == frame, 'Exact scalar destination frame')\n+ if g[0] in ('add', 'copy'):\n+ src = tuple(g[2])\n+ need(src in rows and frames[src] == frame and dst != src, 'Exact scalar source frame')\n+ if g[0] == 'copy':\n+ need(dst in owned and not rows[dst], 'COPY into cleared owned storage')\n+ rows[dst] = dict(rows[src])\n+ else:\n+ add(rows[dst], rows[src], Q(g[3], g[4]))\n+ else:\n+ need(g[0] == 'scale', 'Known scalar operation')\n+ rows[dst] = {k: Q(g[2], g[3]) * v for k, v in rows[dst].items()}\n+ elif kind == 'warp':\n+ _, role, op, old, new = e\n+ dst = tuple(role); touched = dst\n+ need(frames[dst] == old and 1 <= abs(op) <= len(c['warps']), 'Exact warp input')\n+ symbol = (1 if op > 0 else -1) * (abs(op) + (10**6 if backward else 0))\n+ rows[dst] = {(r, w[1:] if w and w[0] == -symbol else (symbol,) + w): q\n+ for (r, w), q in rows[dst].items()}\n+ frames[dst] = new\n+ elif kind in ('climb', 'center'):\n+ if kind == 'climb':\n+ _, _, i, old, new, rank = e\n+ dst = ('L', i)\n+ need(spaces[old] < spaces[new], 'Ascending paid climb')\n+ else:\n+ _, i, old, new, rank = e\n+ dst = ('C', i)\n+ need(spaces[old] < spaces[new] or spaces[new] < spaces[old], 'Nested paid center')\n+ need(frames[dst] == old and rank == abs(len(c['frames'][new]) - len(c['frames'][old])), 'Exact paid rank and frame')\n+ frames[dst] = new; paid[rank] += 1\n+ elif kind == 'zero_retag':\n+ _, role, old, new = e\n+ dst = tuple(role)\n+ need(specialized and backward and dst == ('L', 92), 'Declared zero identity')\n+ need(frames[dst] == old and not rows[dst], 'Zero identity requires an identically zero full row')\n+ need((old, new) == (254, 1), 'Declared zero frame change')\n+ frames[dst] = new; zero_count += 1\n+ else:\n+ need(kind in ('phase', 'adapter'), 'Known inert source marker')\n+ if touched is not None:\n+ max_l1 = max(max_l1, sum(map(abs, rows[touched].values()), Q(0)))\n+ denominator = max(denominator, max((q.denominator for q in rows[touched].values()), default=1))\n+ need([frames['L', i] for i in range(632)] == c['final'], 'Every final native frame')\n+ for i in range(632):\n+ r = ('L', i)\n+ if r in owned:\n+ continue\n+ expected = {(r, ()): Q(1)}\n+ if i < 112 if backward else 112 <= i < 224:\n+ expected[(('L', i + 112 if backward else i - 112), ())] = Q(-1 if backward else 1)\n+ need(rows[r] == expected, 'Every independent main/helper endpoint: ' + str(i))\n+ need(all(not rows[r] for r in owned), 'Every owned entry column is erased at return')\n+ need(zero_count == int(specialized), 'Exactly one checked zero identity')\n+ helpers = Counter()\n+ for i in range(224, 632):\n+ if ('L', i) in owned:\n+ continue\n+ a, b = c['start'][i], c['final'][i]\n+ need(spaces[a] < spaces[b], 'Strict independent productive helper')\n+ helpers[len(c['frames'][b]) - len(c['frames'][a])] += 1\n+ return {'paid': dict(sorted(paid.items())), 'helpers': dict(sorted(helpers.items())),\n+ 'independent_persistent_columns': 631 if specialized else 632,\n+ 'independent_owned_entry_columns': len(owned), 'owned_outputs_zero': True,\n+ 'real_scalar_allowance': cost, 'max_formal_prefix_l1': str(max_l1),\n+ 'max_denominator': denominator, 'zero_identities': zero_count}\n+\n+\n+def independent_source_identities(source):\n+ \"\"\"Use the predecessor row engine on the unrestricted original word.\"\"\"\n+ v = load('research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py', 'owned_relation_source_rows')\n+ rows = {('L', i): v.identity(('L', i)) for i in range(632)}\n+ rows['C', 0] = v.identity(('C', 0))\n+ delta = {(('L', i), ()): Q(q) for i, q in RELATION.items()}\n+ saved = None\n+ for index, e in enumerate(source['programs']['backward']):\n+ if e[0] == 'scalar':\n+ g = e[1]; dst = tuple(g[1])\n+ if g[0] == 'clear': rows[dst] = {}\n+ elif g[0] == 'copy': rows[dst] = dict(rows[tuple(g[2])])\n+ elif g[0] == 'scale': rows[dst] = {k: Q(g[2], g[3]) * a for k, a in rows[dst].items()}\n+ else: v.add(rows[dst], rows[tuple(g[2])], Q(g[3], g[4]))\n+ elif e[0] == 'warp':\n+ dst = tuple(e[1]); rows[dst] = v.warp(rows[dst], e[2], True)\n+ if index == 11205: saved = dict(rows['L', 92])\n+ if index == 11332:\n+ diff = dict(rows['C', 0]); v.add(diff, saved, -1)\n+ need(diff == {k: q / 4 for k, q in delta.items()}, 'Independent exact center minus snapshot = Delta/4')\n+ if index == 15584:\n+ need(rows['L', 92] == {k: -q / 4 for k, q in delta.items()}, 'Independent exact zero-site row = -Delta/4')\n+ need(all(rows['L', i] == v.expected(('L', i), [], True, False) for i in range(632)), 'Independent unrestricted source endpoints')\n+ return {'source_event_indices_are_zero_based': True, 'snapshot_after': 11205,\n+ 'center_replaced': 11332, 'zero_identity_at': 15584,\n+ 'snapshot_terms_before_substitution': len(saved), 'copy_coefficient': '1',\n+ 'center_minus_snapshot': 'Delta/4', 'zero_site_row': '-Delta/4', 'relation': RELATION}\n+\n+\n+def phase_inheritance(source, candidate):\n+ receipt = read(ROOT / PHASE)\n+ need(receipt['status'] == 'PASS_JOINT_HELPER_MAPS_ALL_ACTUAL_ABSOLUTE_PHASES' and\n+ receipt['actual_word_canonical_sha256'] == PAYLOAD, 'Authenticated source absolute-phase receipt')\n+ physical = deepcopy(source['canonical']); physical.pop('local_profile')\n+ need(candidate['canonical'] == physical, 'Every frame, native map and main adapter unchanged')\n+ for direction, program in candidate['programs'].items():\n+ old = source['programs'][direction]\n+ for kind in ('warp', 'adapter', 'phase'):\n+ need([e for e in program if e[0] == kind] == [e for e in old if e[0] == kind], 'Exact inherited ' + kind + ' sequence')\n+ old_paid = Counter(tuple(e) for e in old if e[0] in ('climb', 'center'))\n+ new_paid = Counter(tuple(e) for e in program if e[0] in ('climb', 'center'))\n+ expected = Counter() if direction == 'forward' else Counter(tuple(old[i]) for i in (11332, 15584))\n+ need(old_paid - new_paid == expected and not new_paid - old_paid, 'Only the two proved jobs are removed')\n+ return {'new_gaussian_operators': 0, 'new_native_maps': 0,\n+ 'all_retained_paid_events_and_warps_from_source': True,\n+ 'absolute_phase_receipt_reused': PHASE,\n+ 'source_amplitudes_and_phase_lowering_freshly_replayed': False,\n+ 'new_operations': 'Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.'}\n+\n+\n+def controls(c, candidate):\n+ controls = {}\n+ base = candidate['programs']['backward']\n+ variants = {}\n+ bad = deepcopy(base); bad[1][1][3] *= -1; variants['wrong_relation_sign'] = bad\n+ variants['missing_owned_input_clear'] = deepcopy(base[1:])\n+ bad = deepcopy(base)\n+ next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 1]])[1][2] = ['L', 63]\n+ variants['wrong_snapshot_source'] = bad\n+ bad = deepcopy(base); next(e for e in bad if e[0] == 'zero_retag')[2] = 0\n+ variants['wrong_zero_input_frame'] = bad\n+ bad = deepcopy(base); next(e for e in bad if e[0] == 'climb')[5] += 1\n+ variants['under_or_overstated_paid_rank'] = bad\n+ bad = deepcopy(base)\n+ next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 0]])[2] = 0\n+ variants['wrong_copy_gauge'] = bad\n+ variants['uncleared_owned_output'] = deepcopy(base[:-1])\n+ for name, program in variants.items():\n+ try:\n+ replay(c, program, True, True)\n+ except ValueError as err:\n+ controls[name] = str(err)\n+ else:\n+ raise ValueError('Control accepted: ' + name)\n+ return controls\n@@ -0,0 +1,196 @@\n+\"\"\"Complete p16 bill and finite compiler for one owned helper relation.\n+\n+The interval and compiler proof follows Cao Yifan's PR4610 pricing, Cinna\n+Davis's PR4470 controller, zxv's completion and logarithmic majorant, and\n+Jacob Alan Sussman's mixed-target recursion. Apache-2.0.\n+Ali Romman, with substantial OpenAI Codex assistance.\n+\"\"\"\n+from collections import Counter\n+from fractions import Fraction as Q\n+from native import ROOT, read, load, need, encode, OLD_PAID, OLD_HELPERS\n+\n+KAPPA = Q('.00302235')\n+TESTED = Q('.00302236')\n+PREVIOUS = Q('.0030217758')\n+OLD_ROOT_UPPER = Q('.00302177587078')\n+\n+\n+def controller():\n+ \"\"\"Check the literal p16 word and both rational boundary programs.\"\"\"\n+ word = read(ROOT / 'research/joint-helper-lattice/CONTROLLER.json')\n+ need((word['kind'], word['pairs'], word['prefix_pairs'], word['ambient_rank']) == ('complex', 16, 7, 145), 'Source p16/a7 controller')\n+ zero = (0,) * 34\n+ def plus(dst, src, q):\n+ for k, v in src.items():\n+ value = dst.get(k, Q(0)) + q * v\n+ if value: dst[k] = value\n+ else: dst.pop(k, None)\n+ def shifted(row, term, sign=1):\n+ return [{tuple(a + b for a, b in zip(k, term)): sign * v for k, v in cell.items()} for cell in row]\n+ for side in ('left', 'right'):\n+ matrix = [[Q(i == j) for j in range(32)] for i in range(32)]\n+ for e in word['boundaries'][side + '_program']:\n+ if e[0] == 'SWAP': matrix[e[1]], matrix[e[2]] = matrix[e[2]], matrix[e[1]]\n+ elif e[0] == 'SCALE': matrix[e[1]] = [Q(e[2]) * x for x in matrix[e[1]]]\n+ else:\n+ need(e[0] == 'ADD', 'Boundary scalar opcode')\n+ matrix[e[1]] = [x + Q(e[3]) * y for x, y in zip(matrix[e[1]], matrix[e[2]])]\n+ need(matrix == [[Q(x) for x in row] for row in word['boundaries'][side]], 'Exact scalar boundary program')\n+ rows = [[{zero: Q(x)} if Q(x) else {} for x in row] for row in word['boundaries']['right']]\n+ for e in word['physical_events']:\n+ if e[0] in ('LOCAL', 'QUERY_SHEAR'):\n+ _, stage, pair, back = e\n+ x, y = 2 * pair, 2 * pair + 1\n+ if back: x, y = y, x\n+ term = (1 if back else -1,) + (0,) * 33\n+ for dst, src in zip(rows[y], shifted(rows[x], term)):\n+ plus(dst, src, Q(-1 if back else 1))\n+ if e[0] == 'LOCAL':\n+ term = (0,) + tuple(int(s == stage) for s in range(33))\n+ for r in (x, y): rows[r] = shifted(rows[r], term)\n+ elif e[0] == 'IDLE':\n+ term = (0,) + tuple(int(s in e[2]) for s in range(33))\n+ for r in (2 * e[1], 2 * e[1] + 1): rows[r] = shifted(rows[r], term)\n+ elif e[0] == 'ADD':\n+ for dst, src in zip(rows[e[1]], rows[e[2]]): plus(dst, src, Q(e[3]))\n+ else:\n+ need(e[0] in ('SWAP', 'SIGNED_SWAP'), 'Controller physical opcode')\n+ rows[e[1]], rows[e[2]] = rows[e[2]], shifted(rows[e[1]], zero, -1 if e[0] == 'SIGNED_SWAP' else 1)\n+ out = [[{} for _ in range(32)] for _ in range(32)]\n+ for i, row in enumerate(word['boundaries']['left']):\n+ for k, q in enumerate(row):\n+ if Q(q):\n+ for j in range(32): plus(out[i][j], rows[k][j], Q(q))\n+ expected = [[{tuple(word['diagonal'][i]): Q(1)} if i == j else {} for j in range(32)] for i in range(32)]\n+ need(out == expected, 'All p16 Laurent coefficients, central signs and boundary factors')\n+ return word\n+\n+\n+def assemble(native, word):\n+ T, P = Counter(), Counter()\n+ orientations = Counter(); thin = 0\n+ for e in word['physical_events']:\n+ if e[0] == 'LOCAL':\n+ direction = 'backward' if e[3] else 'forward'\n+ orientations[direction] += 1\n+ T.update(native[direction]['helpers']); P.update(native[direction]['paid'])\n+ elif e[0] == 'QUERY_SHEAR': thin += 1; P[1] += 112\n+ elif e[0] == 'IDLE': P[8 * len(e[2])] += 224\n+ main = Counter()\n+ for term in word['diagonal']:\n+ need(term[0] in (-1, 1) and all(x in (0, 1) for x in term[1:]), 'Whole Gaussian main target')\n+ main[1 + 8 * sum(term[1:])] += 112\n+ T.update(main)\n+ need(orientations == {'backward': 16, 'forward': 2} and thin == 15, 'Every actual call orientation')\n+ # This second census uses the source invoice and the two local deltas.\n+ check_T = Counter({int(r): n for r, n in word['invoice']['main'].items()})\n+ check_T.update({r: 18 * n for r, n in OLD_HELPERS.items()}); check_T[9] -= 16\n+ check_P = Counter({int(r): n for r, n in word['invoice']['whole_idle'].items()})\n+ check_P.update({r: 18 * n for r, n in OLD_PAID.items()}); check_P[1] += 1680 - 16; check_P[8] -= 16\n+ need(T == check_T and P == check_P, 'Independent full invoice substitution')\n+ need(sum(T.values()) == 10912 and sum(P.values()) == 64372, 'Complete productive and paid counts')\n+ need(sum(r * n for r, n in T.items()) - sum(r * n for r, n in P.items()) == 752, 'Unchanged complete rank surplus')\n+ return T, P\n+\n+\n+def run(native):\n+ word = controller(); T, P = assemble(native, word)\n+ prior = read(ROOT / 'research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json')\n+ need(Q(prior['kappa']) == PREVIOUS and Q(prior['raw_root_interval'][1]) == OLD_ROOT_UPPER, 'Pinned prior conditional bound and raw crossing')\n+ prior_T = Counter({int(r): n for r, n in prior['targets'].items()})\n+ prior_P = Counter({int(r): n for r, n in prior['paid'].items()})\n+ prior_T[9] -= 16; prior_P[1] -= 16; prior_P[8] -= 16\n+ need(T == prior_T and P == prior_P, 'Complete delta from the final PR4610 bill')\n+ E = load('research/higher-moment-strictification/verify.py', 'owned_relation_intervals')\n+ other = load('research/kappa-rebuild/architecture/mixed_target_probe.py', 'owned_relation_second_intervals')\n+ def margin(c):\n+ t, p = E.moment(T, 1 - c), E.moment(P, 1 - c)\n+ return t[0] - p[1], t[1] - p[0]\n+ need(margin(OLD_ROOT_UPPER)[0] > 0, 'Changed invoice beats the prior raw root upper endpoint')\n+ lo, hi, grid = 0, 10**12, 10**14\n+ while hi - lo > 1:\n+ mid = (lo + hi) // 2\n+ if margin(Q(mid, grid))[0] > 0: lo = mid\n+ else: hi = mid\n+ root_low, root_high = Q(lo, grid), Q(hi, grid)\n+ need(margin(root_low)[0] > 0 and margin(root_high)[1] < 0, 'Strict rational root enclosure')\n+ need(PREVIOUS < KAPPA < TESTED < root_low, 'New bound and explicit compiler headroom')\n+ # The complete signed profile decreases on [0, .05], and stays negative\n+ # on [.05, 1]. This proves a fixed-profile ceiling, not a circuit ceiling.\n+ signed = {r: T[r] - P[r] for r in T.keys() | P.keys()}\n+ derivative, upper = None, None\n+ for i in range(16):\n+ l, r = Q(i, 320), Q(i + 1, 320); low = Q(0)\n+ for rank, n in signed.items():\n+ term = E.mul(E.power(rank, 1 - r if n > 0 else 1 - l), E.log_bounds(rank))\n+ low += n * term[0 if n > 0 else 1]\n+ derivative = low if derivative is None else min(derivative, low)\n+ for i in range(128):\n+ l, r = Q(1, 20) + Q(19 * i, 2560), Q(1, 20) + Q(19 * (i + 1), 2560)\n+ value = sum(n * E.power(rank, 1 - l if n > 0 else 1 - r)[1 if n > 0 else 0] for rank, n in signed.items())\n+ upper = value if upper is None else max(upper, value)\n+ need(derivative > 0 and upper < 0, 'Fixed-profile ceiling on all 0 < kappa < 1')\n+ t, u, v, c, b = 1 - TESTED, Q(1, 5), 1024, 20, 21\n+ target, paid = E.moment(T, t), E.moment(P, t)\n+ tl, th = other.moment(T, TESTED); pl, ph = other.moment(P, TESTED)\n+ need(tl > ph and max(tl, target[0]) <= min(th, target[1]) and max(pl, paid[0]) <= min(ph, paid[1]), 'Two exact interval engines agree')\n+ alpha = E.divide(paid, target)\n+ gamma = E.divide(E.moment(P, t + u), E.mul(E.power(c, u), target))\n+ delta = E.divide((Q(sum(T.values()) * b),) * 2, E.mul(E.power(c, TESTED), target))\n+ reserve = Q(1, 10**9); g = d = Q(97, 100)\n+ need(alpha[1] < 1 - reserve and gamma[1] < g and delta[1] < d, 'Original and completion tails charged')\n+ need(g**128 < Q(1, 16) and d**128 < Q(1, 16), 'Two strict tail decay blocks')\n+ normalized = 1 / (1 + v * reserve) + Q(4, 2**32)\n+ need(normalized < 1 and c**64 < b**63, 'Paid completion, splitting and rounding')\n+ theta, power = Q(63, 64), 1000\n+ eta = E.scale(E.power(145, -v * TESTED), t)\n+ need(2 * (20**v)**64 <= (145**v)**63 and eta[0] > theta**power, 'Shifted exits and complement capacity')\n+ need(E.power(145, v * TESTED)[1] < 2**power, 'Compiler initial range')\n+ gap = (TESTED - KAPPA) / 7; need(gap.numerator == 1, 'Finite integer grid')\n+ step = gap.denominator\n+ def wins(j): return (step * j + 1)**power < 2**j\n+ left, right = 1, 2\n+ while not wins(right): left, right = right, 2 * right\n+ while right - left > 1:\n+ mid = (left + right) // 2\n+ if wins(mid): right = mid\n+ else: left = mid\n+ height = step * right\n+ need(height > 8 * v and wins(right) and not wins(right - 1), 'Finite uniform-rank threshold')\n+ local_scalar = max(x['real_scalar_allowance'] for x in native.values())\n+ # The old route allowance is retained. Charge two additional owned field\n+ # lifetimes at two routes each, even though L230 uses an existing slot.\n+ routes = (max(sum(x['paid'].values()) for x in native.values()) + 2 * 408 + 688 + 4) * 1000\n+ need(local_scalar + routes < 10**7, 'All new preparation, COPY, CLEAR and fixed routes fit')\n+ scalar_upper = 18 * 10**7 + 15 * 1792 + 32 * 112 * (len(word['physical_events']) + sum(len(word['boundaries'][k + '_program']) for k in ('left', 'right')))\n+ need(scalar_upper < 10**9, 'Complete raw nonrecursive bound')\n+ bit = read(ROOT / 'research/query-thinned-controllers/RESULT.json')['ordinary_BIT']\n+ atom = Q(bit['atom']); ordinary = (1 - atom) * Q(bit['after_cover']) + atom * Q('.0000384599'); admitted = Q(bit['admitted'])\n+ need(atom == Q('.004') and atom > ordinary > admitted > TESTED and atom < 1 - ordinary, 'Retained stronger BIT admission and stock')\n+ L = load('research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py', 'owned_relation_outer')\n+ params = {'kappa': KAPPA, 'tested_saving': TESTED, 'complex_uniform_saving': KAPPA + 6 * gap,\n+ 'b': KAPPA + 5 * gap, 'a': KAPPA + 4 * gap, 'q': KAPPA + 3 * gap, 'bit_saving': admitted,\n+ 'epsilon': 1 - gap, 'beta': 1 - 3 * gap, 'r0': gap / 10, 'stop': gap, 'layout': gap, 'd': gap}\n+ outer = L.ledger(params); outer['functional_checks']['actual_new_BIT_stock_sublinear'] = params['beta'] * (1 - atom)\n+ need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 4, 'Complete outer predicate inventory')\n+ need(all(x > 0 for key in ('strict_checks', 'functional_checks') for x in outer[key].values()), 'Every outer inequality is strict')\n+ controls = {}\n+ for name, patch in [('old_BIT', {'bit_saving': Q('.0027')}), ('closed_uniform', {'complex_uniform_saving': params['b']}), ('unfunded_endpoint', {'kappa': TESTED}), ('closed_epsilon', {'epsilon': Q(1)})]:\n+ bad = L.ledger(dict(params, **patch)); failed = [k for k, x in bad['strict_checks'].items() if x <= 0]\n+ need(failed, 'Reject outer patch ' + name); controls[name] = failed\n+ bad_native = {d: dict(x) for d, x in native.items()}\n+ bad_native['backward']['helpers'] = OLD_HELPERS\n+ try: assemble(bad_native, word)\n+ except ValueError: controls['unearned_helper_credit'] = 'Rejected by the independent complete census'\n+ else: raise ValueError('Unowned helper credit was accepted')\n+ return encode({'kappa': KAPPA, 'kappa_decimal': '.00302235', 'gain_over_PR4610': KAPPA - PREVIOUS,\n+ 'raw_root_interval': [root_low, root_high], 'raw_headroom': [root_low - KAPPA, root_high - KAPPA],\n+ 'margin_at_previous_kappa': E.display(margin(PREVIOUS)),\n+ 'margin_at_previous_root_upper': E.display(margin(OLD_ROOT_UPPER)),\n+ 'fixed_profile_ceiling': {'decreasing_through': Q(1, 20), 'derivative_upper': E.display((-derivative,) * 2), 'remaining_interval_moment_upper': E.display((upper,) * 2)},\n+ 'targets': T, 'paid': P, 'productive_fields': sum(T.values()), 'paid_calls': sum(P.values()), 'rank_mass_surplus': 752,\n+ 'full_backward': 16, 'full_forward': 2, 'query_shears': 15,\n+ 'strictification': {'tested': TESTED, 'power': v, 'cutoff': c, 'floor': b, 'tail_offset': u, 'reserve': reserve, 'alpha': E.display(alpha), 'gamma': E.display(gamma), 'delta': E.display(delta), 'normalized_paid_upper': normalized},\n+ 'compiler': {'theta': theta, 'logarithm_power': power, 'eta': E.display(eta), 'gap': gap, 'uniform_saving': params['complex_uniform_saving'], 'H': height, 'N': '2^' + str(height), 'integer_test_exponent': right, 'word_materialized': False},\n+ 'nonrecursive': {'local_scalar': local_scalar, 'local_routes': routes, 'raw_scalar_upper': scalar_upper, 'raw_budget': 10**9, 'additional_private_slots': 1, 'owned_slots_backward': 3},\n+ 'ordinary_BIT': bit, 'outer': outer, 'negative_controls': controls})\n@@ -0,0 +1,64 @@\n+#!/usr/bin/env python3\n+\"\"\"Replay the one-relation native word and its complete conditional kappa.\n+\n+Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0.\n+Read README.md for the source credit and inherited proof obligations.\n+\"\"\"\n+from hashlib import sha256\n+import argparse\n+import gzip\n+import json\n+from pathlib import Path\n+import sys\n+sys.dont_write_bytecode = True\n+import native as N\n+import price\n+\n+\n+def run():\n+ N.authenticate()\n+ source = N.read(N.ROOT / N.SOURCE)\n+ candidate = N.construct(source)\n+ c = candidate['canonical']\n+ before, after = {}, {}\n+ for direction in ('forward', 'backward'):\n+ back = direction == 'backward'\n+ before[direction] = N.replay(c, source['programs'][direction], back, False)\n+ after[direction] = N.replay(c, candidate['programs'][direction], back, back)\n+ N.need(before[direction]['paid'] == N.OLD_PAID and before[direction]['helpers'] == N.OLD_HELPERS, 'Pinned source census')\n+ N.need(after[direction]['paid'] == candidate['paid_profiles'][direction], 'Emitted direction-specific paid profile')\n+ helpers = dict(N.OLD_HELPERS)\n+ if back: helpers[9] -= 1\n+ N.need(after[direction]['paid'] == (N.NEW_PAID if back else N.OLD_PAID) and after[direction]['helpers'] == helpers, 'Actual complete changed native census')\n+ identities = N.independent_source_identities(source)\n+ phase = N.phase_inheritance(source, candidate)\n+ controls = N.controls(c, candidate)\n+ arithmetic = price.run(after)\n+ data = (json.dumps(candidate, sort_keys=True, separators=(',', ':')) + '\\n').encode()\n+ result = N.encode({'status': 'PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION',\n+ 'source_payload_sha256': N.PAYLOAD, 'word_payload_sha256': sha256(data).hexdigest(),\n+ 'source_native': before, 'candidate_native': after, 'independent_source_identities': identities,\n+ 'phase_inheritance': phase, 'native_negative_controls': controls, 'arithmetic': arithmetic,\n+ 'scope': 'Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.'})\n+ return data, result\n+\n+\n+def main():\n+ ap = argparse.ArgumentParser(description=__doc__)\n+ ap.add_argument('--write', action='store_true', help='Write only this package word and result after all checks pass.')\n+ ap.add_argument('--out', type=Path, help='Write a replay result to a separate path.')\n+ args = ap.parse_args()\n+ data, result = run()\n+ if args.write:\n+ (N.HERE / 'WORD.json.gz').write_bytes(gzip.compress(data, mtime=0))\n+ (N.HERE / 'RESULT.json').write_text(json.dumps(result, indent=2, sort_keys=True) + '\\n', encoding='utf-8')\n+ else:\n+ N.need(gzip.decompress((N.HERE / 'WORD.json.gz').read_bytes()) == data, 'Exact literal published word')\n+ N.need(N.read(N.HERE / 'RESULT.json') == result, 'Exact published replay result')\n+ if args.out:\n+ args.out.write_text(json.dumps(result, indent=2, sort_keys=True) + '\\n', encoding='utf-8')\n+ print(json.dumps({'status': result['status'], **{k: result['arithmetic'][k] for k in ('kappa', 'gain_over_PR4610', 'raw_root_interval', 'paid_calls', 'productive_fields')}}, sort_keys=True))\n+\n+\n+if __name__ == '__main__':\n+ main()", + "comments": null, + "display_url": "https://github.com/CrocSwap/integer-mult-bounds/pull/5377", + "display_title": "Conditional κ = 0.00302235 (+5.742e-7 over #4610): one owned helper relation" + }, + "isError": false +} diff --git a/research/owned-relation-independent-validation/evidence/physical/CONNECTOR-PINS.json b/research/owned-relation-independent-validation/evidence/physical/CONNECTOR-PINS.json new file mode 100644 index 0000000000..28c84c15fa --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/physical/CONNECTOR-PINS.json @@ -0,0 +1,99 @@ +[ + { + "path": "research/kappa-owned-relation-20261023/native.py", + "local": "pinned/native.py", + "git_blob": "b8249ed7ba981a798ba282a6aeabd81a600bda36", + "ref": "c448d13c71908647f968b06cddb795ce7d288139", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/native.py" + }, + { + "path": "research/kappa-owned-relation-20261023/verify.py", + "local": "pinned/verify.py", + "git_blob": "b19f7d0ca4a6e61a0a75595bbc413f9341e84717", + "ref": "c448d13c71908647f968b06cddb795ce7d288139", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/verify.py" + }, + { + "path": "research/kappa-owned-relation-20261023/price.py", + "local": "pinned/price.py", + "git_blob": "6077adf74c1a154e5f790411f774a52745eb5281", + "ref": "c448d13c71908647f968b06cddb795ce7d288139", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/price.py" + }, + { + "path": "research/kappa-owned-relation-20261023/SOURCES.json", + "local": "pinned/SOURCES.json", + "git_blob": "9854abbb4f66f20aad8ab5016ede8319cd47519c", + "ref": "c448d13c71908647f968b06cddb795ce7d288139", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/SOURCES.json" + }, + { + "path": "research/kappa-owned-relation-20261023/RESULT.json", + "local": "pinned/RESULT.json", + "git_blob": "27b4e5470812c2b9feaa54fbfe867b3fb68def68", + "ref": "c448d13c71908647f968b06cddb795ce7d288139", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/RESULT.json" + }, + { + "path": "research/kappa-owned-relation-20261023/README.md", + "local": "pinned/README.md", + "git_blob": "777f4e1d5114e35ba6de2a8e818b790b16aca655", + "ref": "c448d13c71908647f968b06cddb795ce7d288139", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/README.md" + }, + { + "path": "research/joint-helper-lattice/CONTROLLER.json", + "local": "pinned/controller-CONTROLLER.json", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json" + }, + { + "path": "research/joint-helper-lattice/README.md", + "local": "pinned/controller-README.md", + "git_blob": "8c9bd69cd445bd05f18ffcf86d6feb556d634b14", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/README.md" + }, + { + "path": "research/joint-helper-lattice/PROOF.md", + "local": "pinned/controller-PROOF.md", + "git_blob": "e41106031da41fade7a7419c17a32c1bd9aa103b", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/PROOF.md" + }, + { + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "local": "pinned/verify_buffers.py", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py" + }, + { + "path": "research/free-word-tensor-lift-audit/PROOF.md", + "local": "pinned/PROOF.md", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md" + }, + { + "path": "research/final4610-independent-admission/SPECIALIZATION.md", + "local": "pinned/source4610-SPECIALIZATION.md", + "git_blob": "7ee84b30892f7354e1c36611f1a5e9b082dc6147", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/final4610-independent-admission/SPECIALIZATION.md" + }, + { + "path": "certificates/selected-result.json", + "local": "pinned/selected-current.json", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json" + }, + { + "path": "research/kappa-owned-relation-20261023/WORD.json.gz", + "local": "pinned/WORD.json.gz", + "git_blob": "5e79bd826c6ca1e782766ea0ae28a61d136303d1", + "ref": "c448d13c71908647f968b06cddb795ce7d288139" + } +] diff --git a/research/owned-relation-independent-validation/evidence/physical/PHYSICAL-REVIEW.md b/research/owned-relation-independent-validation/evidence/physical/PHYSICAL-REVIEW.md new file mode 100644 index 0000000000..8c0d8f0965 --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/physical/PHYSICAL-REVIEW.md @@ -0,0 +1,106 @@ +# PR5377: independent bounded physical/operator/ownership review + +**Decision: the changed local physical witness passes this bounded review.** No counterexample or new physical primitive is needed for the two replacements. The saving genuinely changes the independent helper contract: one rank-nine output is surrendered per backward call. This is a local conditional proof and independent finite check; it does not independently admit the complete claimed kappa or rerun the source phase/physical foundations. + +Reviewed PR: . The read-only GitHub connector authenticated head `c448d13c71908647f968b06cddb795ce7d288139`, with current base `1ec1119972c9aefe42525172d07b332fcff81cb4`. The sole upstream monitor separately confirmed that head unchanged. The current selected record is still final PR4610, kappa `.0030217758`, independently admitted through PR5241, with the same five PR4470 framework assumptions. This review changes no selected record and publishes nothing. + +The author is Ali Romman, with substantial OpenAI Codex assistance. Cao Yifan supplied the final PR4610 native word; Cinna Davis supplied the p16 controller and helper lineage. The predecessor native, physical, compiler and free-word credit is retained. This independent check was also prepared with OpenAI Codex assistance. + +## Exact inputs and reproducibility + +`VERIFIED-PINS.json` records 16 consumed artifacts with source commits, Git blobs, SHA256 and local file names. Every fetched text file was checked to have the connector-reported Git blob after local materialization. The two source gzip files were copied read-only from the parallel final4610 review snapshot, then checked against both Git blobs and SHA256 in PR5377's connector-authenticated SOURCES.json. + +Principal pins: + +| Object | Git blob | +|---|---| +| PR5377 literal WORD.json.gz | `5e79bd826c6ca1e782766ea0ae28a61d136303d1` | +| PR5377 native.py | `b8249ed7ba981a798ba282a6aeabd81a600bda36` | +| PR5377 README.md proof | `777f4e1d5114e35ba6de2a8e818b790b16aca655` | +| PR5377 SOURCES.json | `9854abbb4f66f20aad8ab5016ede8319cd47519c` | +| Final PR4610 ACTUAL-WORD.json.gz | `46d929df83817b85a5387bcdb9745e0627d6366e` | +| Final PR4610 PHASE-VALIDATION.json.gz | `ac77b78547d6dbf2e6bd102e1047c5b16c1bca88` | +| Literal p16 CONTROLLER.json | `49a2f0675819f9deeea27ed77be2c2b6ff2e87e5` | +| Controller PROOF.md | `e41106031da41fade7a7419c17a32c1bd9aa103b` | +| Accepted source SPECIALIZATION.md | `7ee84b30892f7354e1c36611f1a5e9b082dc6147` | + +The source decompressed payload is `cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`; the candidate gzip SHA256 is `8d913767ad773839995e54e4d80aeff692a86687d0f78153311c8ad62b7ba1bc`. The source phase receipt explicitly binds that source payload. No physical recipe is inferred from a matching rank alone. + +Run from the project workspace: + +```sh +python3 -B outputs/owned-relation-5377-physical-review-20261024/independent_physical_check.py +``` + +The check completed in 3.581 seconds with `PASS_BOUNDED_INDEPENDENT_PHYSICAL_DELTA`. It imports no submitted or predecessor evaluator. `independent-result.json` is the actual output. There was no solver, emitter, Lean build, source phase lowering, full compiler run or full-history preflight in this task. The separate registered cold-run and cost reviewers own those validation decisions. + +## What changes, and why the copies are physical + +Use the backward source word and its exact inherited orientation convention. All event indices in the next paragraph refer to the zero-based original source, before new events are inserted. All five helpers in + +`Delta = h230 - h324 + h326 + h328 - h333` + +start in frame 0 (dimension zero) and finish in frame 1 (dimension nine). The candidate clears L230 and forms `h230=h324-h326-h328+h333` by four same-frame ADDs. The retained four inputs remain unrestricted. L230 has ceased to be an independent productive input and is explicitly private. + +An independent reverse functional propagation through the source word gives, over the exact rational free group algebra, + +* `C0 at event 11332 - L92 just after event 11205 = Delta/4`; +* `L92 at event 15584 = -Delta/4`. + +The saved L92 row has 61 terms before subtraction. Reverse propagation appends native symbols on the right and cancels only adjacent inverse symbols. This is different from the submitted forward row interpreter; it does not substitute a finite numerical native matrix or assume distinct generators commute. Controls changing the relation sign and snapshot owner fail the equalities. + +The paid event 11205 places L92 in the exact frame 254, whose dimension is eight. Candidate C1 is first cleared in frame 254 and then receives L92 by COPY. It remains untouched until the center replacement. The old center event 11332 is the rank-eight transition from frame 0 to frame 254. Under Delta=0, its old output and the saved C1 have the same logical value **and the same exact oriented frame operator**, so copying C1 into cleared C0 reproduces the old physical output, including scalar coefficient one and the inherited absolute gauge. Equality of dimensions alone would not suffice; equality of the actual frame label is checked. + +The later rank-one event 15584 changes L92 from frame 254 to frame 1. Its full logical row is zero under the prepared relation. Every linear frame operator maps zero to zero, so physical identity has the required output. `zero_retag` is bookkeeping for this state-specific identity; it is not an uncharged transform of a general nonzero field. The candidate's shifted index for this marker is 15593. Subsequent operations use frame 1 as required by the source itinerary. + +The literal-word comparison proves that these are the only event changes: initial relation preparation, the C1 snapshot, center replacement, zero identity and final L230 clear. All retained events remain in source order. Every canonical frame, native map, main chart, and signed native occurrence is unchanged; the forward program is byte-equivalent as a parsed literal event list. Therefore no new Gaussian phase circuit or new native map needs to be invented for this delta. + +## Arbitrary inputs, raw orientations and returned storage + +A separate exact forward propagation checks source and candidate words in **both orientations**, including every initial independent column, all scalar gauges, nested paid transitions, paid ranks, final gauges and owned returns. + +| Word/orientation | Independent retained fields | Arbitrary owned entry fields | Result | +|---|---:|---:|---| +| Source forward | 632 | 1 | Main forward shear, all helpers retained, owned C0 zero | +| Source backward | 632 | 1 | Main backward shear, all helpers retained, owned C0 zero | +| Candidate forward | 632 | 1 | Identical forward contract | +| Candidate backward | 631 | 3 | 224 main plus 407 helpers retained; C0, C1 and L230 zero | + +For each retained main/helper output, the complete logical row is exactly its required identity/shear row. No output contains an owned entry column. In the backward direction the main shear is `(x,y)->(x-y,y)`; forward is `(x,y)->(x,y+x)`. The helpers have their same complete physical source residuals because both their logical endpoint identity and ordered entrance/exit frame bases are unchanged. + +The inverse-transpose/raw-dual convention is inherited from the actual source oriented operators. The free symbols for the backward word denote those full operators, not a guessed normalized Gaussian transpose. Treating them as separate abstract generators is legitimate because the identities hold for every invertible substitution. The exact source absolute phases are reused; this task did not independently lower them. The current PR4610 admission includes the full actual phase-bearing classes, beyond the author's original changed-pair phase receipt. Candidate retained recipes are a subset of that same source catalogue. + +The candidate backward supplier is not required to retain all forward helpers or be the inverse transpose of the entire forward input/output map on 632 independent productive fields: it explicitly has a smaller independent helper contract. What the controller needs is the same main oriented interface and the listed independent helper residuals. Both are established. Importing an obstruction that assumes all 408 original helpers remain productive would not address this changed contract. + +C0 and C1 are owned, so the old C0 value can be erased at replacement and the copied C1 value erased afterward. C1's arbitrary entry value is cleared before first read. L230's arbitrary entry value is cleared before preparing the relation, and its dependent output is cleared at return. No retained input is erased. Borrowed temporary fields are not reclassified silently; the one reclassification is the explicitly surrendered L230 job. + +## Actual 18-call incidence and unique productive owners + +The literal controller has forward LOCAL stages 0 and 32, backward LOCAL stages `1,3,...,31`, and 15 QUERY_SHEAR events. The improvement therefore applies 16 times, not 18. The controller proof section 4 explicitly assigns a fresh disjoint helper bank to every full call. These 18 banks are separate from the main banks and query scratch. + +Label a helper by `(LOCAL stage, helper role)`. Remove exactly `(stage,230)` for the 16 backward stages. The other 407 helper roles at each such stage remain distinct arbitrary inputs and outputs. Both forward banks retain all 408 helpers, including L230. Consequently there are + +`16*407 + 2*408 = 7,328` + +independent helper outputs, plus the unchanged `32*112 = 3,584` controller main fields: **10,912 independent productive fields, each once**. The new C1, C0, private L230 and query scratch receive no productive credit. The scalar controller and diagonal main outputs are inherited because every LOCAL main interface is unchanged. + +The exact local paid profiles independently counted from candidate events are: + +* forward: `{1:2201,2:412,3:510,4:127,5:40,8:8}`; +* backward: `{1:2200,2:412,3:510,4:127,5:40,8:7}`. + +The local target difference is minus one rank-nine helper only in backward calls. Thus the full delta is minus 16 paid rank-one jobs, minus 16 paid rank-eight jobs and minus 16 rank-nine productive targets. The total rank mass balance is unchanged because `1+8=9`; the concave moment gain is positive as stated in the author proof. The separate cost review checks the complete bill and kappa transfer. + +## Finite cost, tensor lift and inherited contracts + +The new scalar operations use the source alphabet: four ADDs with coefficients +/-1, owned COPY/CLEAR and physical identity on zero. Under the source scalar macro formula the added work is 46 real scalar operations: 32 for the four ADDs and 14 for seven COPY/CLEAR operations. There is one extra raw private slot C1; L230 reuses an existing physical slot but no longer earns helper credit. The author's route allowance additionally charges four route groups for the two new owned lifetimes. These are finite paid scalar/storage/route changes, not free initialization of a productive input. + +The source specialization explicitly permits owned COPY/CLEAR, distinct suspended center banks, and newly counted finite template constants. In recursive substitution each suspended occurrence must retain its own relevant owned bank until return; sequential raw-call reuse is not permission to alias simultaneous suspended occurrences. The candidate can use this same allocation rule with C1 and private L230 included in the owned count. No different ownership theorem is required. + +For every positive tensor width, evaluate the formal free generators at their source tensor lifts while retaining scalar coefficients outside the substitution. The source identities and Delta=0 then hold on every vector, including correlated/nonseparable inputs. The relation is a linear combination of whole fields, not a tensor power of a sum. Same-frame COPY and identity on zero commute with this substitution. This proves the algebraic lift of the local replacements; it does not provide a physical runtime theorem from finite tests. + +For physical costs, precision and tape storage, the source's domain and finite-template prescriptions must remain intact. The raw source `10^9` allowance is not the expanded compiler's storage or error constant. Expanded W,P,O,R,G,N must describe the changed construction, including extra suspended owned banks; then the source fixed-template formulas apply before multiplication input size grows. Formal prefix L1 bounds are useful checks, not a substitute for that source precision contract. Approximate intermediate zero values are handled by the error bound for the actual changed program, rather than by assuming numerical error disappears at `zero_retag`. + +The five inherited selected assumptions remain: native all-column/phase/whole-job realization; permitted owned allocation/erasure; chronological product/completion/splitting and mixed-target uniform compiler closure; fixed-tape movement and precision/storage; analytic decomposition, prime avoidance and exact recovery. This review establishes the candidate-specific local operator/ownership implication within that grammar. It does not discharge those generic foundations, audit the full numerical compiler/outer predicates, or supply independent human/formal-kernel acceptance. + +**Recommended disposition for this review slice:** positive scoped physical-delta evidence. Combine it with the separate exact complete-cost/compiler review and registered cold validation before any broader admission decision. The changed word has a valid source-bound local mechanism; no need to repeat the older full-helper or two-H1 cross-register searches to decide this proposal. diff --git a/research/owned-relation-independent-validation/evidence/physical/VERIFIED-PINS.json b/research/owned-relation-independent-validation/evidence/physical/VERIFIED-PINS.json new file mode 100644 index 0000000000..af8d7ff840 --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/physical/VERIFIED-PINS.json @@ -0,0 +1,177 @@ +[ + { + "path": "research/kappa-owned-relation-20261023/native.py", + "local": "pinned/native.py", + "git_blob": "b8249ed7ba981a798ba282a6aeabd81a600bda36", + "ref": "c448d13c71908647f968b06cddb795ce7d288139", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/native.py", + "sha256": "85d994fc5661bfa53c4b42f79955ff74ffe70072163cb02fa76cd79efbcc0c97", + "bytes": 14132, + "verified_blob": "b8249ed7ba981a798ba282a6aeabd81a600bda36", + "exact": true + }, + { + "path": "research/kappa-owned-relation-20261023/verify.py", + "local": "pinned/verify.py", + "git_blob": "b19f7d0ca4a6e61a0a75595bbc413f9341e84717", + "ref": "c448d13c71908647f968b06cddb795ce7d288139", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/verify.py", + "sha256": "c4d4fe9b74db1d47fbbfc0c602315d8256a15f0ad0e50b9fcfe2249bf65916f1", + "bytes": 3443, + "verified_blob": "b19f7d0ca4a6e61a0a75595bbc413f9341e84717", + "exact": true + }, + { + "path": "research/kappa-owned-relation-20261023/price.py", + "local": "pinned/price.py", + "git_blob": "6077adf74c1a154e5f790411f774a52745eb5281", + "ref": "c448d13c71908647f968b06cddb795ce7d288139", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/price.py", + "sha256": "e228a48de6138257da7520bb57567a275c402289c90fe7e94f0ef2ad6371f836", + "bytes": 13084, + "verified_blob": "6077adf74c1a154e5f790411f774a52745eb5281", + "exact": true + }, + { + "path": "research/kappa-owned-relation-20261023/SOURCES.json", + "local": "pinned/SOURCES.json", + "git_blob": "9854abbb4f66f20aad8ab5016ede8319cd47519c", + "ref": "c448d13c71908647f968b06cddb795ce7d288139", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/SOURCES.json", + "sha256": "eca6dd5ac3028a72e016e0c8a265be702dd6c4daf481bc009524577ff5e7c831", + "bytes": 3665, + "verified_blob": "9854abbb4f66f20aad8ab5016ede8319cd47519c", + "exact": true + }, + { + "path": "research/kappa-owned-relation-20261023/RESULT.json", + "local": "pinned/RESULT.json", + "git_blob": "27b4e5470812c2b9feaa54fbfe867b3fb68def68", + "ref": "c448d13c71908647f968b06cddb795ce7d288139", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/RESULT.json", + "sha256": "1937b2e1fb4bec0fa1b0d2428a52734c554152538ac8930605bd46704f1c7320", + "bytes": 12680, + "verified_blob": "27b4e5470812c2b9feaa54fbfe867b3fb68def68", + "exact": true + }, + { + "path": "research/kappa-owned-relation-20261023/README.md", + "local": "pinned/README.md", + "git_blob": "777f4e1d5114e35ba6de2a8e818b790b16aca655", + "ref": "c448d13c71908647f968b06cddb795ce7d288139", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/README.md", + "sha256": "eb853337dfaf306808d77538e448a78f16021a2e73295078b4b2f4ff6ea835c4", + "bytes": 14031, + "verified_blob": "777f4e1d5114e35ba6de2a8e818b790b16aca655", + "exact": true + }, + { + "path": "research/joint-helper-lattice/CONTROLLER.json", + "local": "pinned/controller-CONTROLLER.json", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/CONTROLLER.json", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f", + "bytes": 57924, + "verified_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "exact": true + }, + { + "path": "research/joint-helper-lattice/README.md", + "local": "pinned/controller-README.md", + "git_blob": "8c9bd69cd445bd05f18ffcf86d6feb556d634b14", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/README.md", + "sha256": "e5e1a3a11d97fa771e0ec3a4e3e596714f7f3c036fed8c97f395f4c6637317cb", + "bytes": 5433, + "verified_blob": "8c9bd69cd445bd05f18ffcf86d6feb556d634b14", + "exact": true + }, + { + "path": "research/joint-helper-lattice/PROOF.md", + "local": "pinned/controller-PROOF.md", + "git_blob": "e41106031da41fade7a7419c17a32c1bd9aa103b", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/joint-helper-lattice/PROOF.md", + "sha256": "43ef4251cc300f1b18cbe8cdb060f96f95748e6797d2478b4c04b79a8373ef91", + "bytes": 11063, + "verified_blob": "e41106031da41fade7a7419c17a32c1bd9aa103b", + "exact": true + }, + { + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "local": "pinned/verify_buffers.py", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "bytes": 17028, + "verified_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "exact": true + }, + { + "path": "research/free-word-tensor-lift-audit/PROOF.md", + "local": "pinned/PROOF.md", + "git_blob": "69c337a7704ce589798269ab4b8606189c070c4e", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/free-word-tensor-lift-audit/PROOF.md", + "sha256": "cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459", + "bytes": 9907, + "verified_blob": "69c337a7704ce589798269ab4b8606189c070c4e", + "exact": true + }, + { + "path": "research/final4610-independent-admission/SPECIALIZATION.md", + "local": "pinned/source4610-SPECIALIZATION.md", + "git_blob": "7ee84b30892f7354e1c36611f1a5e9b082dc6147", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/final4610-independent-admission/SPECIALIZATION.md", + "sha256": "70430114f744108223bc1d44b98bc25b696c4b408b7b044c2a8bbdfdb434ac5c", + "bytes": 19802, + "verified_blob": "7ee84b30892f7354e1c36611f1a5e9b082dc6147", + "exact": true + }, + { + "path": "certificates/selected-result.json", + "local": "pinned/selected-current.json", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/certificates/selected-result.json", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038", + "bytes": 5495, + "verified_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "exact": true + }, + { + "path": "research/kappa-owned-relation-20261023/WORD.json.gz", + "local": "pinned/WORD.json.gz", + "git_blob": "5e79bd826c6ca1e782766ea0ae28a61d136303d1", + "ref": "c448d13c71908647f968b06cddb795ce7d288139", + "sha256": "8d913767ad773839995e54e4d80aeff692a86687d0f78153311c8ad62b7ba1bc", + "bytes": 206987, + "verified_blob": "5e79bd826c6ca1e782766ea0ae28a61d136303d1", + "exact": true + }, + { + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "local": "pinned/ACTUAL-WORD.json.gz", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05", + "bytes": 207673, + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "source_head": "20bb93cd990d2ff683e4d0fc56b87a42cd5d3296", + "acquisition": "Copied read-only from the final4610 reviewer snapshot; exact Git blob and SHA256 matched PR5377 connector-authenticated SOURCES.json.", + "exact": true + }, + { + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "local": "pinned/PHASE-VALIDATION.json.gz", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b", + "bytes": 23356, + "ref": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "source_head": "20bb93cd990d2ff683e4d0fc56b87a42cd5d3296", + "acquisition": "Copied read-only from the final4610 reviewer snapshot; exact Git blob and SHA256 matched PR5377 connector-authenticated SOURCES.json.", + "exact": true + } +] diff --git a/research/owned-relation-independent-validation/evidence/physical/independent-result.json b/research/owned-relation-independent-validation/evidence/physical/independent-result.json new file mode 100644 index 0000000000..10594c5d2f --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/physical/independent-result.json @@ -0,0 +1,192 @@ +{ + "status": "PASS_BOUNDED_INDEPENDENT_PHYSICAL_DELTA", + "head": "c448d13c71908647f968b06cddb795ce7d288139", + "source_row_pullbacks": { + "snapshot_terms": 61, + "center_minus_snapshot": "Delta/4", + "zero_site": "-Delta/4" + }, + "all_columns": { + "source_forward": { + "persistent_inputs": 632, + "owned_arbitrary_inputs": 1, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "checked_zero_event_indices": [], + "endpoint_pass": true, + "frame_pass": true + }, + "source_backward": { + "persistent_inputs": 632, + "owned_arbitrary_inputs": 1, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "checked_zero_event_indices": [], + "endpoint_pass": true, + "frame_pass": true + }, + "candidate_forward": { + "persistent_inputs": 632, + "owned_arbitrary_inputs": 1, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "checked_zero_event_indices": [], + "endpoint_pass": true, + "frame_pass": true + }, + "candidate_backward": { + "persistent_inputs": 631, + "owned_arbitrary_inputs": 3, + "paid": { + "1": 2200, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 7 + }, + "checked_zero_event_indices": [ + 15593 + ], + "endpoint_pass": true, + "frame_pass": true + } + }, + "full_local_calls": [ + [ + "LOCAL", + 0, + 0, + false + ], + [ + "LOCAL", + 1, + 0, + true + ], + [ + "LOCAL", + 3, + 1, + true + ], + [ + "LOCAL", + 5, + 2, + true + ], + [ + "LOCAL", + 7, + 3, + true + ], + [ + "LOCAL", + 9, + 4, + true + ], + [ + "LOCAL", + 11, + 5, + true + ], + [ + "LOCAL", + 13, + 6, + true + ], + [ + "LOCAL", + 15, + 7, + true + ], + [ + "LOCAL", + 17, + 8, + true + ], + [ + "LOCAL", + 19, + 9, + true + ], + [ + "LOCAL", + 21, + 10, + true + ], + [ + "LOCAL", + 23, + 11, + true + ], + [ + "LOCAL", + 25, + 12, + true + ], + [ + "LOCAL", + 27, + 13, + true + ], + [ + "LOCAL", + 29, + 14, + true + ], + [ + "LOCAL", + 31, + 15, + true + ], + [ + "LOCAL", + 32, + 15, + false + ] + ], + "query_shears": 15, + "source_phase_receipt_authenticated": true, + "source_phase_lowering_rerun": false, + "negative_controls": [ + "wrong helper relation", + "wrong snapshot source" + ], + "seconds": 3.581, + "scope": "Exact free-word identities, all-column boundaries, physical gauge compatibility, owned storage and controller orientation incidence. Inherits source physical native recipes, permitted erasure, all-size mixed-target compiler, precision, tape and integer recovery; no full compiler or theorem replay." +} diff --git a/research/owned-relation-independent-validation/evidence/physical/pr-pinned.json b/research/owned-relation-independent-validation/evidence/physical/pr-pinned.json new file mode 100644 index 0000000000..17bf5dc372 --- /dev/null +++ b/research/owned-relation-independent-validation/evidence/physical/pr-pinned.json @@ -0,0 +1,55 @@ +{ + "content": [ + { + "type": "text", + "text": "Action completed." + } + ], + "structuredContent": { + "pull_request": { + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/5377", + "number": 5377, + "state": "open", + "merged": false, + "mergeable": true, + "draft": false, + "body": "This construction gives **conditional κ = 60447/20000000 = 0.00302235**, a gain of **0.0000005742** over Cao Yifan's final [PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610) value, 0.0030217758. It changes the complete paid profile and moves its raw crossing. The selected frontier is unchanged.\n\nThe [proof and complete bill](https://github.com/aliromman/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/README.md), [exact result](https://github.com/aliromman/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/RESULT.json), [literal word](https://github.com/aliromman/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/WORD.json.gz) and [source pins](https://github.com/aliromman/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/SOURCES.json) define the review scope.\n\nIn each backward call, make L230 private and prepare `h230 = h324 - h326 - h328 + h333` from four arbitrary cold helpers. Debit its rank-nine productive output. Let `Delta = h230 - h324 + h326 + h328 - h333`. Exact replay of the unrestricted source gives `C0 - saved_L92 = Delta/4` at center event 11332, and `L92 = -Delta/4` at climb event 15584. The saved value is taken just after event 11205 in the same frame as the center output. Under the prepared relation, one owned copy replaces the rank-eight job, and physical identity on a proved zero row replaces the rank-one job. All event indices are zero-based.\n\nAll 224 main inputs and the other 407 backward helper inputs remain arbitrary and independent. Every retained output keeps its complete source operator. Forward calls keep all 408 helpers. Explicit clears remove arbitrary owned entry values and erase every private output. One new private slot and 46 additional scalar operations per backward call are charged. Every retained Gaussian operator, native map, frame gauge and main adapter is unchanged.\n\nThe p16/a7 controller has 16 backward calls, two forward calls and 15 query shears. Its complete difference is **−16 H1 −16 H8 paid jobs and −16 H9 targets**. For every `00`. The new bill has **64,372 paid jobs, 10,912 productive fields and rank surplus 752**, with every main, idle, query and completion term included.\n\nTwo rational interval engines check the complete bill. The fixed-profile crossing lies in **(0.00302238736347, 0.00302238736348)**. The claimed κ leaves more than **0.00000003736347** raw headroom. The separately tested saving is 0.00302236. Both completion tails, the finite compiler at `N=2^31385200000000`, and all **54 strict plus four functional outer predicates** pass. The complete raw nonrecursive bound remains **181,098,496 < 10^9**.\n\nBase: canonical main [7c472563474e60185e6ca101a17622133d047e56](https://github.com/CrocSwap/integer-mult-bounds/commit/7c472563474e60185e6ca101a17622133d047e56), priority revision 7. The source is the final [PR #4610 word](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz) at `20bb93cd990d2ff683e4d0fc56b87a42cd5d3296`; all consumed bytes are in the recorded main base. The [scoped Discussion claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737) distinguishes this changed inventory from the original-input cache and all-helper-return investigations. Live PRs and Discussions were checked again before publication.\n\nUse standard-library Python 3.12 from the repository root:\n\n```sh\npython3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023\n```\n\nBoth registered normal and optimized replays pass:\n\n```text\nPASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION\n```\n\nVerification covers exact free-word rows in both source and candidate orientations, all independent and owned entry columns, frame/rank checks, two separately computed source identities, the p16 Laurent factorization and scalar boundaries, independent full invoice counts, two rational interval engines, the fixed-profile ceiling, compiler and outer inequalities. Seven native and five cost/outer controls reject wrong relation, ownership, snapshot, gauge, rank, helper credit and compiler assumptions. Metadata, committed-byte checks, official export integrity and Git-free replay also pass. The optional full-history preflight is not claimed in this shallow checkout.\n\nThe [source absolute-phase receipt](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz) is authenticated and reused. New operations are same-frame scalar operations, owned copies/clears and identity on zero; there is no new Gaussian phase recipe. Full source phase lowering, BIT native replay, Lean, Docker, physical tape/precision execution, analytic decomposition and integer recovery were not rerun. The bound retains the source permitted-erasure, whole-job, mixed-target all-size, native, precision, tape, analytic, prime and exact-recovery contracts. It is a conditional construction with exact finite evidence, not an unconditional theorem, practical speedup or independent human acceptance. The compiled word is algorithmically specified and not materialized.\n\nCao Yifan supplied the source construction and prior κ in [PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610). Cinna Davis supplied the p16 controller and helper lineage in [PR #4470](https://github.com/CrocSwap/integer-mult-bounds/pull/4470). The [pricing source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-interface-round2-20261022/price_profile.py) retains zxv's completion/compiler and Jacob Alan Sussman's mixed-target credit; Dugongue's transported frames and the wider native lineage remain credited. zxv's [PR #5283](https://github.com/CrocSwap/integer-mult-bounds/pull/5283) supplied the cache-contract handoff to find actual matching rows and lifetimes; its standalone example is not used here. The new result is this helper relation, its exact native realization and its complete positive bill.\n\nPrepared by Ali Romman with substantial OpenAI Codex assistance. Apache-2.0. Next review task: check the three source rows and COPY/zero argument, then the inherited transfer assumptions. No broader helper-relation search is claimed.\n", + "title": "Conditional κ = 0.00302235 (+5.742e-7 over #4610): one owned helper relation", + "base": "main", + "base_sha": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "head": "codex/kappa-owned-relation-20261023", + "head_sha": "c448d13c71908647f968b06cddb795ce7d288139", + "head_repo_id": 1413892976, + "head_repo_full_name": "aliromman/integer-mult-bounds", + "merge_commit_sha": "08e75e22ae4d39e8e3bcfafab789aa349c0ecfe6", + "user": { + "login": "aliromman", + "name": "aliromman", + "email": null, + "avatar_url": "https://avatars.githubusercontent.com/u/226877337?v=4", + "id": 226877337 + }, + "requested_reviewers": null, + "requested_team_reviewers": null, + "diff": "@@ -0,0 +1,249 @@\n+# Conditional kappa 0.00302235 from one owned helper relation\n+\n+This construction gives **conditional kappa = 60447/20000000 = 0.00302235**.\n+The gain over Cao Yifan's final\n+[PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610)\n+value, 0.0030217758, is **2871/5000000000 = 0.0000005742**.\n+The construction changes the complete paid profile. It does not obtain the\n+gain by taking more digits of the old root.\n+\n+One helper becomes owned storage in each backward call. A prepared relation\n+then makes one paid rank-eight center equal to an earlier saved value. The same\n+relation makes one later rank-one job act on zero. Both jobs can be removed,\n+with the rank-nine helper credit also removed. All other independent outputs\n+and all main interfaces keep their source operators.\n+\n+[WORD.json.gz](WORD.json.gz) is the complete emitted word.\n+[RESULT.json](RESULT.json) records the exact native checks, the two source\n+identities, both full profiles, completion, compiler and outer calculations.\n+[SOURCES.json](SOURCES.json) pins every external input by Git blob and SHA256.\n+The proof below explains why the changed word has the stated contract.\n+\n+## Source and scope\n+\n+The base is canonical main\n+[7c472563474e60185e6ca101a17622133d047e56](https://github.com/CrocSwap/integer-mult-bounds/commit/7c472563474e60185e6ca101a17622133d047e56).\n+The native source is the final PR #4610 word at\n+[20bb93cd990d2ff683e4d0fc56b87a42cd5d3296](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz).\n+Its decompressed SHA256 is\n+`cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`.\n+The comparison value and old crossing come from its\n+[final compiler arithmetic](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json).\n+All consumed bytes are already in the recorded main base.\n+\n+This is one instance of the current `complex-new-helper-inventory` priority.\n+The [scoped claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737)\n+reserves only the relation and two replacements below.\n+[Discussion #5355](https://github.com/CrocSwap/integer-mult-bounds/discussions/5355)\n+retains all 632 independent inputs and all eight centers.\n+[Discussion #4930](https://github.com/CrocSwap/integer-mult-bounds/discussions/4930)\n+retains every original helper endpoint. This construction removes the\n+independent L230 job in backward calls. It does not claim those broader scopes.\n+The selected certificate is unchanged. A fresh check at 20:20 UTC found that\n+Discussion #5355 had released its original-input scope without a saving.\n+Canonical main still had the recorded base commit.\n+\n+## Exact replacement proof\n+\n+All indices below are zero-based indices in the frozen backward program.\n+Let `h_r` be the source logical input of helper `Lr`. The five helpers in\n+\n+```math\n+\\Delta=h_{230}-h_{324}+h_{326}+h_{328}-h_{333}\n+```\n+\n+all start in frame 0 and finish in frame 1, of rank nine. The new backward\n+contract has 224 independent main fields and 407 independent helper fields.\n+L230 is private. Clear it, then use four same-frame ADDs to prepare\n+\n+```math\n+h_{230}=h_{324}-h_{326}-h_{328}+h_{333}.\n+```\n+\n+The other helper inputs remain arbitrary and independent. This preparation\n+sets Delta to zero for every input. It uses no recursive job. It removes one\n+rank-nine productive target; the dependent field receives no output credit.\n+\n+Run the original source program on unrestricted inputs. Let `q` be the\n+logical row of L92 just after event 11205, a paid climb into frame 254.\n+The separate predecessor row engine gives these exact identities:\n+\n+| Source position | Exact logical row |\n+| --- | --- |\n+| C0 at the rank-eight center, event 11332 | `q + Delta/4` |\n+| L92 at the rank-one climb, event 15584 | `-Delta/4` |\n+\n+These identities are over rational coefficients and free native operator\n+words. They hold for every value of every source input and for every invertible\n+interpretation of the native symbols. They do not use numerical samples or an\n+assumed relation between distinct native maps.\n+\n+For every positive tensor width f, substitute each native generator by its\n+source operator tensor power and each inverse by the inverse tensor power.\n+This defines a representation of the free group. Keep the rational scalar\n+coefficients outside the substitution. The two row identities therefore hold\n+at every such width. In particular, Delta/4 remains a scalar linear form; it\n+is not a tensor power of that sum. This uses the termwise argument recorded in\n+the [free-word tensor audit](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/free-word-tensor-lift-audit/PROOF.md),\n+which credits Cinna Davis's proposal and ToikY's scoped audit. Physical frame\n+realization and the complete all-size compiler retain their source contracts.\n+\n+Immediately after event 11205, clear a new private field C1 in frame 254 and\n+COPY L92 into it. C1 is not written until the replacement of event 11332. At\n+that event, clear owned C0, set its frame to 254, COPY C1 into C0, then clear C1.\n+The copy coefficient is exactly one. Under Delta = 0, the copied field is the\n+same physical value as the old center output: the logical rows and the exact\n+frame gauge are equal. The old C0 input can be erased because C0 is owned.\n+This removes one rank-eight recursive job.\n+\n+At event 15584, L92 is exactly zero in every input column. The physical\n+identity therefore has the same result as the old rank-one frame change.\n+`zero_retag` records this fact. It performs no physical write and is accepted\n+only when the full exact row is empty and the current frame is 254. It then\n+records frame 1. This removes one rank-one recursive job. It does not erase a\n+main input or replace a nonzero transform with a free frame change.\n+\n+Every other event stays in source order. Clear private L230 at return. The\n+source clears C0, and the new program has already cleared C1. The original\n+linear endpoint identity, restricted by the prepared relation, gives all 224\n+main outputs and all 407 retained helper outputs. The literal new-word replay\n+checks these outputs separately, with all 631 retained inputs and all three\n+owned entry fields initially arbitrary. It also checks every scalar frame,\n+paid rank, native frame transition and final frame.\n+\n+The 4,429 source frames, 72 native maps, all remaining paid operators, and main\n+adapters are unchanged. The source\n+[absolute-phase certificate](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz)\n+is authenticated and reused. Same-frame COPY and identity on zero introduce no\n+phase recipe. The source's amplitude and Clifford-lowering checks are not\n+rerun by this package. The new free-word identities prove equivalence for the\n+source operators with their full phases, not just their projective classes.\n+\n+## Complete cost and conditional compiler\n+\n+The forward word is unchanged. Each backward call has these counts:\n+\n+```text\n+paid: {1:2200, 2:412, 3:510, 4:127, 5:40, 8:7}\n+helpers: {4:28, 7:7, 8:47, 9:325}\n+```\n+\n+The full p16/a7 controller contains 16 backward calls, two forward calls and\n+15 query shears. Thus the complete difference is **minus 16 H1 and 16 H8 paid\n+jobs, and minus 16 H9 productive targets**. It includes every idle and main\n+target. There are 64,372 paid jobs and 10,912 productive fields. Their rank\n+masses are 238,990 and 239,742; the surplus remains 752.\n+\n+For every real `0 < t < 1`, the complete target-minus-paid moment increases by\n+\n+```math\n+16(1+8^t-9^t)>0.\n+```\n+\n+For a direct proof, both `(1/9)^t > 1/9` and `(8/9)^t > 8/9`; multiply their\n+sum by `9^t`. The improvement is strict throughout the required range.\n+\n+The backward word has 158,214 real scalar operations under the source macro\n+allowance, exactly 46 more than its source. Its maximum formal prefix L1 norm\n+is 169, with maximum denominator 64; both equal the source bounds. The forward\n+bounds remain 457 and 32. One extra physical private slot holds C1. L230 uses\n+an existing slot. The route bound also charges two routes for each of the two\n+new owned lifetimes. The local scalar-plus-route bound stays below 10^7, and\n+the complete raw nonrecursive bound stays **181,098,496 < 10^9**. Preparation,\n+COPY, CLEAR and storage therefore do not introduce an unpaid recursive cost.\n+\n+Two rational interval engines check the complete moment. Its unique crossing\n+in `0 < kappa < 1` lies in\n+**(0.00302238736347, 0.00302238736348)**. The verifier proves the moment decreases\n+on `[0,0.05]` and remains negative on `[0.05,1]`. This is a ceiling for this\n+fixed complete profile, not an optimum over circuits or helper relations.\n+The claimed kappa leaves more than **0.00000003736347** raw headroom.\n+\n+The separately tested saving is 0.00302236. The paid/target ratio is below\n+`0.999999971483293515393313955730`, with reserve `1e-9`. Both charged tails are\n+below `0.97`. The source power 1024, cutoff 20, floor 21, tail offset 1/5,\n+complement factor 63/64 and logarithm power 1000 still pass. The compiler gap\n+is `1/700000000`, with `j=44836`, `H=31385200000000` and `N=2^31385200000000`.\n+The exact integer test `(H+1)^1000 < 2^44836` passes; the preceding grid integer\n+fails. The uniform complex saving is `2115651/700000000`. All 54 strict outer\n+predicates and four functional predicates pass, using the retained ordinary\n+BIT saving 0.0034.\n+\n+## Verification and reproduction\n+\n+Use Python 3.12 or 3.14, with the standard library only. From the repository root:\n+\n+```sh\n+python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023 --check-only\n+python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023\n+```\n+\n+The registered commands run normal and optimized Python. The direct command,\n+also used for a Git-free export, is:\n+\n+```sh\n+python3 -B research/kappa-owned-relation-20261023/verify.py\n+python3 -O -B research/kappa-owned-relation-20261023/verify.py\n+```\n+\n+Each prints status\n+`PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION`.\n+The verifier reconstructs the word and compares its bytes and exact result with\n+the published artifacts. `--write` is a separate authoring command. It changes\n+only this package's word and result after all checks pass.\n+\n+Fresh checks cover both source words, both candidate words, every independent\n+entry column and owned return, the two unrestricted source identities, retained\n+phase bindings, the p16 rational Laurent factorization, both scalar boundary\n+programs, two complete invoice counts, two rational interval engines, the fixed\n+profile ceiling, completion, compiler, BIT conversion and all outer predicates.\n+The emitted word replaces the old single `canonical.local_profile` metadata\n+field with explicit `paid_profiles` for the two directions.\n+\n+Seven native controls reject a wrong relation sign, omitted input clear, wrong\n+snapshot, wrong zero frame, wrong paid rank, wrong copy gauge, and omitted\n+output clear. Five cost/outer controls reject the lost helper's output credit,\n+old BIT stock, closed uniform gap, unfunded endpoint and closed epsilon.\n+\n+Normal and optimized registered replays passed on CPython 3.12.14. The direct\n+author check also passed on CPython 3.14. Source metadata and pins passed.\n+The optional full-history preflight is not claimed in the shallow checkout.\n+The publication handoff records export and committed-byte checks.\n+\n+The full source phase lowering, BIT native replay, Lean, Docker, physical tape\n+execution, numerical precision execution, analytic decomposition and integer\n+recovery are not rerun here. The complete bound retains those predecessor\n+contracts, including permitted owned erasure, whole-job normalizers, mixed\n+productive-target recursion and all-size closure. The expanded compiled word\n+is specified by a finite algorithm, not materialized. This is a conditional\n+construction with exact finite evidence, not an unconditional multiplication\n+theorem, a practical timing result or independent human acceptance.\n+\n+## Credit\n+\n+Prepared by Ali Romman with substantial OpenAI Codex assistance. Apache-2.0.\n+Cao Yifan's [PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610)\n+supplies the exact source word, phase evidence and previous compiler value.\n+Cinna Davis's [PR #4470](https://github.com/CrocSwap/integer-mult-bounds/pull/4470)\n+supplies the p16 controller and helper-interface lineage. The source code keeps\n+credit for Dugongue's transported frames, zxv's native and finite-compiler\n+work, Jacob Alan Sussman's mixed-target recursion and their predecessors.\n+The [pricing source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-interface-round2-20261022/price_profile.py)\n+and [literal native source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-rebuild/complex/native_extensions.py)\n+are pinned as provenance for the adapted checks.\n+\n+zxv's [PR #5283](https://github.com/CrocSwap/integer-mult-bounds/pull/5283)\n+supplies the related cache contract and the explicit handoff to find actual\n+matching rows and their lifetimes. Its standalone cache example is not part of\n+this word. The new contribution is the five-helper relation, its actual cache\n+and zero identities, the full owned-field replacement and the complete positive\n+bill. No priority is claimed for the general cache or paid-history ideas.\n+\n+## Open next questions\n+\n+Independent review should first check the three source rows and the physical\n+COPY/zero argument above, then the retained all-size and phase premises.\n+A later construction could test a different helper relation, but it must claim\n+a disjoint scope and pay every lost target and owned field. This package does\n+not classify such relations. [TASK.json](TASK.json) records the first steps,\n+relevance and blockers for both questions.\n@@ -0,0 +1,373 @@\n+{\n+ \"arithmetic\": {\n+ \"compiler\": {\n+ \"H\": 31385200000000,\n+ \"N\": \"2^31385200000000\",\n+ \"eta\": {\n+ \"lower\": \"0.000000203927056311365991628189\",\n+ \"upper\": \"0.000000203927056311365991628190\"\n+ },\n+ \"gap\": \"1/700000000\",\n+ \"integer_test_exponent\": 44836,\n+ \"logarithm_power\": 1000,\n+ \"theta\": \"63/64\",\n+ \"uniform_saving\": \"2115651/700000000\",\n+ \"word_materialized\": false\n+ },\n+ \"fixed_profile_ceiling\": {\n+ \"decreasing_through\": \"1/20\",\n+ \"derivative_upper\": {\n+ \"lower\": \"-195778.630038840116414999953237565269\",\n+ \"upper\": \"-195778.630038840116414999953237565268\"\n+ },\n+ \"remaining_interval_moment_upper\": {\n+ \"lower\": \"-6836.549542075249598033582799619360\",\n+ \"upper\": \"-6836.549542075249598033582799619359\"\n+ }\n+ },\n+ \"full_backward\": 16,\n+ \"full_forward\": 2,\n+ \"gain_over_PR4610\": \"2871/5000000000\",\n+ \"kappa\": \"60447/20000000\",\n+ \"kappa_decimal\": \".00302235\",\n+ \"margin_at_previous_kappa\": {\n+ \"lower\": \"0.151161494385402651700356241377\",\n+ \"upper\": \"0.151161494385402651700356241378\"\n+ },\n+ \"margin_at_previous_root_upper\": {\n+ \"lower\": \"0.151143999513185007311808491175\",\n+ \"upper\": \"0.151143999513185007311808491176\"\n+ },\n+ \"negative_controls\": {\n+ \"closed_epsilon\": [\n+ \"epsilon_below_one\",\n+ \"global_gamma_power_slack\",\n+ \"actual_logarithmic_gamma_guard\",\n+ \"source_axis_superpolynomial\",\n+ \"gaussian_above_main\",\n+ \"new_semantic_guard_with_C1_one\"\n+ ],\n+ \"closed_uniform\": [\n+ \"new_complex_uniform_saving_above_b\"\n+ ],\n+ \"old_BIT\": [\n+ \"actual_bit_above_effective\"\n+ ],\n+ \"unearned_helper_credit\": \"Rejected by the independent complete census\",\n+ \"unfunded_endpoint\": [\n+ \"main_transform_above_kappa\",\n+ \"global_coordinate_router_above_kappa\",\n+ \"fused_gaussian_above_kappa\",\n+ \"group_bit_router_above_kappa\",\n+ \"boundary_algebraic_matrix_above_kappa\"\n+ ]\n+ },\n+ \"nonrecursive\": {\n+ \"additional_private_slots\": 1,\n+ \"local_routes\": 4806000,\n+ \"local_scalar\": 158214,\n+ \"owned_slots_backward\": 3,\n+ \"raw_budget\": 1000000000,\n+ \"raw_scalar_upper\": 181098496\n+ },\n+ \"ordinary_BIT\": {\n+ \"admitted\": \"17/5000\",\n+ \"after_cover\": \"69/20000\",\n+ \"atom\": \"1/250\",\n+ \"before_cover\": \"3459/1000000\",\n+ \"ordinary_saving\": \"8590884599/2500000000000\",\n+ \"prime_rule\": \"odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses\"\n+ },\n+ \"outer\": {\n+ \"functional_checks\": {\n+ \"actual_new_BIT_stock_sublinear\": \"174299999253/175000000000\",\n+ \"fixed_halo_explicit_metadata_branch\": \"13475000001/175000000\",\n+ \"new_BIT_row_stock_sublinear_in_active_group\": \"697899997009/700000000000\",\n+ \"new_semantic_group_guard\": \"3/700000000\"\n+ },\n+ \"margins\": {\n+ \"boundary_algebraic_matrix\": \"23139910904443/7656250000000000\",\n+ \"fused_gaussian\": \"23139910838329/7656250000000000\",\n+ \"global_coordinate_router\": \"2115649/700000000\",\n+ \"group_bit_router\": \"1480954993653053/490000000000000000\",\n+ \"group_scans\": \"349999999/350000000\",\n+ \"main_transform\": \"23139899966943/7656250000000000\",\n+ \"microbox_face_corrections\": \"13475000001/175000000\",\n+ \"polynomial_products\": \"699999999/700000000\",\n+ \"sparse_union_movement\": \"3133491473404443/7656250000000000\"\n+ },\n+ \"parameters\": {\n+ \"a\": \"2115649/700000000\",\n+ \"b\": \"42313/14000000\",\n+ \"beta\": \"699999997/700000000\",\n+ \"bit_saving\": \"17/5000\",\n+ \"cap_xi\": \"6961616462466943/7656250000000000\",\n+ \"complex_uniform_saving\": \"2115651/700000000\",\n+ \"d\": \"1/700000000\",\n+ \"epsilon\": \"699999999/700000000\",\n+ \"kappa\": \"60447/20000000\",\n+ \"lambda_\": \"199395529/200000000\",\n+ \"lambda_prime\": \"10904443/10937500\",\n+ \"layout\": \"1/700000000\",\n+ \"q\": \"33057/10937500\",\n+ \"r0\": \"1/7000000000\",\n+ \"stop\": \"1/700000000\",\n+ \"tested_saving\": \"75559/25000000\"\n+ },\n+ \"strict_checks\": {\n+ \"actual_bit_above_effective\": \"264351/700000000\",\n+ \"actual_logarithmic_gamma_guard\": \"1/700000000\",\n+ \"actual_logarithmic_group_guard\": \"694633553939307/3828125000000000\",\n+ \"alpha_logarithm_absorption\": \"1/7000000000\",\n+ \"boundary_algebraic_matrix_above_kappa\": \"43716943/7656250000000000\",\n+ \"cap_above_band\": \"3133491462466943/7656250000000000\",\n+ \"cap_below_cell\": \"694633526595557/7656250000000000\",\n+ \"cap_below_phase_cell_power\": \"8350883537533057/7656250000000000\",\n+ \"complex_above_effective\": \"1/700000000\",\n+ \"complex_below_one_over_32\": \"395187/14000000\",\n+ \"complex_endpoint\": \"1/350000000\",\n+ \"epsilon_below_one\": \"1/700000000\",\n+ \"epsilon_positive\": \"699999999/700000000\",\n+ \"fine_prime_halo_umbrella\": \"7/2\",\n+ \"fused_gaussian_above_kappa\": \"43650829/7656250000000000\",\n+ \"gaussian_above_main\": \"5435693/3828125000000000\",\n+ \"global_coordinate_router_above_kappa\": \"1/175000000\",\n+ \"global_gamma_power_slack\": \"9/7000000000\",\n+ \"group_below_dimension\": \"1/350000000\",\n+ \"group_bit_router_above_kappa\": \"3493653053/490000000000000000\",\n+ \"group_gauge_power_slack\": \"43414597087027/239257812500000\",\n+ \"group_key_fits_record\": \"1/350000000\",\n+ \"group_positive\": \"699999997/700000000\",\n+ \"group_scans_above_kappa\": \"697884353/700000000\",\n+ \"halo_covers_generic_inverse_radius\": \"5\",\n+ \"improvement_over_user_baseline\": \"645689790400418148631/500000000000000000000000\",\n+ \"lambda_above_internal\": \"1/1400000000\",\n+ \"lambda_above_sigma\": \"3/1400000000\",\n+ \"lambda_above_tau\": \"1/1400000000\",\n+ \"lambda_prime_above_lambda\": \"1/1400000000\",\n+ \"lambda_prime_above_leaf\": \"27957687/9800000000000000\",\n+ \"leaf_saving_above_effective\": \"13957687/9800000000000000\",\n+ \"main_transform_above_kappa\": \"32779443/7656250000000000\",\n+ \"membership_arithmetic_fits_record\": \"1/700000000\",\n+ \"microbox_face_corrections_above_kappa\": \"53897884359/700000000\",\n+ \"microbox_halo_volume\": \"55300000003/700000000\",\n+ \"new_complex_uniform_saving_above_b\": \"1/700000000\",\n+ \"new_semantic_guard_with_C1_one\": \"1/700000000\",\n+ \"polynomial_products_above_kappa\": \"348942177/350000000\",\n+ \"positive_layout_slack\": \"1/700000000\",\n+ \"q_below_effective\": \"1/700000000\",\n+ \"q_below_internal\": \"1/700000000\",\n+ \"q_below_leaf\": \"27957687/9800000000000000\",\n+ \"q_positive\": \"33057/10937500\",\n+ \"short_record_fallback\": \"13957687/14000000\",\n+ \"source_axis_superpolynomial\": \"1/700000000\",\n+ \"sparse_union_movement_above_kappa\": \"3110351606216943/7656250000000000\",\n+ \"stop_below_one\": \"699999999/700000000\",\n+ \"stop_positive\": \"1/700000000\",\n+ \"strassen_integer_power_gap\": \"1951441519231\",\n+ \"support_router_span\": \"3/700000000\",\n+ \"theta_positive_polynomial_power\": \"2\",\n+ \"union_header_fits_record\": \"3/700000000\",\n+ \"union_tag_work_per_visit_fits_record\": \"3/700000000\"\n+ }\n+ },\n+ \"paid\": {\n+ \"1\": 41282,\n+ \"16\": 448,\n+ \"2\": 7416,\n+ \"24\": 448,\n+ \"3\": 9180,\n+ \"32\": 448,\n+ \"4\": 2286,\n+ \"40\": 448,\n+ \"48\": 448,\n+ \"5\": 720,\n+ \"56\": 448,\n+ \"64\": 448,\n+ \"72\": 224,\n+ \"8\": 128\n+ },\n+ \"paid_calls\": 64372,\n+ \"productive_fields\": 10912,\n+ \"query_shears\": 15,\n+ \"rank_mass_surplus\": 752,\n+ \"raw_headroom\": [\n+ \"3736347/100000000000000\",\n+ \"934087/25000000000000\"\n+ ],\n+ \"raw_root_interval\": [\n+ \"302238736347/100000000000000\",\n+ \"75559684087/25000000000000\"\n+ ],\n+ \"strictification\": {\n+ \"alpha\": {\n+ \"lower\": \"0.999999971483293515393313955729\",\n+ \"upper\": \"0.999999971483293515393313955730\"\n+ },\n+ \"cutoff\": 20,\n+ \"delta\": {\n+ \"lower\": \"0.957459689758527661921334851512\",\n+ \"upper\": \"0.957459689758527661921334851513\"\n+ },\n+ \"floor\": 21,\n+ \"gamma\": {\n+ \"lower\": \"0.956310980726438847618396606911\",\n+ \"upper\": \"0.956310980726438847618396606912\"\n+ },\n+ \"normalized_paid_upper\": \"2097152001953127/2097154147483648\",\n+ \"power\": 1024,\n+ \"reserve\": \"1/1000000000\",\n+ \"tail_offset\": \"1/5\",\n+ \"tested\": \"75559/25000000\"\n+ },\n+ \"targets\": {\n+ \"145\": 224,\n+ \"17\": 448,\n+ \"25\": 448,\n+ \"33\": 448,\n+ \"4\": 504,\n+ \"41\": 448,\n+ \"49\": 448,\n+ \"57\": 448,\n+ \"65\": 448,\n+ \"7\": 126,\n+ \"73\": 224,\n+ \"8\": 846,\n+ \"9\": 5852\n+ }\n+ },\n+ \"candidate_native\": {\n+ \"backward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 325\n+ },\n+ \"independent_owned_entry_columns\": 3,\n+ \"independent_persistent_columns\": 631,\n+ \"max_denominator\": 64,\n+ \"max_formal_prefix_l1\": \"169\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2200,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 7\n+ },\n+ \"real_scalar_allowance\": 158214,\n+ \"zero_identities\": 1\n+ },\n+ \"forward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 326\n+ },\n+ \"independent_owned_entry_columns\": 1,\n+ \"independent_persistent_columns\": 632,\n+ \"max_denominator\": 32,\n+ \"max_formal_prefix_l1\": \"457\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2201,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 8\n+ },\n+ \"real_scalar_allowance\": 158120,\n+ \"zero_identities\": 0\n+ }\n+ },\n+ \"independent_source_identities\": {\n+ \"center_minus_snapshot\": \"Delta/4\",\n+ \"center_replaced\": 11332,\n+ \"copy_coefficient\": \"1\",\n+ \"relation\": {\n+ \"230\": 1,\n+ \"324\": -1,\n+ \"326\": 1,\n+ \"328\": 1,\n+ \"333\": -1\n+ },\n+ \"snapshot_after\": 11205,\n+ \"snapshot_terms_before_substitution\": 61,\n+ \"source_event_indices_are_zero_based\": true,\n+ \"zero_identity_at\": 15584,\n+ \"zero_site_row\": \"-Delta/4\"\n+ },\n+ \"native_negative_controls\": {\n+ \"missing_owned_input_clear\": \"Every independent main/helper endpoint: 0\",\n+ \"uncleared_owned_output\": \"Every owned entry column is erased at return\",\n+ \"under_or_overstated_paid_rank\": \"Exact paid rank and frame\",\n+ \"wrong_copy_gauge\": \"Exact scalar destination frame\",\n+ \"wrong_relation_sign\": \"Every independent main/helper endpoint: 0\",\n+ \"wrong_snapshot_source\": \"Zero identity requires an identically zero full row\",\n+ \"wrong_zero_input_frame\": \"Zero identity requires an identically zero full row\"\n+ },\n+ \"phase_inheritance\": {\n+ \"absolute_phase_receipt_reused\": \"research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz\",\n+ \"all_retained_paid_events_and_warps_from_source\": true,\n+ \"new_gaussian_operators\": 0,\n+ \"new_native_maps\": 0,\n+ \"new_operations\": \"Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.\",\n+ \"source_amplitudes_and_phase_lowering_freshly_replayed\": false\n+ },\n+ \"scope\": \"Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.\",\n+ \"source_native\": {\n+ \"backward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 326\n+ },\n+ \"independent_owned_entry_columns\": 1,\n+ \"independent_persistent_columns\": 632,\n+ \"max_denominator\": 64,\n+ \"max_formal_prefix_l1\": \"169\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2201,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 8\n+ },\n+ \"real_scalar_allowance\": 158168,\n+ \"zero_identities\": 0\n+ },\n+ \"forward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 326\n+ },\n+ \"independent_owned_entry_columns\": 1,\n+ \"independent_persistent_columns\": 632,\n+ \"max_denominator\": 32,\n+ \"max_formal_prefix_l1\": \"457\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2201,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 8\n+ },\n+ \"real_scalar_allowance\": 158120,\n+ \"zero_identities\": 0\n+ }\n+ },\n+ \"source_payload_sha256\": \"cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd\",\n+ \"status\": \"PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION\",\n+ \"word_payload_sha256\": \"645b32ff67dfd49bbe8c2287d21f12a66a775d3c5e187db6f813e17e9f8fae35\"\n+}\n@@ -0,0 +1,90 @@\n+{\n+ \"schema_version\": 1,\n+ \"base_commit\": \"7c472563474e60185e6ca101a17622133d047e56\",\n+ \"files\": [\n+ {\n+ \"path\": \"certificates/selected-result.json\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"c35482cd9035843b15a634cc8276a7e1e40e8395\",\n+ \"sha256\": \"6fe0a099b89aa2aed796a13c3a21dafc63f3388ebf397464e44e0451893b9375\"\n+ },\n+ {\n+ \"path\": \"docs/research/agent-task-catalog.json\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"f126dd2e2dad2b669e75d1d0d0bd05c600725602\",\n+ \"sha256\": \"f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72\"\n+ },\n+ {\n+ \"path\": \"research/free-word-tensor-lift-audit/PROOF.md\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"69c337a7704ce589798269ab4b8606189c070c4e\",\n+ \"sha256\": \"cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459\"\n+ },\n+ {\n+ \"path\": \"research/higher-moment-strictification/verify.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"4b24a5096154736ce060474eb8c72dc64c303699\",\n+ \"sha256\": \"0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326\"\n+ },\n+ {\n+ \"path\": \"research/joint-helper-lattice/CONTROLLER.json\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"49a2f0675819f9deeea27ed77be2c2b6ff2e87e5\",\n+ \"sha256\": \"1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f\"\n+ },\n+ {\n+ \"path\": \"research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"5a55034ec9e6185d981e16c28e1e2e455069e2cb\",\n+ \"sha256\": \"106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7\"\n+ },\n+ {\n+ \"path\": \"research/kappa-interface-round2-20261022/price_profile.py\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"1d93e43d1cb888d128c2faa2be83a96d85b84295\",\n+ \"sha256\": \"adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb\"\n+ },\n+ {\n+ \"path\": \"research/kappa-rebuild/architecture/mixed_target_probe.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"4fc05ab08138218ba9f09e5c89b649afae7c914e\",\n+ \"sha256\": \"011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a\"\n+ },\n+ {\n+ \"path\": \"research/kappa-rebuild/complex/native_extensions.py\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"7f84894efc309546a903d314c7ac1473e7f594a8\",\n+ \"sha256\": \"50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3\"\n+ },\n+ {\n+ \"path\": \"research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"46d929df83817b85a5387bcdb9745e0627d6366e\",\n+ \"sha256\": \"7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05\"\n+ },\n+ {\n+ \"path\": \"research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"ac77b78547d6dbf2e6bd102e1047c5b16c1bca88\",\n+ \"sha256\": \"6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b\"\n+ },\n+ {\n+ \"path\": \"research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"0fdb65f946d557c13d8e2781b9151e2a8ddee5c3\",\n+ \"sha256\": \"b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de\"\n+ },\n+ {\n+ \"path\": \"research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59\",\n+ \"sha256\": \"d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15\"\n+ },\n+ {\n+ \"path\": \"research/query-thinned-controllers/RESULT.json\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"e0695152c98d727edfd0d2034b58a1c7e8682c0c\",\n+ \"sha256\": \"6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f\"\n+ }\n+ ]\n+}\n@@ -0,0 +1,80 @@\n+{\n+ \"schema_version\": 1,\n+ \"task_id\": \"complex-new-helper-inventory\",\n+ \"priority_revision\": 7,\n+ \"base_commit\": \"7c472563474e60185e6ca101a17622133d047e56\",\n+ \"original_card\": {\n+ \"id\": \"complex-new-helper-inventory\",\n+ \"question\": \"Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?\",\n+ \"starting_points\": [\n+ \"docs/research/research-family-status.md\",\n+ \"research/complex-local-word-ceiling/README.md\",\n+ \"research/heterogeneous-owner-assembly/README.md\",\n+ \"certificates/selected-result.json\",\n+ \"research/selected-k8-unrestricted-ends/README.md\"\n+ ],\n+ \"methods\": [\n+ \"Propose a changed helper inventory and derive an optimistic exact moment.\",\n+ \"Design a small completed instance and independently verify its endpoint and rank bill.\"\n+ ],\n+ \"acceptance_gate\": \"A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a lower cap does not establish identical circuitry or order attainable optima, and is insufficient to pass the stronger-budget target under this model. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.\",\n+ \"first_step\": {\n+ \"command\": [\n+ \"python3\",\n+ \"-B\",\n+ \"research/complex-local-word-ceiling/verify.py\"\n+ ],\n+ \"expected\": \"PASS_COMPLEX_LOCAL_WORD_CEILING\",\n+ \"inspect\": \"Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.\",\n+ \"scope\": \"Positive control and planning budget only; this is not a new construction or full cold replay.\"\n+ },\n+ \"first_experiment\": \"Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.\",\n+ \"bottleneck_link\": \"Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.\",\n+ \"allowed_variations\": [\n+ \"Narrow to one changed boundary or helper type with explicit counts.\",\n+ \"If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope.\"\n+ ],\n+ \"scope_change_triggers\": [\n+ \"Mixing only providers already inside the pinned catalogue.\",\n+ \"Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.\",\n+ \"Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts.\"\n+ ],\n+ \"overlap_terms\": [\n+ \"helper inventory\",\n+ \"heterogeneous-owner\",\n+ \"mutable leaver\"\n+ ]\n+ },\n+ \"scope_status\": \"refined\",\n+ \"actual_scope\": \"Make helper L230 owned in each backward call, prepare one five-helper relation, retain one exact frame-254 snapshot, remove one rank-eight center and one rank-one zero job, and debit one rank-nine target.\",\n+ \"scope_change_reason\": \"This uses the current helper-inventory priority. It changes the independent input inventory and scalar word; all physical native maps and the p16 controller remain fixed.\",\n+ \"bottleneck_link\": \"https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737\",\n+ \"budget_minutes\": 240,\n+ \"stop_rule\": \"Publish one exact complete-profile kappa improvement after native, ownership, phase-inheritance, compiler and cold-export checks.\",\n+ \"outcome\": \"completed\",\n+ \"evidence\": \"README.md, WORD.json.gz, RESULT.json and verify.py. The complete conditional kappa is 60447/20000000.\",\n+ \"author\": \"Ali Romman\",\n+ \"ai_assistance\": \"Substantial OpenAI Codex assistance in discovery, code, proof, verification and publication.\",\n+ \"open_questions\": [\n+ {\n+ \"question\": \"Can a separate reviewer validate this one-relation restriction and the inherited physical transfer premises?\",\n+ \"why_it_matters\": \"The new finite construction is exact, but the complete bound still uses the source phase and all-size contracts.\",\n+ \"first_step\": \"Replay the three unrestricted source rows in native.py and check the COPY and zero-identity argument in README.md.\",\n+ \"blocked_by\": \"Independent review has not yet occurred.\"\n+ },\n+ {\n+ \"question\": \"Can a different helper relation give another complete positive bill?\",\n+ \"why_it_matters\": \"This construction gives one positive instance, not an optimum for changed helper inventories.\",\n+ \"first_step\": \"Claim a disjoint relation in Discussions, derive its exact rows, and include every lost target and owned-storage cost.\",\n+ \"blocked_by\": \"Current active cache and paid-history scopes must be checked first.\"\n+ }\n+ ],\n+ \"coordination\": {\n+ \"claim\": \"https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737\",\n+ \"distinct_scopes\": [\n+ \"https://github.com/CrocSwap/integer-mult-bounds/discussions/5355\",\n+ \"https://github.com/CrocSwap/integer-mult-bounds/discussions/4930\"\n+ ],\n+ \"boundary\": \"The first scope retains 632 arbitrary inputs and eight centers. The second retains every original helper endpoint. This package removes the independent L230 job only in backward calls and claims only the stated relation and two event replacements.\"\n+ }\n+}\n@@ -0,0 +1,38 @@\n+{\n+ \"schema_version\": 1,\n+ \"status\": \"ready\",\n+ \"python\": \"3.12\",\n+ \"requirements\": [],\n+ \"inputs\": [\n+ \"research/higher-moment-strictification/verify.py\",\n+ \"research/joint-helper-lattice/CONTROLLER.json\",\n+ \"research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py\",\n+ \"research/kappa-rebuild/architecture/mixed_target_probe.py\",\n+ \"research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz\",\n+ \"research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz\",\n+ \"research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json\",\n+ \"research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py\",\n+ \"research/query-thinned-controllers/RESULT.json\"\n+ ],\n+ \"commands\": [\n+ {\n+ \"argv\": [\n+ \"{python}\",\n+ \"-B\",\n+ \"{package}/verify.py\"\n+ ],\n+ \"timeout_seconds\": 600,\n+ \"checks\": \"Exact native rows, owned entry columns, event ranks, independent source identities, p16 Laurent controller, complete asymmetric invoice, two interval engines, compiler and outer predicates, negative controls.\"\n+ },\n+ {\n+ \"argv\": [\n+ \"{python}\",\n+ \"-O\",\n+ \"-B\",\n+ \"{package}/verify.py\"\n+ ],\n+ \"timeout_seconds\": 600,\n+ \"checks\": \"The same checks remain active with Python assertions disabled.\"\n+ }\n+ ]\n+}\n\n@@ -0,0 +1,299 @@\n+\"\"\"One prepared helper removes two paid jobs in the PR4610 backward word.\n+\n+Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0.\n+The source word is by Cao Yifan. The row convention and scalar allowance\n+follow the credited native work of Cinna Davis and zxv.\n+\"\"\"\n+from collections import Counter\n+from copy import deepcopy\n+from fractions import Fraction as Q\n+from hashlib import sha1, sha256\n+from pathlib import Path\n+import gzip\n+import importlib.util\n+import json\n+import sys\n+\n+HERE = Path(__file__).resolve().parent\n+ROOT = HERE.parents[1]\n+SOURCE = 'research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz'\n+PHASE = 'research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz'\n+PAYLOAD = 'cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd'\n+RELATION = {230: 1, 324: -1, 326: 1, 328: 1, 333: -1}\n+OLD_PAID = {1: 2201, 2: 412, 3: 510, 4: 127, 5: 40, 8: 8}\n+NEW_PAID = dict(OLD_PAID)\n+NEW_PAID[1] -= 1\n+NEW_PAID[8] -= 1\n+OLD_HELPERS = {4: 28, 7: 7, 8: 47, 9: 326}\n+\n+\n+def need(ok, why):\n+ if not ok:\n+ raise ValueError(why)\n+\n+\n+def read(path):\n+ data = path.read_bytes()\n+ return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data)\n+\n+\n+def encode(x):\n+ if isinstance(x, Q):\n+ return str(x)\n+ if isinstance(x, dict):\n+ return {str(k): encode(v) for k, v in x.items()}\n+ if isinstance(x, (list, tuple)):\n+ return [encode(v) for v in x]\n+ return x\n+\n+\n+def load(relative, name):\n+ spec = importlib.util.spec_from_file_location(name, ROOT / relative)\n+ module = importlib.util.module_from_spec(spec)\n+ sys.modules[name] = module\n+ spec.loader.exec_module(module)\n+ return module\n+\n+\n+def authenticate():\n+ pins = read(HERE / 'SOURCES.json')\n+ for row in pins['files']:\n+ if row['usage'] != 'input':\n+ continue\n+ p = ROOT\n+ for part in Path(row['path']).parts:\n+ p /= part\n+ need(not p.is_symlink(), 'No source aliases')\n+ raw = p.read_bytes()\n+ need(sha256(raw).hexdigest() == row['sha256'], 'Changed source: ' + row['path'])\n+ need(sha1(b'blob ' + str(len(raw)).encode() + b'\\0' + raw).hexdigest() == row['git_blob'], 'Source Git blob')\n+ need(sha256(gzip.decompress((ROOT / SOURCE).read_bytes())).hexdigest() == PAYLOAD, 'Exact source payload')\n+ return pins\n+\n+\n+def span(basis):\n+ out = {0}\n+ for vector in basis:\n+ need(isinstance(vector, int) and 0 <= vector < 512, 'Binary frame coordinate')\n+ out |= {v ^ vector for v in tuple(out)}\n+ need(len(out) == 2 ** len(basis), 'Independent frame basis')\n+ return out\n+\n+\n+def add(dst, src, q):\n+ for k, v in tuple(src.items()):\n+ value = dst.get(k, Q(0)) + q * v\n+ if value:\n+ dst[k] = value\n+ else:\n+ dst.pop(k, None)\n+\n+\n+def allowance(g):\n+ if g[0] in ('clear', 'copy'):\n+ return 2\n+ q = Q(*g[3:]) if g[0] == 'add' else Q(*g[2:])\n+ n, d = abs(q.numerator), q.denominator\n+ need(n > 0 and d & (d - 1) == 0, 'Nonzero dyadic scalar')\n+ if g[0] == 'scale':\n+ need(n & (n - 1) == 0, 'Dyadic unit SCALE')\n+ return 2 * (abs(n.bit_length() - d.bit_length()) + int(q < 0))\n+ need(g[0] == 'add', 'Known scalar operation')\n+ return 2 * (3 + n.bit_length() - 1 + n.bit_count() + d.bit_length() - 1)\n+\n+\n+def construct(source):\n+ c = source['canonical']\n+ old = source['programs']['backward']\n+ need(old[11205] == ['climb', 'warp_retimed', 92, 310, 254, 4], 'Snapshot source event')\n+ need(old[11332] == ['center', 0, 0, 254, 8], 'Center source event')\n+ need(old[15584] == ['climb', 'warp_retimed', 92, 254, 1, 1], 'Zero source event')\n+ need(all(c['start'][h] == 0 and c['final'][h] == 1 for h in RELATION), 'Five cold full-ended helpers')\n+ word = [['scalar', ['clear', ['L', 230]], 0]]\n+ word += [['scalar', ['add', ['L', 230], ['L', h], -q, 1], 0]\n+ for h, q in RELATION.items() if h != 230]\n+ for i, event in enumerate(old):\n+ if i == 11332:\n+ word += [['scalar', ['clear', ['C', 0]], 254],\n+ ['scalar', ['copy', ['C', 0], ['C', 1]], 254],\n+ ['scalar', ['clear', ['C', 1]], 254]]\n+ elif i == 15584:\n+ word.append(['zero_retag', ['L', 92], 254, 1])\n+ else:\n+ word.append(deepcopy(event))\n+ if i == 11205:\n+ word += [['scalar', ['clear', ['C', 1]], 254],\n+ ['scalar', ['copy', ['C', 1], ['L', 92]], 254]]\n+ word.append(['scalar', ['clear', ['L', 230]], 1])\n+ physical = deepcopy(c)\n+ physical.pop('local_profile')\n+ return {'schema': 'owned-helper-relation-word/1', 'canonical': physical,\n+ 'paid_profiles': {'forward': OLD_PAID, 'backward': NEW_PAID},\n+ 'owned': {'forward': [['C', 0]], 'backward': [['C', 0], ['C', 1], ['L', 230]]},\n+ 'programs': {'forward': deepcopy(source['programs']['forward']), 'backward': word}}\n+\n+\n+def replay(c, program, backward, specialized):\n+ \"\"\"Run every event on all independent entry columns and exact frames.\"\"\"\n+ owned = {('C', 0)} | ({('C', 1), ('L', 230)} if specialized else set())\n+ roles = {('L', i) for i in range(632)} | owned\n+ rows = {r: {(r, ()): Q(1)} for r in roles}\n+ frames = {('L', i): f for i, f in enumerate(c['start'])}\n+ frames.update({r: None for r in owned if r[0] == 'C'})\n+ spaces = [span(b) for b in c['frames']]\n+ paid = Counter()\n+ cost, max_l1, denominator, zero_count = 0, Q(1), 1, 0\n+ for e in program:\n+ kind, touched = e[0], None\n+ if kind == 'scalar':\n+ g, frame = e[1:]\n+ dst = tuple(g[1]); touched = dst\n+ need(dst in rows and 0 <= frame < len(spaces), 'Declared scalar destination and frame')\n+ cost += allowance(g)\n+ if g[0] == 'clear':\n+ need(dst in owned, 'Only owned fields can be erased')\n+ rows[dst] = {}; frames[dst] = frame\n+ else:\n+ need(frames[dst] == frame, 'Exact scalar destination frame')\n+ if g[0] in ('add', 'copy'):\n+ src = tuple(g[2])\n+ need(src in rows and frames[src] == frame and dst != src, 'Exact scalar source frame')\n+ if g[0] == 'copy':\n+ need(dst in owned and not rows[dst], 'COPY into cleared owned storage')\n+ rows[dst] = dict(rows[src])\n+ else:\n+ add(rows[dst], rows[src], Q(g[3], g[4]))\n+ else:\n+ need(g[0] == 'scale', 'Known scalar operation')\n+ rows[dst] = {k: Q(g[2], g[3]) * v for k, v in rows[dst].items()}\n+ elif kind == 'warp':\n+ _, role, op, old, new = e\n+ dst = tuple(role); touched = dst\n+ need(frames[dst] == old and 1 <= abs(op) <= len(c['warps']), 'Exact warp input')\n+ symbol = (1 if op > 0 else -1) * (abs(op) + (10**6 if backward else 0))\n+ rows[dst] = {(r, w[1:] if w and w[0] == -symbol else (symbol,) + w): q\n+ for (r, w), q in rows[dst].items()}\n+ frames[dst] = new\n+ elif kind in ('climb', 'center'):\n+ if kind == 'climb':\n+ _, _, i, old, new, rank = e\n+ dst = ('L', i)\n+ need(spaces[old] < spaces[new], 'Ascending paid climb')\n+ else:\n+ _, i, old, new, rank = e\n+ dst = ('C', i)\n+ need(spaces[old] < spaces[new] or spaces[new] < spaces[old], 'Nested paid center')\n+ need(frames[dst] == old and rank == abs(len(c['frames'][new]) - len(c['frames'][old])), 'Exact paid rank and frame')\n+ frames[dst] = new; paid[rank] += 1\n+ elif kind == 'zero_retag':\n+ _, role, old, new = e\n+ dst = tuple(role)\n+ need(specialized and backward and dst == ('L', 92), 'Declared zero identity')\n+ need(frames[dst] == old and not rows[dst], 'Zero identity requires an identically zero full row')\n+ need((old, new) == (254, 1), 'Declared zero frame change')\n+ frames[dst] = new; zero_count += 1\n+ else:\n+ need(kind in ('phase', 'adapter'), 'Known inert source marker')\n+ if touched is not None:\n+ max_l1 = max(max_l1, sum(map(abs, rows[touched].values()), Q(0)))\n+ denominator = max(denominator, max((q.denominator for q in rows[touched].values()), default=1))\n+ need([frames['L', i] for i in range(632)] == c['final'], 'Every final native frame')\n+ for i in range(632):\n+ r = ('L', i)\n+ if r in owned:\n+ continue\n+ expected = {(r, ()): Q(1)}\n+ if i < 112 if backward else 112 <= i < 224:\n+ expected[(('L', i + 112 if backward else i - 112), ())] = Q(-1 if backward else 1)\n+ need(rows[r] == expected, 'Every independent main/helper endpoint: ' + str(i))\n+ need(all(not rows[r] for r in owned), 'Every owned entry column is erased at return')\n+ need(zero_count == int(specialized), 'Exactly one checked zero identity')\n+ helpers = Counter()\n+ for i in range(224, 632):\n+ if ('L', i) in owned:\n+ continue\n+ a, b = c['start'][i], c['final'][i]\n+ need(spaces[a] < spaces[b], 'Strict independent productive helper')\n+ helpers[len(c['frames'][b]) - len(c['frames'][a])] += 1\n+ return {'paid': dict(sorted(paid.items())), 'helpers': dict(sorted(helpers.items())),\n+ 'independent_persistent_columns': 631 if specialized else 632,\n+ 'independent_owned_entry_columns': len(owned), 'owned_outputs_zero': True,\n+ 'real_scalar_allowance': cost, 'max_formal_prefix_l1': str(max_l1),\n+ 'max_denominator': denominator, 'zero_identities': zero_count}\n+\n+\n+def independent_source_identities(source):\n+ \"\"\"Use the predecessor row engine on the unrestricted original word.\"\"\"\n+ v = load('research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py', 'owned_relation_source_rows')\n+ rows = {('L', i): v.identity(('L', i)) for i in range(632)}\n+ rows['C', 0] = v.identity(('C', 0))\n+ delta = {(('L', i), ()): Q(q) for i, q in RELATION.items()}\n+ saved = None\n+ for index, e in enumerate(source['programs']['backward']):\n+ if e[0] == 'scalar':\n+ g = e[1]; dst = tuple(g[1])\n+ if g[0] == 'clear': rows[dst] = {}\n+ elif g[0] == 'copy': rows[dst] = dict(rows[tuple(g[2])])\n+ elif g[0] == 'scale': rows[dst] = {k: Q(g[2], g[3]) * a for k, a in rows[dst].items()}\n+ else: v.add(rows[dst], rows[tuple(g[2])], Q(g[3], g[4]))\n+ elif e[0] == 'warp':\n+ dst = tuple(e[1]); rows[dst] = v.warp(rows[dst], e[2], True)\n+ if index == 11205: saved = dict(rows['L', 92])\n+ if index == 11332:\n+ diff = dict(rows['C', 0]); v.add(diff, saved, -1)\n+ need(diff == {k: q / 4 for k, q in delta.items()}, 'Independent exact center minus snapshot = Delta/4')\n+ if index == 15584:\n+ need(rows['L', 92] == {k: -q / 4 for k, q in delta.items()}, 'Independent exact zero-site row = -Delta/4')\n+ need(all(rows['L', i] == v.expected(('L', i), [], True, False) for i in range(632)), 'Independent unrestricted source endpoints')\n+ return {'source_event_indices_are_zero_based': True, 'snapshot_after': 11205,\n+ 'center_replaced': 11332, 'zero_identity_at': 15584,\n+ 'snapshot_terms_before_substitution': len(saved), 'copy_coefficient': '1',\n+ 'center_minus_snapshot': 'Delta/4', 'zero_site_row': '-Delta/4', 'relation': RELATION}\n+\n+\n+def phase_inheritance(source, candidate):\n+ receipt = read(ROOT / PHASE)\n+ need(receipt['status'] == 'PASS_JOINT_HELPER_MAPS_ALL_ACTUAL_ABSOLUTE_PHASES' and\n+ receipt['actual_word_canonical_sha256'] == PAYLOAD, 'Authenticated source absolute-phase receipt')\n+ physical = deepcopy(source['canonical']); physical.pop('local_profile')\n+ need(candidate['canonical'] == physical, 'Every frame, native map and main adapter unchanged')\n+ for direction, program in candidate['programs'].items():\n+ old = source['programs'][direction]\n+ for kind in ('warp', 'adapter', 'phase'):\n+ need([e for e in program if e[0] == kind] == [e for e in old if e[0] == kind], 'Exact inherited ' + kind + ' sequence')\n+ old_paid = Counter(tuple(e) for e in old if e[0] in ('climb', 'center'))\n+ new_paid = Counter(tuple(e) for e in program if e[0] in ('climb', 'center'))\n+ expected = Counter() if direction == 'forward' else Counter(tuple(old[i]) for i in (11332, 15584))\n+ need(old_paid - new_paid == expected and not new_paid - old_paid, 'Only the two proved jobs are removed')\n+ return {'new_gaussian_operators': 0, 'new_native_maps': 0,\n+ 'all_retained_paid_events_and_warps_from_source': True,\n+ 'absolute_phase_receipt_reused': PHASE,\n+ 'source_amplitudes_and_phase_lowering_freshly_replayed': False,\n+ 'new_operations': 'Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.'}\n+\n+\n+def controls(c, candidate):\n+ controls = {}\n+ base = candidate['programs']['backward']\n+ variants = {}\n+ bad = deepcopy(base); bad[1][1][3] *= -1; variants['wrong_relation_sign'] = bad\n+ variants['missing_owned_input_clear'] = deepcopy(base[1:])\n+ bad = deepcopy(base)\n+ next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 1]])[1][2] = ['L', 63]\n+ variants['wrong_snapshot_source'] = bad\n+ bad = deepcopy(base); next(e for e in bad if e[0] == 'zero_retag')[2] = 0\n+ variants['wrong_zero_input_frame'] = bad\n+ bad = deepcopy(base); next(e for e in bad if e[0] == 'climb')[5] += 1\n+ variants['under_or_overstated_paid_rank'] = bad\n+ bad = deepcopy(base)\n+ next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 0]])[2] = 0\n+ variants['wrong_copy_gauge'] = bad\n+ variants['uncleared_owned_output'] = deepcopy(base[:-1])\n+ for name, program in variants.items():\n+ try:\n+ replay(c, program, True, True)\n+ except ValueError as err:\n+ controls[name] = str(err)\n+ else:\n+ raise ValueError('Control accepted: ' + name)\n+ return controls\n@@ -0,0 +1,196 @@\n+\"\"\"Complete p16 bill and finite compiler for one owned helper relation.\n+\n+The interval and compiler proof follows Cao Yifan's PR4610 pricing, Cinna\n+Davis's PR4470 controller, zxv's completion and logarithmic majorant, and\n+Jacob Alan Sussman's mixed-target recursion. Apache-2.0.\n+Ali Romman, with substantial OpenAI Codex assistance.\n+\"\"\"\n+from collections import Counter\n+from fractions import Fraction as Q\n+from native import ROOT, read, load, need, encode, OLD_PAID, OLD_HELPERS\n+\n+KAPPA = Q('.00302235')\n+TESTED = Q('.00302236')\n+PREVIOUS = Q('.0030217758')\n+OLD_ROOT_UPPER = Q('.00302177587078')\n+\n+\n+def controller():\n+ \"\"\"Check the literal p16 word and both rational boundary programs.\"\"\"\n+ word = read(ROOT / 'research/joint-helper-lattice/CONTROLLER.json')\n+ need((word['kind'], word['pairs'], word['prefix_pairs'], word['ambient_rank']) == ('complex', 16, 7, 145), 'Source p16/a7 controller')\n+ zero = (0,) * 34\n+ def plus(dst, src, q):\n+ for k, v in src.items():\n+ value = dst.get(k, Q(0)) + q * v\n+ if value: dst[k] = value\n+ else: dst.pop(k, None)\n+ def shifted(row, term, sign=1):\n+ return [{tuple(a + b for a, b in zip(k, term)): sign * v for k, v in cell.items()} for cell in row]\n+ for side in ('left', 'right'):\n+ matrix = [[Q(i == j) for j in range(32)] for i in range(32)]\n+ for e in word['boundaries'][side + '_program']:\n+ if e[0] == 'SWAP': matrix[e[1]], matrix[e[2]] = matrix[e[2]], matrix[e[1]]\n+ elif e[0] == 'SCALE': matrix[e[1]] = [Q(e[2]) * x for x in matrix[e[1]]]\n+ else:\n+ need(e[0] == 'ADD', 'Boundary scalar opcode')\n+ matrix[e[1]] = [x + Q(e[3]) * y for x, y in zip(matrix[e[1]], matrix[e[2]])]\n+ need(matrix == [[Q(x) for x in row] for row in word['boundaries'][side]], 'Exact scalar boundary program')\n+ rows = [[{zero: Q(x)} if Q(x) else {} for x in row] for row in word['boundaries']['right']]\n+ for e in word['physical_events']:\n+ if e[0] in ('LOCAL', 'QUERY_SHEAR'):\n+ _, stage, pair, back = e\n+ x, y = 2 * pair, 2 * pair + 1\n+ if back: x, y = y, x\n+ term = (1 if back else -1,) + (0,) * 33\n+ for dst, src in zip(rows[y], shifted(rows[x], term)):\n+ plus(dst, src, Q(-1 if back else 1))\n+ if e[0] == 'LOCAL':\n+ term = (0,) + tuple(int(s == stage) for s in range(33))\n+ for r in (x, y): rows[r] = shifted(rows[r], term)\n+ elif e[0] == 'IDLE':\n+ term = (0,) + tuple(int(s in e[2]) for s in range(33))\n+ for r in (2 * e[1], 2 * e[1] + 1): rows[r] = shifted(rows[r], term)\n+ elif e[0] == 'ADD':\n+ for dst, src in zip(rows[e[1]], rows[e[2]]): plus(dst, src, Q(e[3]))\n+ else:\n+ need(e[0] in ('SWAP', 'SIGNED_SWAP'), 'Controller physical opcode')\n+ rows[e[1]], rows[e[2]] = rows[e[2]], shifted(rows[e[1]], zero, -1 if e[0] == 'SIGNED_SWAP' else 1)\n+ out = [[{} for _ in range(32)] for _ in range(32)]\n+ for i, row in enumerate(word['boundaries']['left']):\n+ for k, q in enumerate(row):\n+ if Q(q):\n+ for j in range(32): plus(out[i][j], rows[k][j], Q(q))\n+ expected = [[{tuple(word['diagonal'][i]): Q(1)} if i == j else {} for j in range(32)] for i in range(32)]\n+ need(out == expected, 'All p16 Laurent coefficients, central signs and boundary factors')\n+ return word\n+\n+\n+def assemble(native, word):\n+ T, P = Counter(), Counter()\n+ orientations = Counter(); thin = 0\n+ for e in word['physical_events']:\n+ if e[0] == 'LOCAL':\n+ direction = 'backward' if e[3] else 'forward'\n+ orientations[direction] += 1\n+ T.update(native[direction]['helpers']); P.update(native[direction]['paid'])\n+ elif e[0] == 'QUERY_SHEAR': thin += 1; P[1] += 112\n+ elif e[0] == 'IDLE': P[8 * len(e[2])] += 224\n+ main = Counter()\n+ for term in word['diagonal']:\n+ need(term[0] in (-1, 1) and all(x in (0, 1) for x in term[1:]), 'Whole Gaussian main target')\n+ main[1 + 8 * sum(term[1:])] += 112\n+ T.update(main)\n+ need(orientations == {'backward': 16, 'forward': 2} and thin == 15, 'Every actual call orientation')\n+ # This second census uses the source invoice and the two local deltas.\n+ check_T = Counter({int(r): n for r, n in word['invoice']['main'].items()})\n+ check_T.update({r: 18 * n for r, n in OLD_HELPERS.items()}); check_T[9] -= 16\n+ check_P = Counter({int(r): n for r, n in word['invoice']['whole_idle'].items()})\n+ check_P.update({r: 18 * n for r, n in OLD_PAID.items()}); check_P[1] += 1680 - 16; check_P[8] -= 16\n+ need(T == check_T and P == check_P, 'Independent full invoice substitution')\n+ need(sum(T.values()) == 10912 and sum(P.values()) == 64372, 'Complete productive and paid counts')\n+ need(sum(r * n for r, n in T.items()) - sum(r * n for r, n in P.items()) == 752, 'Unchanged complete rank surplus')\n+ return T, P\n+\n+\n+def run(native):\n+ word = controller(); T, P = assemble(native, word)\n+ prior = read(ROOT / 'research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json')\n+ need(Q(prior['kappa']) == PREVIOUS and Q(prior['raw_root_interval'][1]) == OLD_ROOT_UPPER, 'Pinned prior conditional bound and raw crossing')\n+ prior_T = Counter({int(r): n for r, n in prior['targets'].items()})\n+ prior_P = Counter({int(r): n for r, n in prior['paid'].items()})\n+ prior_T[9] -= 16; prior_P[1] -= 16; prior_P[8] -= 16\n+ need(T == prior_T and P == prior_P, 'Complete delta from the final PR4610 bill')\n+ E = load('research/higher-moment-strictification/verify.py', 'owned_relation_intervals')\n+ other = load('research/kappa-rebuild/architecture/mixed_target_probe.py', 'owned_relation_second_intervals')\n+ def margin(c):\n+ t, p = E.moment(T, 1 - c), E.moment(P, 1 - c)\n+ return t[0] - p[1], t[1] - p[0]\n+ need(margin(OLD_ROOT_UPPER)[0] > 0, 'Changed invoice beats the prior raw root upper endpoint')\n+ lo, hi, grid = 0, 10**12, 10**14\n+ while hi - lo > 1:\n+ mid = (lo + hi) // 2\n+ if margin(Q(mid, grid))[0] > 0: lo = mid\n+ else: hi = mid\n+ root_low, root_high = Q(lo, grid), Q(hi, grid)\n+ need(margin(root_low)[0] > 0 and margin(root_high)[1] < 0, 'Strict rational root enclosure')\n+ need(PREVIOUS < KAPPA < TESTED < root_low, 'New bound and explicit compiler headroom')\n+ # The complete signed profile decreases on [0, .05], and stays negative\n+ # on [.05, 1]. This proves a fixed-profile ceiling, not a circuit ceiling.\n+ signed = {r: T[r] - P[r] for r in T.keys() | P.keys()}\n+ derivative, upper = None, None\n+ for i in range(16):\n+ l, r = Q(i, 320), Q(i + 1, 320); low = Q(0)\n+ for rank, n in signed.items():\n+ term = E.mul(E.power(rank, 1 - r if n > 0 else 1 - l), E.log_bounds(rank))\n+ low += n * term[0 if n > 0 else 1]\n+ derivative = low if derivative is None else min(derivative, low)\n+ for i in range(128):\n+ l, r = Q(1, 20) + Q(19 * i, 2560), Q(1, 20) + Q(19 * (i + 1), 2560)\n+ value = sum(n * E.power(rank, 1 - l if n > 0 else 1 - r)[1 if n > 0 else 0] for rank, n in signed.items())\n+ upper = value if upper is None else max(upper, value)\n+ need(derivative > 0 and upper < 0, 'Fixed-profile ceiling on all 0 < kappa < 1')\n+ t, u, v, c, b = 1 - TESTED, Q(1, 5), 1024, 20, 21\n+ target, paid = E.moment(T, t), E.moment(P, t)\n+ tl, th = other.moment(T, TESTED); pl, ph = other.moment(P, TESTED)\n+ need(tl > ph and max(tl, target[0]) <= min(th, target[1]) and max(pl, paid[0]) <= min(ph, paid[1]), 'Two exact interval engines agree')\n+ alpha = E.divide(paid, target)\n+ gamma = E.divide(E.moment(P, t + u), E.mul(E.power(c, u), target))\n+ delta = E.divide((Q(sum(T.values()) * b),) * 2, E.mul(E.power(c, TESTED), target))\n+ reserve = Q(1, 10**9); g = d = Q(97, 100)\n+ need(alpha[1] < 1 - reserve and gamma[1] < g and delta[1] < d, 'Original and completion tails charged')\n+ need(g**128 < Q(1, 16) and d**128 < Q(1, 16), 'Two strict tail decay blocks')\n+ normalized = 1 / (1 + v * reserve) + Q(4, 2**32)\n+ need(normalized < 1 and c**64 < b**63, 'Paid completion, splitting and rounding')\n+ theta, power = Q(63, 64), 1000\n+ eta = E.scale(E.power(145, -v * TESTED), t)\n+ need(2 * (20**v)**64 <= (145**v)**63 and eta[0] > theta**power, 'Shifted exits and complement capacity')\n+ need(E.power(145, v * TESTED)[1] < 2**power, 'Compiler initial range')\n+ gap = (TESTED - KAPPA) / 7; need(gap.numerator == 1, 'Finite integer grid')\n+ step = gap.denominator\n+ def wins(j): return (step * j + 1)**power < 2**j\n+ left, right = 1, 2\n+ while not wins(right): left, right = right, 2 * right\n+ while right - left > 1:\n+ mid = (left + right) // 2\n+ if wins(mid): right = mid\n+ else: left = mid\n+ height = step * right\n+ need(height > 8 * v and wins(right) and not wins(right - 1), 'Finite uniform-rank threshold')\n+ local_scalar = max(x['real_scalar_allowance'] for x in native.values())\n+ # The old route allowance is retained. Charge two additional owned field\n+ # lifetimes at two routes each, even though L230 uses an existing slot.\n+ routes = (max(sum(x['paid'].values()) for x in native.values()) + 2 * 408 + 688 + 4) * 1000\n+ need(local_scalar + routes < 10**7, 'All new preparation, COPY, CLEAR and fixed routes fit')\n+ scalar_upper = 18 * 10**7 + 15 * 1792 + 32 * 112 * (len(word['physical_events']) + sum(len(word['boundaries'][k + '_program']) for k in ('left', 'right')))\n+ need(scalar_upper < 10**9, 'Complete raw nonrecursive bound')\n+ bit = read(ROOT / 'research/query-thinned-controllers/RESULT.json')['ordinary_BIT']\n+ atom = Q(bit['atom']); ordinary = (1 - atom) * Q(bit['after_cover']) + atom * Q('.0000384599'); admitted = Q(bit['admitted'])\n+ need(atom == Q('.004') and atom > ordinary > admitted > TESTED and atom < 1 - ordinary, 'Retained stronger BIT admission and stock')\n+ L = load('research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py', 'owned_relation_outer')\n+ params = {'kappa': KAPPA, 'tested_saving': TESTED, 'complex_uniform_saving': KAPPA + 6 * gap,\n+ 'b': KAPPA + 5 * gap, 'a': KAPPA + 4 * gap, 'q': KAPPA + 3 * gap, 'bit_saving': admitted,\n+ 'epsilon': 1 - gap, 'beta': 1 - 3 * gap, 'r0': gap / 10, 'stop': gap, 'layout': gap, 'd': gap}\n+ outer = L.ledger(params); outer['functional_checks']['actual_new_BIT_stock_sublinear'] = params['beta'] * (1 - atom)\n+ need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 4, 'Complete outer predicate inventory')\n+ need(all(x > 0 for key in ('strict_checks', 'functional_checks') for x in outer[key].values()), 'Every outer inequality is strict')\n+ controls = {}\n+ for name, patch in [('old_BIT', {'bit_saving': Q('.0027')}), ('closed_uniform', {'complex_uniform_saving': params['b']}), ('unfunded_endpoint', {'kappa': TESTED}), ('closed_epsilon', {'epsilon': Q(1)})]:\n+ bad = L.ledger(dict(params, **patch)); failed = [k for k, x in bad['strict_checks'].items() if x <= 0]\n+ need(failed, 'Reject outer patch ' + name); controls[name] = failed\n+ bad_native = {d: dict(x) for d, x in native.items()}\n+ bad_native['backward']['helpers'] = OLD_HELPERS\n+ try: assemble(bad_native, word)\n+ except ValueError: controls['unearned_helper_credit'] = 'Rejected by the independent complete census'\n+ else: raise ValueError('Unowned helper credit was accepted')\n+ return encode({'kappa': KAPPA, 'kappa_decimal': '.00302235', 'gain_over_PR4610': KAPPA - PREVIOUS,\n+ 'raw_root_interval': [root_low, root_high], 'raw_headroom': [root_low - KAPPA, root_high - KAPPA],\n+ 'margin_at_previous_kappa': E.display(margin(PREVIOUS)),\n+ 'margin_at_previous_root_upper': E.display(margin(OLD_ROOT_UPPER)),\n+ 'fixed_profile_ceiling': {'decreasing_through': Q(1, 20), 'derivative_upper': E.display((-derivative,) * 2), 'remaining_interval_moment_upper': E.display((upper,) * 2)},\n+ 'targets': T, 'paid': P, 'productive_fields': sum(T.values()), 'paid_calls': sum(P.values()), 'rank_mass_surplus': 752,\n+ 'full_backward': 16, 'full_forward': 2, 'query_shears': 15,\n+ 'strictification': {'tested': TESTED, 'power': v, 'cutoff': c, 'floor': b, 'tail_offset': u, 'reserve': reserve, 'alpha': E.display(alpha), 'gamma': E.display(gamma), 'delta': E.display(delta), 'normalized_paid_upper': normalized},\n+ 'compiler': {'theta': theta, 'logarithm_power': power, 'eta': E.display(eta), 'gap': gap, 'uniform_saving': params['complex_uniform_saving'], 'H': height, 'N': '2^' + str(height), 'integer_test_exponent': right, 'word_materialized': False},\n+ 'nonrecursive': {'local_scalar': local_scalar, 'local_routes': routes, 'raw_scalar_upper': scalar_upper, 'raw_budget': 10**9, 'additional_private_slots': 1, 'owned_slots_backward': 3},\n+ 'ordinary_BIT': bit, 'outer': outer, 'negative_controls': controls})\n@@ -0,0 +1,64 @@\n+#!/usr/bin/env python3\n+\"\"\"Replay the one-relation native word and its complete conditional kappa.\n+\n+Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0.\n+Read README.md for the source credit and inherited proof obligations.\n+\"\"\"\n+from hashlib import sha256\n+import argparse\n+import gzip\n+import json\n+from pathlib import Path\n+import sys\n+sys.dont_write_bytecode = True\n+import native as N\n+import price\n+\n+\n+def run():\n+ N.authenticate()\n+ source = N.read(N.ROOT / N.SOURCE)\n+ candidate = N.construct(source)\n+ c = candidate['canonical']\n+ before, after = {}, {}\n+ for direction in ('forward', 'backward'):\n+ back = direction == 'backward'\n+ before[direction] = N.replay(c, source['programs'][direction], back, False)\n+ after[direction] = N.replay(c, candidate['programs'][direction], back, back)\n+ N.need(before[direction]['paid'] == N.OLD_PAID and before[direction]['helpers'] == N.OLD_HELPERS, 'Pinned source census')\n+ N.need(after[direction]['paid'] == candidate['paid_profiles'][direction], 'Emitted direction-specific paid profile')\n+ helpers = dict(N.OLD_HELPERS)\n+ if back: helpers[9] -= 1\n+ N.need(after[direction]['paid'] == (N.NEW_PAID if back else N.OLD_PAID) and after[direction]['helpers'] == helpers, 'Actual complete changed native census')\n+ identities = N.independent_source_identities(source)\n+ phase = N.phase_inheritance(source, candidate)\n+ controls = N.controls(c, candidate)\n+ arithmetic = price.run(after)\n+ data = (json.dumps(candidate, sort_keys=True, separators=(',', ':')) + '\\n').encode()\n+ result = N.encode({'status': 'PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION',\n+ 'source_payload_sha256': N.PAYLOAD, 'word_payload_sha256': sha256(data).hexdigest(),\n+ 'source_native': before, 'candidate_native': after, 'independent_source_identities': identities,\n+ 'phase_inheritance': phase, 'native_negative_controls': controls, 'arithmetic': arithmetic,\n+ 'scope': 'Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.'})\n+ return data, result\n+\n+\n+def main():\n+ ap = argparse.ArgumentParser(description=__doc__)\n+ ap.add_argument('--write', action='store_true', help='Write only this package word and result after all checks pass.')\n+ ap.add_argument('--out', type=Path, help='Write a replay result to a separate path.')\n+ args = ap.parse_args()\n+ data, result = run()\n+ if args.write:\n+ (N.HERE / 'WORD.json.gz').write_bytes(gzip.compress(data, mtime=0))\n+ (N.HERE / 'RESULT.json').write_text(json.dumps(result, indent=2, sort_keys=True) + '\\n', encoding='utf-8')\n+ else:\n+ N.need(gzip.decompress((N.HERE / 'WORD.json.gz').read_bytes()) == data, 'Exact literal published word')\n+ N.need(N.read(N.HERE / 'RESULT.json') == result, 'Exact published replay result')\n+ if args.out:\n+ args.out.write_text(json.dumps(result, indent=2, sort_keys=True) + '\\n', encoding='utf-8')\n+ print(json.dumps({'status': result['status'], **{k: result['arithmetic'][k] for k in ('kappa', 'gain_over_PR4610', 'raw_root_interval', 'paid_calls', 'productive_fields')}}, sort_keys=True))\n+\n+\n+if __name__ == '__main__':\n+ main()", + "comments": [], + "created_at": "2026-10-23T20:26:27Z", + "updated_at": "2026-10-23T20:26:27Z", + "closed_at": null, + "merged_at": null, + "commits": 1, + "changed_files": 9, + "additions": 1389, + "deletions": 0, + "display_url": "https://github.com/CrocSwap/integer-mult-bounds/pull/5377", + "display_title": "Conditional κ = 0.00302235 (+5.742e-7 over #4610): one owned helper relation" + }, + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/5377", + "title": "Conditional κ = 0.00302235 (+5.742e-7 over #4610): one owned helper relation", + "diff": "@@ -0,0 +1,249 @@\n+# Conditional kappa 0.00302235 from one owned helper relation\n+\n+This construction gives **conditional kappa = 60447/20000000 = 0.00302235**.\n+The gain over Cao Yifan's final\n+[PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610)\n+value, 0.0030217758, is **2871/5000000000 = 0.0000005742**.\n+The construction changes the complete paid profile. It does not obtain the\n+gain by taking more digits of the old root.\n+\n+One helper becomes owned storage in each backward call. A prepared relation\n+then makes one paid rank-eight center equal to an earlier saved value. The same\n+relation makes one later rank-one job act on zero. Both jobs can be removed,\n+with the rank-nine helper credit also removed. All other independent outputs\n+and all main interfaces keep their source operators.\n+\n+[WORD.json.gz](WORD.json.gz) is the complete emitted word.\n+[RESULT.json](RESULT.json) records the exact native checks, the two source\n+identities, both full profiles, completion, compiler and outer calculations.\n+[SOURCES.json](SOURCES.json) pins every external input by Git blob and SHA256.\n+The proof below explains why the changed word has the stated contract.\n+\n+## Source and scope\n+\n+The base is canonical main\n+[7c472563474e60185e6ca101a17622133d047e56](https://github.com/CrocSwap/integer-mult-bounds/commit/7c472563474e60185e6ca101a17622133d047e56).\n+The native source is the final PR #4610 word at\n+[20bb93cd990d2ff683e4d0fc56b87a42cd5d3296](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz).\n+Its decompressed SHA256 is\n+`cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`.\n+The comparison value and old crossing come from its\n+[final compiler arithmetic](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json).\n+All consumed bytes are already in the recorded main base.\n+\n+This is one instance of the current `complex-new-helper-inventory` priority.\n+The [scoped claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737)\n+reserves only the relation and two replacements below.\n+[Discussion #5355](https://github.com/CrocSwap/integer-mult-bounds/discussions/5355)\n+retains all 632 independent inputs and all eight centers.\n+[Discussion #4930](https://github.com/CrocSwap/integer-mult-bounds/discussions/4930)\n+retains every original helper endpoint. This construction removes the\n+independent L230 job in backward calls. It does not claim those broader scopes.\n+The selected certificate is unchanged. A fresh check at 20:20 UTC found that\n+Discussion #5355 had released its original-input scope without a saving.\n+Canonical main still had the recorded base commit.\n+\n+## Exact replacement proof\n+\n+All indices below are zero-based indices in the frozen backward program.\n+Let `h_r` be the source logical input of helper `Lr`. The five helpers in\n+\n+```math\n+\\Delta=h_{230}-h_{324}+h_{326}+h_{328}-h_{333}\n+```\n+\n+all start in frame 0 and finish in frame 1, of rank nine. The new backward\n+contract has 224 independent main fields and 407 independent helper fields.\n+L230 is private. Clear it, then use four same-frame ADDs to prepare\n+\n+```math\n+h_{230}=h_{324}-h_{326}-h_{328}+h_{333}.\n+```\n+\n+The other helper inputs remain arbitrary and independent. This preparation\n+sets Delta to zero for every input. It uses no recursive job. It removes one\n+rank-nine productive target; the dependent field receives no output credit.\n+\n+Run the original source program on unrestricted inputs. Let `q` be the\n+logical row of L92 just after event 11205, a paid climb into frame 254.\n+The separate predecessor row engine gives these exact identities:\n+\n+| Source position | Exact logical row |\n+| --- | --- |\n+| C0 at the rank-eight center, event 11332 | `q + Delta/4` |\n+| L92 at the rank-one climb, event 15584 | `-Delta/4` |\n+\n+These identities are over rational coefficients and free native operator\n+words. They hold for every value of every source input and for every invertible\n+interpretation of the native symbols. They do not use numerical samples or an\n+assumed relation between distinct native maps.\n+\n+For every positive tensor width f, substitute each native generator by its\n+source operator tensor power and each inverse by the inverse tensor power.\n+This defines a representation of the free group. Keep the rational scalar\n+coefficients outside the substitution. The two row identities therefore hold\n+at every such width. In particular, Delta/4 remains a scalar linear form; it\n+is not a tensor power of that sum. This uses the termwise argument recorded in\n+the [free-word tensor audit](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/free-word-tensor-lift-audit/PROOF.md),\n+which credits Cinna Davis's proposal and ToikY's scoped audit. Physical frame\n+realization and the complete all-size compiler retain their source contracts.\n+\n+Immediately after event 11205, clear a new private field C1 in frame 254 and\n+COPY L92 into it. C1 is not written until the replacement of event 11332. At\n+that event, clear owned C0, set its frame to 254, COPY C1 into C0, then clear C1.\n+The copy coefficient is exactly one. Under Delta = 0, the copied field is the\n+same physical value as the old center output: the logical rows and the exact\n+frame gauge are equal. The old C0 input can be erased because C0 is owned.\n+This removes one rank-eight recursive job.\n+\n+At event 15584, L92 is exactly zero in every input column. The physical\n+identity therefore has the same result as the old rank-one frame change.\n+`zero_retag` records this fact. It performs no physical write and is accepted\n+only when the full exact row is empty and the current frame is 254. It then\n+records frame 1. This removes one rank-one recursive job. It does not erase a\n+main input or replace a nonzero transform with a free frame change.\n+\n+Every other event stays in source order. Clear private L230 at return. The\n+source clears C0, and the new program has already cleared C1. The original\n+linear endpoint identity, restricted by the prepared relation, gives all 224\n+main outputs and all 407 retained helper outputs. The literal new-word replay\n+checks these outputs separately, with all 631 retained inputs and all three\n+owned entry fields initially arbitrary. It also checks every scalar frame,\n+paid rank, native frame transition and final frame.\n+\n+The 4,429 source frames, 72 native maps, all remaining paid operators, and main\n+adapters are unchanged. The source\n+[absolute-phase certificate](https://github.com/intqwq/integer-mult-bounds/blob/20bb93cd990d2ff683e4d0fc56b87a42cd5d3296/research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz)\n+is authenticated and reused. Same-frame COPY and identity on zero introduce no\n+phase recipe. The source's amplitude and Clifford-lowering checks are not\n+rerun by this package. The new free-word identities prove equivalence for the\n+source operators with their full phases, not just their projective classes.\n+\n+## Complete cost and conditional compiler\n+\n+The forward word is unchanged. Each backward call has these counts:\n+\n+```text\n+paid: {1:2200, 2:412, 3:510, 4:127, 5:40, 8:7}\n+helpers: {4:28, 7:7, 8:47, 9:325}\n+```\n+\n+The full p16/a7 controller contains 16 backward calls, two forward calls and\n+15 query shears. Thus the complete difference is **minus 16 H1 and 16 H8 paid\n+jobs, and minus 16 H9 productive targets**. It includes every idle and main\n+target. There are 64,372 paid jobs and 10,912 productive fields. Their rank\n+masses are 238,990 and 239,742; the surplus remains 752.\n+\n+For every real `0 < t < 1`, the complete target-minus-paid moment increases by\n+\n+```math\n+16(1+8^t-9^t)>0.\n+```\n+\n+For a direct proof, both `(1/9)^t > 1/9` and `(8/9)^t > 8/9`; multiply their\n+sum by `9^t`. The improvement is strict throughout the required range.\n+\n+The backward word has 158,214 real scalar operations under the source macro\n+allowance, exactly 46 more than its source. Its maximum formal prefix L1 norm\n+is 169, with maximum denominator 64; both equal the source bounds. The forward\n+bounds remain 457 and 32. One extra physical private slot holds C1. L230 uses\n+an existing slot. The route bound also charges two routes for each of the two\n+new owned lifetimes. The local scalar-plus-route bound stays below 10^7, and\n+the complete raw nonrecursive bound stays **181,098,496 < 10^9**. Preparation,\n+COPY, CLEAR and storage therefore do not introduce an unpaid recursive cost.\n+\n+Two rational interval engines check the complete moment. Its unique crossing\n+in `0 < kappa < 1` lies in\n+**(0.00302238736347, 0.00302238736348)**. The verifier proves the moment decreases\n+on `[0,0.05]` and remains negative on `[0.05,1]`. This is a ceiling for this\n+fixed complete profile, not an optimum over circuits or helper relations.\n+The claimed kappa leaves more than **0.00000003736347** raw headroom.\n+\n+The separately tested saving is 0.00302236. The paid/target ratio is below\n+`0.999999971483293515393313955730`, with reserve `1e-9`. Both charged tails are\n+below `0.97`. The source power 1024, cutoff 20, floor 21, tail offset 1/5,\n+complement factor 63/64 and logarithm power 1000 still pass. The compiler gap\n+is `1/700000000`, with `j=44836`, `H=31385200000000` and `N=2^31385200000000`.\n+The exact integer test `(H+1)^1000 < 2^44836` passes; the preceding grid integer\n+fails. The uniform complex saving is `2115651/700000000`. All 54 strict outer\n+predicates and four functional predicates pass, using the retained ordinary\n+BIT saving 0.0034.\n+\n+## Verification and reproduction\n+\n+Use Python 3.12 or 3.14, with the standard library only. From the repository root:\n+\n+```sh\n+python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023 --check-only\n+python3 -B scripts/research_package.py --package research/kappa-owned-relation-20261023\n+```\n+\n+The registered commands run normal and optimized Python. The direct command,\n+also used for a Git-free export, is:\n+\n+```sh\n+python3 -B research/kappa-owned-relation-20261023/verify.py\n+python3 -O -B research/kappa-owned-relation-20261023/verify.py\n+```\n+\n+Each prints status\n+`PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION`.\n+The verifier reconstructs the word and compares its bytes and exact result with\n+the published artifacts. `--write` is a separate authoring command. It changes\n+only this package's word and result after all checks pass.\n+\n+Fresh checks cover both source words, both candidate words, every independent\n+entry column and owned return, the two unrestricted source identities, retained\n+phase bindings, the p16 rational Laurent factorization, both scalar boundary\n+programs, two complete invoice counts, two rational interval engines, the fixed\n+profile ceiling, completion, compiler, BIT conversion and all outer predicates.\n+The emitted word replaces the old single `canonical.local_profile` metadata\n+field with explicit `paid_profiles` for the two directions.\n+\n+Seven native controls reject a wrong relation sign, omitted input clear, wrong\n+snapshot, wrong zero frame, wrong paid rank, wrong copy gauge, and omitted\n+output clear. Five cost/outer controls reject the lost helper's output credit,\n+old BIT stock, closed uniform gap, unfunded endpoint and closed epsilon.\n+\n+Normal and optimized registered replays passed on CPython 3.12.14. The direct\n+author check also passed on CPython 3.14. Source metadata and pins passed.\n+The optional full-history preflight is not claimed in the shallow checkout.\n+The publication handoff records export and committed-byte checks.\n+\n+The full source phase lowering, BIT native replay, Lean, Docker, physical tape\n+execution, numerical precision execution, analytic decomposition and integer\n+recovery are not rerun here. The complete bound retains those predecessor\n+contracts, including permitted owned erasure, whole-job normalizers, mixed\n+productive-target recursion and all-size closure. The expanded compiled word\n+is specified by a finite algorithm, not materialized. This is a conditional\n+construction with exact finite evidence, not an unconditional multiplication\n+theorem, a practical timing result or independent human acceptance.\n+\n+## Credit\n+\n+Prepared by Ali Romman with substantial OpenAI Codex assistance. Apache-2.0.\n+Cao Yifan's [PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610)\n+supplies the exact source word, phase evidence and previous compiler value.\n+Cinna Davis's [PR #4470](https://github.com/CrocSwap/integer-mult-bounds/pull/4470)\n+supplies the p16 controller and helper-interface lineage. The source code keeps\n+credit for Dugongue's transported frames, zxv's native and finite-compiler\n+work, Jacob Alan Sussman's mixed-target recursion and their predecessors.\n+The [pricing source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-interface-round2-20261022/price_profile.py)\n+and [literal native source](https://github.com/CrocSwap/integer-mult-bounds/blob/7c472563474e60185e6ca101a17622133d047e56/research/kappa-rebuild/complex/native_extensions.py)\n+are pinned as provenance for the adapted checks.\n+\n+zxv's [PR #5283](https://github.com/CrocSwap/integer-mult-bounds/pull/5283)\n+supplies the related cache contract and the explicit handoff to find actual\n+matching rows and their lifetimes. Its standalone cache example is not part of\n+this word. The new contribution is the five-helper relation, its actual cache\n+and zero identities, the full owned-field replacement and the complete positive\n+bill. No priority is claimed for the general cache or paid-history ideas.\n+\n+## Open next questions\n+\n+Independent review should first check the three source rows and the physical\n+COPY/zero argument above, then the retained all-size and phase premises.\n+A later construction could test a different helper relation, but it must claim\n+a disjoint scope and pay every lost target and owned field. This package does\n+not classify such relations. [TASK.json](TASK.json) records the first steps,\n+relevance and blockers for both questions.\n@@ -0,0 +1,373 @@\n+{\n+ \"arithmetic\": {\n+ \"compiler\": {\n+ \"H\": 31385200000000,\n+ \"N\": \"2^31385200000000\",\n+ \"eta\": {\n+ \"lower\": \"0.000000203927056311365991628189\",\n+ \"upper\": \"0.000000203927056311365991628190\"\n+ },\n+ \"gap\": \"1/700000000\",\n+ \"integer_test_exponent\": 44836,\n+ \"logarithm_power\": 1000,\n+ \"theta\": \"63/64\",\n+ \"uniform_saving\": \"2115651/700000000\",\n+ \"word_materialized\": false\n+ },\n+ \"fixed_profile_ceiling\": {\n+ \"decreasing_through\": \"1/20\",\n+ \"derivative_upper\": {\n+ \"lower\": \"-195778.630038840116414999953237565269\",\n+ \"upper\": \"-195778.630038840116414999953237565268\"\n+ },\n+ \"remaining_interval_moment_upper\": {\n+ \"lower\": \"-6836.549542075249598033582799619360\",\n+ \"upper\": \"-6836.549542075249598033582799619359\"\n+ }\n+ },\n+ \"full_backward\": 16,\n+ \"full_forward\": 2,\n+ \"gain_over_PR4610\": \"2871/5000000000\",\n+ \"kappa\": \"60447/20000000\",\n+ \"kappa_decimal\": \".00302235\",\n+ \"margin_at_previous_kappa\": {\n+ \"lower\": \"0.151161494385402651700356241377\",\n+ \"upper\": \"0.151161494385402651700356241378\"\n+ },\n+ \"margin_at_previous_root_upper\": {\n+ \"lower\": \"0.151143999513185007311808491175\",\n+ \"upper\": \"0.151143999513185007311808491176\"\n+ },\n+ \"negative_controls\": {\n+ \"closed_epsilon\": [\n+ \"epsilon_below_one\",\n+ \"global_gamma_power_slack\",\n+ \"actual_logarithmic_gamma_guard\",\n+ \"source_axis_superpolynomial\",\n+ \"gaussian_above_main\",\n+ \"new_semantic_guard_with_C1_one\"\n+ ],\n+ \"closed_uniform\": [\n+ \"new_complex_uniform_saving_above_b\"\n+ ],\n+ \"old_BIT\": [\n+ \"actual_bit_above_effective\"\n+ ],\n+ \"unearned_helper_credit\": \"Rejected by the independent complete census\",\n+ \"unfunded_endpoint\": [\n+ \"main_transform_above_kappa\",\n+ \"global_coordinate_router_above_kappa\",\n+ \"fused_gaussian_above_kappa\",\n+ \"group_bit_router_above_kappa\",\n+ \"boundary_algebraic_matrix_above_kappa\"\n+ ]\n+ },\n+ \"nonrecursive\": {\n+ \"additional_private_slots\": 1,\n+ \"local_routes\": 4806000,\n+ \"local_scalar\": 158214,\n+ \"owned_slots_backward\": 3,\n+ \"raw_budget\": 1000000000,\n+ \"raw_scalar_upper\": 181098496\n+ },\n+ \"ordinary_BIT\": {\n+ \"admitted\": \"17/5000\",\n+ \"after_cover\": \"69/20000\",\n+ \"atom\": \"1/250\",\n+ \"before_cover\": \"3459/1000000\",\n+ \"ordinary_saving\": \"8590884599/2500000000000\",\n+ \"prime_rule\": \"odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses\"\n+ },\n+ \"outer\": {\n+ \"functional_checks\": {\n+ \"actual_new_BIT_stock_sublinear\": \"174299999253/175000000000\",\n+ \"fixed_halo_explicit_metadata_branch\": \"13475000001/175000000\",\n+ \"new_BIT_row_stock_sublinear_in_active_group\": \"697899997009/700000000000\",\n+ \"new_semantic_group_guard\": \"3/700000000\"\n+ },\n+ \"margins\": {\n+ \"boundary_algebraic_matrix\": \"23139910904443/7656250000000000\",\n+ \"fused_gaussian\": \"23139910838329/7656250000000000\",\n+ \"global_coordinate_router\": \"2115649/700000000\",\n+ \"group_bit_router\": \"1480954993653053/490000000000000000\",\n+ \"group_scans\": \"349999999/350000000\",\n+ \"main_transform\": \"23139899966943/7656250000000000\",\n+ \"microbox_face_corrections\": \"13475000001/175000000\",\n+ \"polynomial_products\": \"699999999/700000000\",\n+ \"sparse_union_movement\": \"3133491473404443/7656250000000000\"\n+ },\n+ \"parameters\": {\n+ \"a\": \"2115649/700000000\",\n+ \"b\": \"42313/14000000\",\n+ \"beta\": \"699999997/700000000\",\n+ \"bit_saving\": \"17/5000\",\n+ \"cap_xi\": \"6961616462466943/7656250000000000\",\n+ \"complex_uniform_saving\": \"2115651/700000000\",\n+ \"d\": \"1/700000000\",\n+ \"epsilon\": \"699999999/700000000\",\n+ \"kappa\": \"60447/20000000\",\n+ \"lambda_\": \"199395529/200000000\",\n+ \"lambda_prime\": \"10904443/10937500\",\n+ \"layout\": \"1/700000000\",\n+ \"q\": \"33057/10937500\",\n+ \"r0\": \"1/7000000000\",\n+ \"stop\": \"1/700000000\",\n+ \"tested_saving\": \"75559/25000000\"\n+ },\n+ \"strict_checks\": {\n+ \"actual_bit_above_effective\": \"264351/700000000\",\n+ \"actual_logarithmic_gamma_guard\": \"1/700000000\",\n+ \"actual_logarithmic_group_guard\": \"694633553939307/3828125000000000\",\n+ \"alpha_logarithm_absorption\": \"1/7000000000\",\n+ \"boundary_algebraic_matrix_above_kappa\": \"43716943/7656250000000000\",\n+ \"cap_above_band\": \"3133491462466943/7656250000000000\",\n+ \"cap_below_cell\": \"694633526595557/7656250000000000\",\n+ \"cap_below_phase_cell_power\": \"8350883537533057/7656250000000000\",\n+ \"complex_above_effective\": \"1/700000000\",\n+ \"complex_below_one_over_32\": \"395187/14000000\",\n+ \"complex_endpoint\": \"1/350000000\",\n+ \"epsilon_below_one\": \"1/700000000\",\n+ \"epsilon_positive\": \"699999999/700000000\",\n+ \"fine_prime_halo_umbrella\": \"7/2\",\n+ \"fused_gaussian_above_kappa\": \"43650829/7656250000000000\",\n+ \"gaussian_above_main\": \"5435693/3828125000000000\",\n+ \"global_coordinate_router_above_kappa\": \"1/175000000\",\n+ \"global_gamma_power_slack\": \"9/7000000000\",\n+ \"group_below_dimension\": \"1/350000000\",\n+ \"group_bit_router_above_kappa\": \"3493653053/490000000000000000\",\n+ \"group_gauge_power_slack\": \"43414597087027/239257812500000\",\n+ \"group_key_fits_record\": \"1/350000000\",\n+ \"group_positive\": \"699999997/700000000\",\n+ \"group_scans_above_kappa\": \"697884353/700000000\",\n+ \"halo_covers_generic_inverse_radius\": \"5\",\n+ \"improvement_over_user_baseline\": \"645689790400418148631/500000000000000000000000\",\n+ \"lambda_above_internal\": \"1/1400000000\",\n+ \"lambda_above_sigma\": \"3/1400000000\",\n+ \"lambda_above_tau\": \"1/1400000000\",\n+ \"lambda_prime_above_lambda\": \"1/1400000000\",\n+ \"lambda_prime_above_leaf\": \"27957687/9800000000000000\",\n+ \"leaf_saving_above_effective\": \"13957687/9800000000000000\",\n+ \"main_transform_above_kappa\": \"32779443/7656250000000000\",\n+ \"membership_arithmetic_fits_record\": \"1/700000000\",\n+ \"microbox_face_corrections_above_kappa\": \"53897884359/700000000\",\n+ \"microbox_halo_volume\": \"55300000003/700000000\",\n+ \"new_complex_uniform_saving_above_b\": \"1/700000000\",\n+ \"new_semantic_guard_with_C1_one\": \"1/700000000\",\n+ \"polynomial_products_above_kappa\": \"348942177/350000000\",\n+ \"positive_layout_slack\": \"1/700000000\",\n+ \"q_below_effective\": \"1/700000000\",\n+ \"q_below_internal\": \"1/700000000\",\n+ \"q_below_leaf\": \"27957687/9800000000000000\",\n+ \"q_positive\": \"33057/10937500\",\n+ \"short_record_fallback\": \"13957687/14000000\",\n+ \"source_axis_superpolynomial\": \"1/700000000\",\n+ \"sparse_union_movement_above_kappa\": \"3110351606216943/7656250000000000\",\n+ \"stop_below_one\": \"699999999/700000000\",\n+ \"stop_positive\": \"1/700000000\",\n+ \"strassen_integer_power_gap\": \"1951441519231\",\n+ \"support_router_span\": \"3/700000000\",\n+ \"theta_positive_polynomial_power\": \"2\",\n+ \"union_header_fits_record\": \"3/700000000\",\n+ \"union_tag_work_per_visit_fits_record\": \"3/700000000\"\n+ }\n+ },\n+ \"paid\": {\n+ \"1\": 41282,\n+ \"16\": 448,\n+ \"2\": 7416,\n+ \"24\": 448,\n+ \"3\": 9180,\n+ \"32\": 448,\n+ \"4\": 2286,\n+ \"40\": 448,\n+ \"48\": 448,\n+ \"5\": 720,\n+ \"56\": 448,\n+ \"64\": 448,\n+ \"72\": 224,\n+ \"8\": 128\n+ },\n+ \"paid_calls\": 64372,\n+ \"productive_fields\": 10912,\n+ \"query_shears\": 15,\n+ \"rank_mass_surplus\": 752,\n+ \"raw_headroom\": [\n+ \"3736347/100000000000000\",\n+ \"934087/25000000000000\"\n+ ],\n+ \"raw_root_interval\": [\n+ \"302238736347/100000000000000\",\n+ \"75559684087/25000000000000\"\n+ ],\n+ \"strictification\": {\n+ \"alpha\": {\n+ \"lower\": \"0.999999971483293515393313955729\",\n+ \"upper\": \"0.999999971483293515393313955730\"\n+ },\n+ \"cutoff\": 20,\n+ \"delta\": {\n+ \"lower\": \"0.957459689758527661921334851512\",\n+ \"upper\": \"0.957459689758527661921334851513\"\n+ },\n+ \"floor\": 21,\n+ \"gamma\": {\n+ \"lower\": \"0.956310980726438847618396606911\",\n+ \"upper\": \"0.956310980726438847618396606912\"\n+ },\n+ \"normalized_paid_upper\": \"2097152001953127/2097154147483648\",\n+ \"power\": 1024,\n+ \"reserve\": \"1/1000000000\",\n+ \"tail_offset\": \"1/5\",\n+ \"tested\": \"75559/25000000\"\n+ },\n+ \"targets\": {\n+ \"145\": 224,\n+ \"17\": 448,\n+ \"25\": 448,\n+ \"33\": 448,\n+ \"4\": 504,\n+ \"41\": 448,\n+ \"49\": 448,\n+ \"57\": 448,\n+ \"65\": 448,\n+ \"7\": 126,\n+ \"73\": 224,\n+ \"8\": 846,\n+ \"9\": 5852\n+ }\n+ },\n+ \"candidate_native\": {\n+ \"backward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 325\n+ },\n+ \"independent_owned_entry_columns\": 3,\n+ \"independent_persistent_columns\": 631,\n+ \"max_denominator\": 64,\n+ \"max_formal_prefix_l1\": \"169\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2200,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 7\n+ },\n+ \"real_scalar_allowance\": 158214,\n+ \"zero_identities\": 1\n+ },\n+ \"forward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 326\n+ },\n+ \"independent_owned_entry_columns\": 1,\n+ \"independent_persistent_columns\": 632,\n+ \"max_denominator\": 32,\n+ \"max_formal_prefix_l1\": \"457\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2201,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 8\n+ },\n+ \"real_scalar_allowance\": 158120,\n+ \"zero_identities\": 0\n+ }\n+ },\n+ \"independent_source_identities\": {\n+ \"center_minus_snapshot\": \"Delta/4\",\n+ \"center_replaced\": 11332,\n+ \"copy_coefficient\": \"1\",\n+ \"relation\": {\n+ \"230\": 1,\n+ \"324\": -1,\n+ \"326\": 1,\n+ \"328\": 1,\n+ \"333\": -1\n+ },\n+ \"snapshot_after\": 11205,\n+ \"snapshot_terms_before_substitution\": 61,\n+ \"source_event_indices_are_zero_based\": true,\n+ \"zero_identity_at\": 15584,\n+ \"zero_site_row\": \"-Delta/4\"\n+ },\n+ \"native_negative_controls\": {\n+ \"missing_owned_input_clear\": \"Every independent main/helper endpoint: 0\",\n+ \"uncleared_owned_output\": \"Every owned entry column is erased at return\",\n+ \"under_or_overstated_paid_rank\": \"Exact paid rank and frame\",\n+ \"wrong_copy_gauge\": \"Exact scalar destination frame\",\n+ \"wrong_relation_sign\": \"Every independent main/helper endpoint: 0\",\n+ \"wrong_snapshot_source\": \"Zero identity requires an identically zero full row\",\n+ \"wrong_zero_input_frame\": \"Zero identity requires an identically zero full row\"\n+ },\n+ \"phase_inheritance\": {\n+ \"absolute_phase_receipt_reused\": \"research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz\",\n+ \"all_retained_paid_events_and_warps_from_source\": true,\n+ \"new_gaussian_operators\": 0,\n+ \"new_native_maps\": 0,\n+ \"new_operations\": \"Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.\",\n+ \"source_amplitudes_and_phase_lowering_freshly_replayed\": false\n+ },\n+ \"scope\": \"Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.\",\n+ \"source_native\": {\n+ \"backward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 326\n+ },\n+ \"independent_owned_entry_columns\": 1,\n+ \"independent_persistent_columns\": 632,\n+ \"max_denominator\": 64,\n+ \"max_formal_prefix_l1\": \"169\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2201,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 8\n+ },\n+ \"real_scalar_allowance\": 158168,\n+ \"zero_identities\": 0\n+ },\n+ \"forward\": {\n+ \"helpers\": {\n+ \"4\": 28,\n+ \"7\": 7,\n+ \"8\": 47,\n+ \"9\": 326\n+ },\n+ \"independent_owned_entry_columns\": 1,\n+ \"independent_persistent_columns\": 632,\n+ \"max_denominator\": 32,\n+ \"max_formal_prefix_l1\": \"457\",\n+ \"owned_outputs_zero\": true,\n+ \"paid\": {\n+ \"1\": 2201,\n+ \"2\": 412,\n+ \"3\": 510,\n+ \"4\": 127,\n+ \"5\": 40,\n+ \"8\": 8\n+ },\n+ \"real_scalar_allowance\": 158120,\n+ \"zero_identities\": 0\n+ }\n+ },\n+ \"source_payload_sha256\": \"cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd\",\n+ \"status\": \"PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION\",\n+ \"word_payload_sha256\": \"645b32ff67dfd49bbe8c2287d21f12a66a775d3c5e187db6f813e17e9f8fae35\"\n+}\n@@ -0,0 +1,90 @@\n+{\n+ \"schema_version\": 1,\n+ \"base_commit\": \"7c472563474e60185e6ca101a17622133d047e56\",\n+ \"files\": [\n+ {\n+ \"path\": \"certificates/selected-result.json\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"c35482cd9035843b15a634cc8276a7e1e40e8395\",\n+ \"sha256\": \"6fe0a099b89aa2aed796a13c3a21dafc63f3388ebf397464e44e0451893b9375\"\n+ },\n+ {\n+ \"path\": \"docs/research/agent-task-catalog.json\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"f126dd2e2dad2b669e75d1d0d0bd05c600725602\",\n+ \"sha256\": \"f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72\"\n+ },\n+ {\n+ \"path\": \"research/free-word-tensor-lift-audit/PROOF.md\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"69c337a7704ce589798269ab4b8606189c070c4e\",\n+ \"sha256\": \"cc8ad3698a673fb225419a3636a39aa99a66c7a0676f12e329b1e76564fa1459\"\n+ },\n+ {\n+ \"path\": \"research/higher-moment-strictification/verify.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"4b24a5096154736ce060474eb8c72dc64c303699\",\n+ \"sha256\": \"0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326\"\n+ },\n+ {\n+ \"path\": \"research/joint-helper-lattice/CONTROLLER.json\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"49a2f0675819f9deeea27ed77be2c2b6ff2e87e5\",\n+ \"sha256\": \"1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f\"\n+ },\n+ {\n+ \"path\": \"research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"5a55034ec9e6185d981e16c28e1e2e455069e2cb\",\n+ \"sha256\": \"106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7\"\n+ },\n+ {\n+ \"path\": \"research/kappa-interface-round2-20261022/price_profile.py\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"1d93e43d1cb888d128c2faa2be83a96d85b84295\",\n+ \"sha256\": \"adde619968d3ac37147d239e25145b28150650e9ce0f76035f680f22589adcbb\"\n+ },\n+ {\n+ \"path\": \"research/kappa-rebuild/architecture/mixed_target_probe.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"4fc05ab08138218ba9f09e5c89b649afae7c914e\",\n+ \"sha256\": \"011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a\"\n+ },\n+ {\n+ \"path\": \"research/kappa-rebuild/complex/native_extensions.py\",\n+ \"usage\": \"provenance\",\n+ \"git_blob\": \"7f84894efc309546a903d314c7ac1473e7f594a8\",\n+ \"sha256\": \"50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3\"\n+ },\n+ {\n+ \"path\": \"research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"46d929df83817b85a5387bcdb9745e0627d6366e\",\n+ \"sha256\": \"7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05\"\n+ },\n+ {\n+ \"path\": \"research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"ac77b78547d6dbf2e6bd102e1047c5b16c1bca88\",\n+ \"sha256\": \"6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b\"\n+ },\n+ {\n+ \"path\": \"research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"0fdb65f946d557c13d8e2781b9151e2a8ddee5c3\",\n+ \"sha256\": \"b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de\"\n+ },\n+ {\n+ \"path\": \"research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59\",\n+ \"sha256\": \"d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15\"\n+ },\n+ {\n+ \"path\": \"research/query-thinned-controllers/RESULT.json\",\n+ \"usage\": \"input\",\n+ \"git_blob\": \"e0695152c98d727edfd0d2034b58a1c7e8682c0c\",\n+ \"sha256\": \"6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f\"\n+ }\n+ ]\n+}\n@@ -0,0 +1,80 @@\n+{\n+ \"schema_version\": 1,\n+ \"task_id\": \"complex-new-helper-inventory\",\n+ \"priority_revision\": 7,\n+ \"base_commit\": \"7c472563474e60185e6ca101a17622133d047e56\",\n+ \"original_card\": {\n+ \"id\": \"complex-new-helper-inventory\",\n+ \"question\": \"Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?\",\n+ \"starting_points\": [\n+ \"docs/research/research-family-status.md\",\n+ \"research/complex-local-word-ceiling/README.md\",\n+ \"research/heterogeneous-owner-assembly/README.md\",\n+ \"certificates/selected-result.json\",\n+ \"research/selected-k8-unrestricted-ends/README.md\"\n+ ],\n+ \"methods\": [\n+ \"Propose a changed helper inventory and derive an optimistic exact moment.\",\n+ \"Design a small completed instance and independently verify its endpoint and rank bill.\"\n+ ],\n+ \"acceptance_gate\": \"A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a lower cap does not establish identical circuitry or order attainable optima, and is insufficient to pass the stronger-budget target under this model. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.\",\n+ \"first_step\": {\n+ \"command\": [\n+ \"python3\",\n+ \"-B\",\n+ \"research/complex-local-word-ceiling/verify.py\"\n+ ],\n+ \"expected\": \"PASS_COMPLEX_LOCAL_WORD_CEILING\",\n+ \"inspect\": \"Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.\",\n+ \"scope\": \"Positive control and planning budget only; this is not a new construction or full cold replay.\"\n+ },\n+ \"first_experiment\": \"Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.\",\n+ \"bottleneck_link\": \"Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.\",\n+ \"allowed_variations\": [\n+ \"Narrow to one changed boundary or helper type with explicit counts.\",\n+ \"If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope.\"\n+ ],\n+ \"scope_change_triggers\": [\n+ \"Mixing only providers already inside the pinned catalogue.\",\n+ \"Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.\",\n+ \"Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts.\"\n+ ],\n+ \"overlap_terms\": [\n+ \"helper inventory\",\n+ \"heterogeneous-owner\",\n+ \"mutable leaver\"\n+ ]\n+ },\n+ \"scope_status\": \"refined\",\n+ \"actual_scope\": \"Make helper L230 owned in each backward call, prepare one five-helper relation, retain one exact frame-254 snapshot, remove one rank-eight center and one rank-one zero job, and debit one rank-nine target.\",\n+ \"scope_change_reason\": \"This uses the current helper-inventory priority. It changes the independent input inventory and scalar word; all physical native maps and the p16 controller remain fixed.\",\n+ \"bottleneck_link\": \"https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737\",\n+ \"budget_minutes\": 240,\n+ \"stop_rule\": \"Publish one exact complete-profile kappa improvement after native, ownership, phase-inheritance, compiler and cold-export checks.\",\n+ \"outcome\": \"completed\",\n+ \"evidence\": \"README.md, WORD.json.gz, RESULT.json and verify.py. The complete conditional kappa is 60447/20000000.\",\n+ \"author\": \"Ali Romman\",\n+ \"ai_assistance\": \"Substantial OpenAI Codex assistance in discovery, code, proof, verification and publication.\",\n+ \"open_questions\": [\n+ {\n+ \"question\": \"Can a separate reviewer validate this one-relation restriction and the inherited physical transfer premises?\",\n+ \"why_it_matters\": \"The new finite construction is exact, but the complete bound still uses the source phase and all-size contracts.\",\n+ \"first_step\": \"Replay the three unrestricted source rows in native.py and check the COPY and zero-identity argument in README.md.\",\n+ \"blocked_by\": \"Independent review has not yet occurred.\"\n+ },\n+ {\n+ \"question\": \"Can a different helper relation give another complete positive bill?\",\n+ \"why_it_matters\": \"This construction gives one positive instance, not an optimum for changed helper inventories.\",\n+ \"first_step\": \"Claim a disjoint relation in Discussions, derive its exact rows, and include every lost target and owned-storage cost.\",\n+ \"blocked_by\": \"Current active cache and paid-history scopes must be checked first.\"\n+ }\n+ ],\n+ \"coordination\": {\n+ \"claim\": \"https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19153737\",\n+ \"distinct_scopes\": [\n+ \"https://github.com/CrocSwap/integer-mult-bounds/discussions/5355\",\n+ \"https://github.com/CrocSwap/integer-mult-bounds/discussions/4930\"\n+ ],\n+ \"boundary\": \"The first scope retains 632 arbitrary inputs and eight centers. The second retains every original helper endpoint. This package removes the independent L230 job only in backward calls and claims only the stated relation and two event replacements.\"\n+ }\n+}\n@@ -0,0 +1,38 @@\n+{\n+ \"schema_version\": 1,\n+ \"status\": \"ready\",\n+ \"python\": \"3.12\",\n+ \"requirements\": [],\n+ \"inputs\": [\n+ \"research/higher-moment-strictification/verify.py\",\n+ \"research/joint-helper-lattice/CONTROLLER.json\",\n+ \"research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py\",\n+ \"research/kappa-rebuild/architecture/mixed_target_probe.py\",\n+ \"research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz\",\n+ \"research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz\",\n+ \"research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json\",\n+ \"research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py\",\n+ \"research/query-thinned-controllers/RESULT.json\"\n+ ],\n+ \"commands\": [\n+ {\n+ \"argv\": [\n+ \"{python}\",\n+ \"-B\",\n+ \"{package}/verify.py\"\n+ ],\n+ \"timeout_seconds\": 600,\n+ \"checks\": \"Exact native rows, owned entry columns, event ranks, independent source identities, p16 Laurent controller, complete asymmetric invoice, two interval engines, compiler and outer predicates, negative controls.\"\n+ },\n+ {\n+ \"argv\": [\n+ \"{python}\",\n+ \"-O\",\n+ \"-B\",\n+ \"{package}/verify.py\"\n+ ],\n+ \"timeout_seconds\": 600,\n+ \"checks\": \"The same checks remain active with Python assertions disabled.\"\n+ }\n+ ]\n+}\n\n@@ -0,0 +1,299 @@\n+\"\"\"One prepared helper removes two paid jobs in the PR4610 backward word.\n+\n+Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0.\n+The source word is by Cao Yifan. The row convention and scalar allowance\n+follow the credited native work of Cinna Davis and zxv.\n+\"\"\"\n+from collections import Counter\n+from copy import deepcopy\n+from fractions import Fraction as Q\n+from hashlib import sha1, sha256\n+from pathlib import Path\n+import gzip\n+import importlib.util\n+import json\n+import sys\n+\n+HERE = Path(__file__).resolve().parent\n+ROOT = HERE.parents[1]\n+SOURCE = 'research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz'\n+PHASE = 'research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz'\n+PAYLOAD = 'cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd'\n+RELATION = {230: 1, 324: -1, 326: 1, 328: 1, 333: -1}\n+OLD_PAID = {1: 2201, 2: 412, 3: 510, 4: 127, 5: 40, 8: 8}\n+NEW_PAID = dict(OLD_PAID)\n+NEW_PAID[1] -= 1\n+NEW_PAID[8] -= 1\n+OLD_HELPERS = {4: 28, 7: 7, 8: 47, 9: 326}\n+\n+\n+def need(ok, why):\n+ if not ok:\n+ raise ValueError(why)\n+\n+\n+def read(path):\n+ data = path.read_bytes()\n+ return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data)\n+\n+\n+def encode(x):\n+ if isinstance(x, Q):\n+ return str(x)\n+ if isinstance(x, dict):\n+ return {str(k): encode(v) for k, v in x.items()}\n+ if isinstance(x, (list, tuple)):\n+ return [encode(v) for v in x]\n+ return x\n+\n+\n+def load(relative, name):\n+ spec = importlib.util.spec_from_file_location(name, ROOT / relative)\n+ module = importlib.util.module_from_spec(spec)\n+ sys.modules[name] = module\n+ spec.loader.exec_module(module)\n+ return module\n+\n+\n+def authenticate():\n+ pins = read(HERE / 'SOURCES.json')\n+ for row in pins['files']:\n+ if row['usage'] != 'input':\n+ continue\n+ p = ROOT\n+ for part in Path(row['path']).parts:\n+ p /= part\n+ need(not p.is_symlink(), 'No source aliases')\n+ raw = p.read_bytes()\n+ need(sha256(raw).hexdigest() == row['sha256'], 'Changed source: ' + row['path'])\n+ need(sha1(b'blob ' + str(len(raw)).encode() + b'\\0' + raw).hexdigest() == row['git_blob'], 'Source Git blob')\n+ need(sha256(gzip.decompress((ROOT / SOURCE).read_bytes())).hexdigest() == PAYLOAD, 'Exact source payload')\n+ return pins\n+\n+\n+def span(basis):\n+ out = {0}\n+ for vector in basis:\n+ need(isinstance(vector, int) and 0 <= vector < 512, 'Binary frame coordinate')\n+ out |= {v ^ vector for v in tuple(out)}\n+ need(len(out) == 2 ** len(basis), 'Independent frame basis')\n+ return out\n+\n+\n+def add(dst, src, q):\n+ for k, v in tuple(src.items()):\n+ value = dst.get(k, Q(0)) + q * v\n+ if value:\n+ dst[k] = value\n+ else:\n+ dst.pop(k, None)\n+\n+\n+def allowance(g):\n+ if g[0] in ('clear', 'copy'):\n+ return 2\n+ q = Q(*g[3:]) if g[0] == 'add' else Q(*g[2:])\n+ n, d = abs(q.numerator), q.denominator\n+ need(n > 0 and d & (d - 1) == 0, 'Nonzero dyadic scalar')\n+ if g[0] == 'scale':\n+ need(n & (n - 1) == 0, 'Dyadic unit SCALE')\n+ return 2 * (abs(n.bit_length() - d.bit_length()) + int(q < 0))\n+ need(g[0] == 'add', 'Known scalar operation')\n+ return 2 * (3 + n.bit_length() - 1 + n.bit_count() + d.bit_length() - 1)\n+\n+\n+def construct(source):\n+ c = source['canonical']\n+ old = source['programs']['backward']\n+ need(old[11205] == ['climb', 'warp_retimed', 92, 310, 254, 4], 'Snapshot source event')\n+ need(old[11332] == ['center', 0, 0, 254, 8], 'Center source event')\n+ need(old[15584] == ['climb', 'warp_retimed', 92, 254, 1, 1], 'Zero source event')\n+ need(all(c['start'][h] == 0 and c['final'][h] == 1 for h in RELATION), 'Five cold full-ended helpers')\n+ word = [['scalar', ['clear', ['L', 230]], 0]]\n+ word += [['scalar', ['add', ['L', 230], ['L', h], -q, 1], 0]\n+ for h, q in RELATION.items() if h != 230]\n+ for i, event in enumerate(old):\n+ if i == 11332:\n+ word += [['scalar', ['clear', ['C', 0]], 254],\n+ ['scalar', ['copy', ['C', 0], ['C', 1]], 254],\n+ ['scalar', ['clear', ['C', 1]], 254]]\n+ elif i == 15584:\n+ word.append(['zero_retag', ['L', 92], 254, 1])\n+ else:\n+ word.append(deepcopy(event))\n+ if i == 11205:\n+ word += [['scalar', ['clear', ['C', 1]], 254],\n+ ['scalar', ['copy', ['C', 1], ['L', 92]], 254]]\n+ word.append(['scalar', ['clear', ['L', 230]], 1])\n+ physical = deepcopy(c)\n+ physical.pop('local_profile')\n+ return {'schema': 'owned-helper-relation-word/1', 'canonical': physical,\n+ 'paid_profiles': {'forward': OLD_PAID, 'backward': NEW_PAID},\n+ 'owned': {'forward': [['C', 0]], 'backward': [['C', 0], ['C', 1], ['L', 230]]},\n+ 'programs': {'forward': deepcopy(source['programs']['forward']), 'backward': word}}\n+\n+\n+def replay(c, program, backward, specialized):\n+ \"\"\"Run every event on all independent entry columns and exact frames.\"\"\"\n+ owned = {('C', 0)} | ({('C', 1), ('L', 230)} if specialized else set())\n+ roles = {('L', i) for i in range(632)} | owned\n+ rows = {r: {(r, ()): Q(1)} for r in roles}\n+ frames = {('L', i): f for i, f in enumerate(c['start'])}\n+ frames.update({r: None for r in owned if r[0] == 'C'})\n+ spaces = [span(b) for b in c['frames']]\n+ paid = Counter()\n+ cost, max_l1, denominator, zero_count = 0, Q(1), 1, 0\n+ for e in program:\n+ kind, touched = e[0], None\n+ if kind == 'scalar':\n+ g, frame = e[1:]\n+ dst = tuple(g[1]); touched = dst\n+ need(dst in rows and 0 <= frame < len(spaces), 'Declared scalar destination and frame')\n+ cost += allowance(g)\n+ if g[0] == 'clear':\n+ need(dst in owned, 'Only owned fields can be erased')\n+ rows[dst] = {}; frames[dst] = frame\n+ else:\n+ need(frames[dst] == frame, 'Exact scalar destination frame')\n+ if g[0] in ('add', 'copy'):\n+ src = tuple(g[2])\n+ need(src in rows and frames[src] == frame and dst != src, 'Exact scalar source frame')\n+ if g[0] == 'copy':\n+ need(dst in owned and not rows[dst], 'COPY into cleared owned storage')\n+ rows[dst] = dict(rows[src])\n+ else:\n+ add(rows[dst], rows[src], Q(g[3], g[4]))\n+ else:\n+ need(g[0] == 'scale', 'Known scalar operation')\n+ rows[dst] = {k: Q(g[2], g[3]) * v for k, v in rows[dst].items()}\n+ elif kind == 'warp':\n+ _, role, op, old, new = e\n+ dst = tuple(role); touched = dst\n+ need(frames[dst] == old and 1 <= abs(op) <= len(c['warps']), 'Exact warp input')\n+ symbol = (1 if op > 0 else -1) * (abs(op) + (10**6 if backward else 0))\n+ rows[dst] = {(r, w[1:] if w and w[0] == -symbol else (symbol,) + w): q\n+ for (r, w), q in rows[dst].items()}\n+ frames[dst] = new\n+ elif kind in ('climb', 'center'):\n+ if kind == 'climb':\n+ _, _, i, old, new, rank = e\n+ dst = ('L', i)\n+ need(spaces[old] < spaces[new], 'Ascending paid climb')\n+ else:\n+ _, i, old, new, rank = e\n+ dst = ('C', i)\n+ need(spaces[old] < spaces[new] or spaces[new] < spaces[old], 'Nested paid center')\n+ need(frames[dst] == old and rank == abs(len(c['frames'][new]) - len(c['frames'][old])), 'Exact paid rank and frame')\n+ frames[dst] = new; paid[rank] += 1\n+ elif kind == 'zero_retag':\n+ _, role, old, new = e\n+ dst = tuple(role)\n+ need(specialized and backward and dst == ('L', 92), 'Declared zero identity')\n+ need(frames[dst] == old and not rows[dst], 'Zero identity requires an identically zero full row')\n+ need((old, new) == (254, 1), 'Declared zero frame change')\n+ frames[dst] = new; zero_count += 1\n+ else:\n+ need(kind in ('phase', 'adapter'), 'Known inert source marker')\n+ if touched is not None:\n+ max_l1 = max(max_l1, sum(map(abs, rows[touched].values()), Q(0)))\n+ denominator = max(denominator, max((q.denominator for q in rows[touched].values()), default=1))\n+ need([frames['L', i] for i in range(632)] == c['final'], 'Every final native frame')\n+ for i in range(632):\n+ r = ('L', i)\n+ if r in owned:\n+ continue\n+ expected = {(r, ()): Q(1)}\n+ if i < 112 if backward else 112 <= i < 224:\n+ expected[(('L', i + 112 if backward else i - 112), ())] = Q(-1 if backward else 1)\n+ need(rows[r] == expected, 'Every independent main/helper endpoint: ' + str(i))\n+ need(all(not rows[r] for r in owned), 'Every owned entry column is erased at return')\n+ need(zero_count == int(specialized), 'Exactly one checked zero identity')\n+ helpers = Counter()\n+ for i in range(224, 632):\n+ if ('L', i) in owned:\n+ continue\n+ a, b = c['start'][i], c['final'][i]\n+ need(spaces[a] < spaces[b], 'Strict independent productive helper')\n+ helpers[len(c['frames'][b]) - len(c['frames'][a])] += 1\n+ return {'paid': dict(sorted(paid.items())), 'helpers': dict(sorted(helpers.items())),\n+ 'independent_persistent_columns': 631 if specialized else 632,\n+ 'independent_owned_entry_columns': len(owned), 'owned_outputs_zero': True,\n+ 'real_scalar_allowance': cost, 'max_formal_prefix_l1': str(max_l1),\n+ 'max_denominator': denominator, 'zero_identities': zero_count}\n+\n+\n+def independent_source_identities(source):\n+ \"\"\"Use the predecessor row engine on the unrestricted original word.\"\"\"\n+ v = load('research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py', 'owned_relation_source_rows')\n+ rows = {('L', i): v.identity(('L', i)) for i in range(632)}\n+ rows['C', 0] = v.identity(('C', 0))\n+ delta = {(('L', i), ()): Q(q) for i, q in RELATION.items()}\n+ saved = None\n+ for index, e in enumerate(source['programs']['backward']):\n+ if e[0] == 'scalar':\n+ g = e[1]; dst = tuple(g[1])\n+ if g[0] == 'clear': rows[dst] = {}\n+ elif g[0] == 'copy': rows[dst] = dict(rows[tuple(g[2])])\n+ elif g[0] == 'scale': rows[dst] = {k: Q(g[2], g[3]) * a for k, a in rows[dst].items()}\n+ else: v.add(rows[dst], rows[tuple(g[2])], Q(g[3], g[4]))\n+ elif e[0] == 'warp':\n+ dst = tuple(e[1]); rows[dst] = v.warp(rows[dst], e[2], True)\n+ if index == 11205: saved = dict(rows['L', 92])\n+ if index == 11332:\n+ diff = dict(rows['C', 0]); v.add(diff, saved, -1)\n+ need(diff == {k: q / 4 for k, q in delta.items()}, 'Independent exact center minus snapshot = Delta/4')\n+ if index == 15584:\n+ need(rows['L', 92] == {k: -q / 4 for k, q in delta.items()}, 'Independent exact zero-site row = -Delta/4')\n+ need(all(rows['L', i] == v.expected(('L', i), [], True, False) for i in range(632)), 'Independent unrestricted source endpoints')\n+ return {'source_event_indices_are_zero_based': True, 'snapshot_after': 11205,\n+ 'center_replaced': 11332, 'zero_identity_at': 15584,\n+ 'snapshot_terms_before_substitution': len(saved), 'copy_coefficient': '1',\n+ 'center_minus_snapshot': 'Delta/4', 'zero_site_row': '-Delta/4', 'relation': RELATION}\n+\n+\n+def phase_inheritance(source, candidate):\n+ receipt = read(ROOT / PHASE)\n+ need(receipt['status'] == 'PASS_JOINT_HELPER_MAPS_ALL_ACTUAL_ABSOLUTE_PHASES' and\n+ receipt['actual_word_canonical_sha256'] == PAYLOAD, 'Authenticated source absolute-phase receipt')\n+ physical = deepcopy(source['canonical']); physical.pop('local_profile')\n+ need(candidate['canonical'] == physical, 'Every frame, native map and main adapter unchanged')\n+ for direction, program in candidate['programs'].items():\n+ old = source['programs'][direction]\n+ for kind in ('warp', 'adapter', 'phase'):\n+ need([e for e in program if e[0] == kind] == [e for e in old if e[0] == kind], 'Exact inherited ' + kind + ' sequence')\n+ old_paid = Counter(tuple(e) for e in old if e[0] in ('climb', 'center'))\n+ new_paid = Counter(tuple(e) for e in program if e[0] in ('climb', 'center'))\n+ expected = Counter() if direction == 'forward' else Counter(tuple(old[i]) for i in (11332, 15584))\n+ need(old_paid - new_paid == expected and not new_paid - old_paid, 'Only the two proved jobs are removed')\n+ return {'new_gaussian_operators': 0, 'new_native_maps': 0,\n+ 'all_retained_paid_events_and_warps_from_source': True,\n+ 'absolute_phase_receipt_reused': PHASE,\n+ 'source_amplitudes_and_phase_lowering_freshly_replayed': False,\n+ 'new_operations': 'Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.'}\n+\n+\n+def controls(c, candidate):\n+ controls = {}\n+ base = candidate['programs']['backward']\n+ variants = {}\n+ bad = deepcopy(base); bad[1][1][3] *= -1; variants['wrong_relation_sign'] = bad\n+ variants['missing_owned_input_clear'] = deepcopy(base[1:])\n+ bad = deepcopy(base)\n+ next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 1]])[1][2] = ['L', 63]\n+ variants['wrong_snapshot_source'] = bad\n+ bad = deepcopy(base); next(e for e in bad if e[0] == 'zero_retag')[2] = 0\n+ variants['wrong_zero_input_frame'] = bad\n+ bad = deepcopy(base); next(e for e in bad if e[0] == 'climb')[5] += 1\n+ variants['under_or_overstated_paid_rank'] = bad\n+ bad = deepcopy(base)\n+ next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 0]])[2] = 0\n+ variants['wrong_copy_gauge'] = bad\n+ variants['uncleared_owned_output'] = deepcopy(base[:-1])\n+ for name, program in variants.items():\n+ try:\n+ replay(c, program, True, True)\n+ except ValueError as err:\n+ controls[name] = str(err)\n+ else:\n+ raise ValueError('Control accepted: ' + name)\n+ return controls\n@@ -0,0 +1,196 @@\n+\"\"\"Complete p16 bill and finite compiler for one owned helper relation.\n+\n+The interval and compiler proof follows Cao Yifan's PR4610 pricing, Cinna\n+Davis's PR4470 controller, zxv's completion and logarithmic majorant, and\n+Jacob Alan Sussman's mixed-target recursion. Apache-2.0.\n+Ali Romman, with substantial OpenAI Codex assistance.\n+\"\"\"\n+from collections import Counter\n+from fractions import Fraction as Q\n+from native import ROOT, read, load, need, encode, OLD_PAID, OLD_HELPERS\n+\n+KAPPA = Q('.00302235')\n+TESTED = Q('.00302236')\n+PREVIOUS = Q('.0030217758')\n+OLD_ROOT_UPPER = Q('.00302177587078')\n+\n+\n+def controller():\n+ \"\"\"Check the literal p16 word and both rational boundary programs.\"\"\"\n+ word = read(ROOT / 'research/joint-helper-lattice/CONTROLLER.json')\n+ need((word['kind'], word['pairs'], word['prefix_pairs'], word['ambient_rank']) == ('complex', 16, 7, 145), 'Source p16/a7 controller')\n+ zero = (0,) * 34\n+ def plus(dst, src, q):\n+ for k, v in src.items():\n+ value = dst.get(k, Q(0)) + q * v\n+ if value: dst[k] = value\n+ else: dst.pop(k, None)\n+ def shifted(row, term, sign=1):\n+ return [{tuple(a + b for a, b in zip(k, term)): sign * v for k, v in cell.items()} for cell in row]\n+ for side in ('left', 'right'):\n+ matrix = [[Q(i == j) for j in range(32)] for i in range(32)]\n+ for e in word['boundaries'][side + '_program']:\n+ if e[0] == 'SWAP': matrix[e[1]], matrix[e[2]] = matrix[e[2]], matrix[e[1]]\n+ elif e[0] == 'SCALE': matrix[e[1]] = [Q(e[2]) * x for x in matrix[e[1]]]\n+ else:\n+ need(e[0] == 'ADD', 'Boundary scalar opcode')\n+ matrix[e[1]] = [x + Q(e[3]) * y for x, y in zip(matrix[e[1]], matrix[e[2]])]\n+ need(matrix == [[Q(x) for x in row] for row in word['boundaries'][side]], 'Exact scalar boundary program')\n+ rows = [[{zero: Q(x)} if Q(x) else {} for x in row] for row in word['boundaries']['right']]\n+ for e in word['physical_events']:\n+ if e[0] in ('LOCAL', 'QUERY_SHEAR'):\n+ _, stage, pair, back = e\n+ x, y = 2 * pair, 2 * pair + 1\n+ if back: x, y = y, x\n+ term = (1 if back else -1,) + (0,) * 33\n+ for dst, src in zip(rows[y], shifted(rows[x], term)):\n+ plus(dst, src, Q(-1 if back else 1))\n+ if e[0] == 'LOCAL':\n+ term = (0,) + tuple(int(s == stage) for s in range(33))\n+ for r in (x, y): rows[r] = shifted(rows[r], term)\n+ elif e[0] == 'IDLE':\n+ term = (0,) + tuple(int(s in e[2]) for s in range(33))\n+ for r in (2 * e[1], 2 * e[1] + 1): rows[r] = shifted(rows[r], term)\n+ elif e[0] == 'ADD':\n+ for dst, src in zip(rows[e[1]], rows[e[2]]): plus(dst, src, Q(e[3]))\n+ else:\n+ need(e[0] in ('SWAP', 'SIGNED_SWAP'), 'Controller physical opcode')\n+ rows[e[1]], rows[e[2]] = rows[e[2]], shifted(rows[e[1]], zero, -1 if e[0] == 'SIGNED_SWAP' else 1)\n+ out = [[{} for _ in range(32)] for _ in range(32)]\n+ for i, row in enumerate(word['boundaries']['left']):\n+ for k, q in enumerate(row):\n+ if Q(q):\n+ for j in range(32): plus(out[i][j], rows[k][j], Q(q))\n+ expected = [[{tuple(word['diagonal'][i]): Q(1)} if i == j else {} for j in range(32)] for i in range(32)]\n+ need(out == expected, 'All p16 Laurent coefficients, central signs and boundary factors')\n+ return word\n+\n+\n+def assemble(native, word):\n+ T, P = Counter(), Counter()\n+ orientations = Counter(); thin = 0\n+ for e in word['physical_events']:\n+ if e[0] == 'LOCAL':\n+ direction = 'backward' if e[3] else 'forward'\n+ orientations[direction] += 1\n+ T.update(native[direction]['helpers']); P.update(native[direction]['paid'])\n+ elif e[0] == 'QUERY_SHEAR': thin += 1; P[1] += 112\n+ elif e[0] == 'IDLE': P[8 * len(e[2])] += 224\n+ main = Counter()\n+ for term in word['diagonal']:\n+ need(term[0] in (-1, 1) and all(x in (0, 1) for x in term[1:]), 'Whole Gaussian main target')\n+ main[1 + 8 * sum(term[1:])] += 112\n+ T.update(main)\n+ need(orientations == {'backward': 16, 'forward': 2} and thin == 15, 'Every actual call orientation')\n+ # This second census uses the source invoice and the two local deltas.\n+ check_T = Counter({int(r): n for r, n in word['invoice']['main'].items()})\n+ check_T.update({r: 18 * n for r, n in OLD_HELPERS.items()}); check_T[9] -= 16\n+ check_P = Counter({int(r): n for r, n in word['invoice']['whole_idle'].items()})\n+ check_P.update({r: 18 * n for r, n in OLD_PAID.items()}); check_P[1] += 1680 - 16; check_P[8] -= 16\n+ need(T == check_T and P == check_P, 'Independent full invoice substitution')\n+ need(sum(T.values()) == 10912 and sum(P.values()) == 64372, 'Complete productive and paid counts')\n+ need(sum(r * n for r, n in T.items()) - sum(r * n for r, n in P.items()) == 752, 'Unchanged complete rank surplus')\n+ return T, P\n+\n+\n+def run(native):\n+ word = controller(); T, P = assemble(native, word)\n+ prior = read(ROOT / 'research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json')\n+ need(Q(prior['kappa']) == PREVIOUS and Q(prior['raw_root_interval'][1]) == OLD_ROOT_UPPER, 'Pinned prior conditional bound and raw crossing')\n+ prior_T = Counter({int(r): n for r, n in prior['targets'].items()})\n+ prior_P = Counter({int(r): n for r, n in prior['paid'].items()})\n+ prior_T[9] -= 16; prior_P[1] -= 16; prior_P[8] -= 16\n+ need(T == prior_T and P == prior_P, 'Complete delta from the final PR4610 bill')\n+ E = load('research/higher-moment-strictification/verify.py', 'owned_relation_intervals')\n+ other = load('research/kappa-rebuild/architecture/mixed_target_probe.py', 'owned_relation_second_intervals')\n+ def margin(c):\n+ t, p = E.moment(T, 1 - c), E.moment(P, 1 - c)\n+ return t[0] - p[1], t[1] - p[0]\n+ need(margin(OLD_ROOT_UPPER)[0] > 0, 'Changed invoice beats the prior raw root upper endpoint')\n+ lo, hi, grid = 0, 10**12, 10**14\n+ while hi - lo > 1:\n+ mid = (lo + hi) // 2\n+ if margin(Q(mid, grid))[0] > 0: lo = mid\n+ else: hi = mid\n+ root_low, root_high = Q(lo, grid), Q(hi, grid)\n+ need(margin(root_low)[0] > 0 and margin(root_high)[1] < 0, 'Strict rational root enclosure')\n+ need(PREVIOUS < KAPPA < TESTED < root_low, 'New bound and explicit compiler headroom')\n+ # The complete signed profile decreases on [0, .05], and stays negative\n+ # on [.05, 1]. This proves a fixed-profile ceiling, not a circuit ceiling.\n+ signed = {r: T[r] - P[r] for r in T.keys() | P.keys()}\n+ derivative, upper = None, None\n+ for i in range(16):\n+ l, r = Q(i, 320), Q(i + 1, 320); low = Q(0)\n+ for rank, n in signed.items():\n+ term = E.mul(E.power(rank, 1 - r if n > 0 else 1 - l), E.log_bounds(rank))\n+ low += n * term[0 if n > 0 else 1]\n+ derivative = low if derivative is None else min(derivative, low)\n+ for i in range(128):\n+ l, r = Q(1, 20) + Q(19 * i, 2560), Q(1, 20) + Q(19 * (i + 1), 2560)\n+ value = sum(n * E.power(rank, 1 - l if n > 0 else 1 - r)[1 if n > 0 else 0] for rank, n in signed.items())\n+ upper = value if upper is None else max(upper, value)\n+ need(derivative > 0 and upper < 0, 'Fixed-profile ceiling on all 0 < kappa < 1')\n+ t, u, v, c, b = 1 - TESTED, Q(1, 5), 1024, 20, 21\n+ target, paid = E.moment(T, t), E.moment(P, t)\n+ tl, th = other.moment(T, TESTED); pl, ph = other.moment(P, TESTED)\n+ need(tl > ph and max(tl, target[0]) <= min(th, target[1]) and max(pl, paid[0]) <= min(ph, paid[1]), 'Two exact interval engines agree')\n+ alpha = E.divide(paid, target)\n+ gamma = E.divide(E.moment(P, t + u), E.mul(E.power(c, u), target))\n+ delta = E.divide((Q(sum(T.values()) * b),) * 2, E.mul(E.power(c, TESTED), target))\n+ reserve = Q(1, 10**9); g = d = Q(97, 100)\n+ need(alpha[1] < 1 - reserve and gamma[1] < g and delta[1] < d, 'Original and completion tails charged')\n+ need(g**128 < Q(1, 16) and d**128 < Q(1, 16), 'Two strict tail decay blocks')\n+ normalized = 1 / (1 + v * reserve) + Q(4, 2**32)\n+ need(normalized < 1 and c**64 < b**63, 'Paid completion, splitting and rounding')\n+ theta, power = Q(63, 64), 1000\n+ eta = E.scale(E.power(145, -v * TESTED), t)\n+ need(2 * (20**v)**64 <= (145**v)**63 and eta[0] > theta**power, 'Shifted exits and complement capacity')\n+ need(E.power(145, v * TESTED)[1] < 2**power, 'Compiler initial range')\n+ gap = (TESTED - KAPPA) / 7; need(gap.numerator == 1, 'Finite integer grid')\n+ step = gap.denominator\n+ def wins(j): return (step * j + 1)**power < 2**j\n+ left, right = 1, 2\n+ while not wins(right): left, right = right, 2 * right\n+ while right - left > 1:\n+ mid = (left + right) // 2\n+ if wins(mid): right = mid\n+ else: left = mid\n+ height = step * right\n+ need(height > 8 * v and wins(right) and not wins(right - 1), 'Finite uniform-rank threshold')\n+ local_scalar = max(x['real_scalar_allowance'] for x in native.values())\n+ # The old route allowance is retained. Charge two additional owned field\n+ # lifetimes at two routes each, even though L230 uses an existing slot.\n+ routes = (max(sum(x['paid'].values()) for x in native.values()) + 2 * 408 + 688 + 4) * 1000\n+ need(local_scalar + routes < 10**7, 'All new preparation, COPY, CLEAR and fixed routes fit')\n+ scalar_upper = 18 * 10**7 + 15 * 1792 + 32 * 112 * (len(word['physical_events']) + sum(len(word['boundaries'][k + '_program']) for k in ('left', 'right')))\n+ need(scalar_upper < 10**9, 'Complete raw nonrecursive bound')\n+ bit = read(ROOT / 'research/query-thinned-controllers/RESULT.json')['ordinary_BIT']\n+ atom = Q(bit['atom']); ordinary = (1 - atom) * Q(bit['after_cover']) + atom * Q('.0000384599'); admitted = Q(bit['admitted'])\n+ need(atom == Q('.004') and atom > ordinary > admitted > TESTED and atom < 1 - ordinary, 'Retained stronger BIT admission and stock')\n+ L = load('research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py', 'owned_relation_outer')\n+ params = {'kappa': KAPPA, 'tested_saving': TESTED, 'complex_uniform_saving': KAPPA + 6 * gap,\n+ 'b': KAPPA + 5 * gap, 'a': KAPPA + 4 * gap, 'q': KAPPA + 3 * gap, 'bit_saving': admitted,\n+ 'epsilon': 1 - gap, 'beta': 1 - 3 * gap, 'r0': gap / 10, 'stop': gap, 'layout': gap, 'd': gap}\n+ outer = L.ledger(params); outer['functional_checks']['actual_new_BIT_stock_sublinear'] = params['beta'] * (1 - atom)\n+ need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 4, 'Complete outer predicate inventory')\n+ need(all(x > 0 for key in ('strict_checks', 'functional_checks') for x in outer[key].values()), 'Every outer inequality is strict')\n+ controls = {}\n+ for name, patch in [('old_BIT', {'bit_saving': Q('.0027')}), ('closed_uniform', {'complex_uniform_saving': params['b']}), ('unfunded_endpoint', {'kappa': TESTED}), ('closed_epsilon', {'epsilon': Q(1)})]:\n+ bad = L.ledger(dict(params, **patch)); failed = [k for k, x in bad['strict_checks'].items() if x <= 0]\n+ need(failed, 'Reject outer patch ' + name); controls[name] = failed\n+ bad_native = {d: dict(x) for d, x in native.items()}\n+ bad_native['backward']['helpers'] = OLD_HELPERS\n+ try: assemble(bad_native, word)\n+ except ValueError: controls['unearned_helper_credit'] = 'Rejected by the independent complete census'\n+ else: raise ValueError('Unowned helper credit was accepted')\n+ return encode({'kappa': KAPPA, 'kappa_decimal': '.00302235', 'gain_over_PR4610': KAPPA - PREVIOUS,\n+ 'raw_root_interval': [root_low, root_high], 'raw_headroom': [root_low - KAPPA, root_high - KAPPA],\n+ 'margin_at_previous_kappa': E.display(margin(PREVIOUS)),\n+ 'margin_at_previous_root_upper': E.display(margin(OLD_ROOT_UPPER)),\n+ 'fixed_profile_ceiling': {'decreasing_through': Q(1, 20), 'derivative_upper': E.display((-derivative,) * 2), 'remaining_interval_moment_upper': E.display((upper,) * 2)},\n+ 'targets': T, 'paid': P, 'productive_fields': sum(T.values()), 'paid_calls': sum(P.values()), 'rank_mass_surplus': 752,\n+ 'full_backward': 16, 'full_forward': 2, 'query_shears': 15,\n+ 'strictification': {'tested': TESTED, 'power': v, 'cutoff': c, 'floor': b, 'tail_offset': u, 'reserve': reserve, 'alpha': E.display(alpha), 'gamma': E.display(gamma), 'delta': E.display(delta), 'normalized_paid_upper': normalized},\n+ 'compiler': {'theta': theta, 'logarithm_power': power, 'eta': E.display(eta), 'gap': gap, 'uniform_saving': params['complex_uniform_saving'], 'H': height, 'N': '2^' + str(height), 'integer_test_exponent': right, 'word_materialized': False},\n+ 'nonrecursive': {'local_scalar': local_scalar, 'local_routes': routes, 'raw_scalar_upper': scalar_upper, 'raw_budget': 10**9, 'additional_private_slots': 1, 'owned_slots_backward': 3},\n+ 'ordinary_BIT': bit, 'outer': outer, 'negative_controls': controls})\n@@ -0,0 +1,64 @@\n+#!/usr/bin/env python3\n+\"\"\"Replay the one-relation native word and its complete conditional kappa.\n+\n+Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0.\n+Read README.md for the source credit and inherited proof obligations.\n+\"\"\"\n+from hashlib import sha256\n+import argparse\n+import gzip\n+import json\n+from pathlib import Path\n+import sys\n+sys.dont_write_bytecode = True\n+import native as N\n+import price\n+\n+\n+def run():\n+ N.authenticate()\n+ source = N.read(N.ROOT / N.SOURCE)\n+ candidate = N.construct(source)\n+ c = candidate['canonical']\n+ before, after = {}, {}\n+ for direction in ('forward', 'backward'):\n+ back = direction == 'backward'\n+ before[direction] = N.replay(c, source['programs'][direction], back, False)\n+ after[direction] = N.replay(c, candidate['programs'][direction], back, back)\n+ N.need(before[direction]['paid'] == N.OLD_PAID and before[direction]['helpers'] == N.OLD_HELPERS, 'Pinned source census')\n+ N.need(after[direction]['paid'] == candidate['paid_profiles'][direction], 'Emitted direction-specific paid profile')\n+ helpers = dict(N.OLD_HELPERS)\n+ if back: helpers[9] -= 1\n+ N.need(after[direction]['paid'] == (N.NEW_PAID if back else N.OLD_PAID) and after[direction]['helpers'] == helpers, 'Actual complete changed native census')\n+ identities = N.independent_source_identities(source)\n+ phase = N.phase_inheritance(source, candidate)\n+ controls = N.controls(c, candidate)\n+ arithmetic = price.run(after)\n+ data = (json.dumps(candidate, sort_keys=True, separators=(',', ':')) + '\\n').encode()\n+ result = N.encode({'status': 'PASS_CONDITIONAL_KAPPA_00302235_ONE_OWNED_RELATION',\n+ 'source_payload_sha256': N.PAYLOAD, 'word_payload_sha256': sha256(data).hexdigest(),\n+ 'source_native': before, 'candidate_native': after, 'independent_source_identities': identities,\n+ 'phase_inheritance': phase, 'native_negative_controls': controls, 'arithmetic': arithmetic,\n+ 'scope': 'Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.'})\n+ return data, result\n+\n+\n+def main():\n+ ap = argparse.ArgumentParser(description=__doc__)\n+ ap.add_argument('--write', action='store_true', help='Write only this package word and result after all checks pass.')\n+ ap.add_argument('--out', type=Path, help='Write a replay result to a separate path.')\n+ args = ap.parse_args()\n+ data, result = run()\n+ if args.write:\n+ (N.HERE / 'WORD.json.gz').write_bytes(gzip.compress(data, mtime=0))\n+ (N.HERE / 'RESULT.json').write_text(json.dumps(result, indent=2, sort_keys=True) + '\\n', encoding='utf-8')\n+ else:\n+ N.need(gzip.decompress((N.HERE / 'WORD.json.gz').read_bytes()) == data, 'Exact literal published word')\n+ N.need(N.read(N.HERE / 'RESULT.json') == result, 'Exact published replay result')\n+ if args.out:\n+ args.out.write_text(json.dumps(result, indent=2, sort_keys=True) + '\\n', encoding='utf-8')\n+ print(json.dumps({'status': result['status'], **{k: result['arithmetic'][k] for k in ('kappa', 'gain_over_PR4610', 'raw_root_interval', 'paid_calls', 'productive_fields')}}, sort_keys=True))\n+\n+\n+if __name__ == '__main__':\n+ main()", + "comments": null, + "display_url": "https://github.com/CrocSwap/integer-mult-bounds/pull/5377", + "display_title": "Conditional κ = 0.00302235 (+5.742e-7 over #4610): one owned helper relation" + }, + "isError": false +} diff --git a/research/owned-relation-independent-validation/git-evidence/commit/1ec1119972c9aefe42525172d07b332fcff81cb4 b/research/owned-relation-independent-validation/git-evidence/commit/1ec1119972c9aefe42525172d07b332fcff81cb4 new file mode 100644 index 0000000000..87c53f7af1 --- /dev/null +++ b/research/owned-relation-independent-validation/git-evidence/commit/1ec1119972c9aefe42525172d07b332fcff81cb4 @@ -0,0 +1,6 @@ +tree bfb420045d2bc04dd026b5020aea84d547873ef4 +parent 7c472563474e60185e6ca101a17622133d047e56 +author Douglas R. Colkitt 1792786762 -0400 +committer Douglas R. Colkitt 1792786762 -0400 + +Admit conditional PR4610 frontier through independent PR5241 audit [skip ci] diff --git a/research/owned-relation-independent-validation/git-evidence/commit/7c472563474e60185e6ca101a17622133d047e56 b/research/owned-relation-independent-validation/git-evidence/commit/7c472563474e60185e6ca101a17622133d047e56 new file mode 100644 index 0000000000..644749f746 --- /dev/null +++ b/research/owned-relation-independent-validation/git-evidence/commit/7c472563474e60185e6ca101a17622133d047e56 @@ -0,0 +1,6 @@ +tree 32f0a466021c5f549d7a538a0807b30c7ca9f25a +parent 3b785d5197a073ea3304f19587fd65f2b670928f +author Douglas R. Colkitt 1792780698 -0400 +committer Douglas R. Colkitt 1792780698 -0400 + +Record 91 confirmed PR merges and empty actionable queue [skip ci] diff --git a/research/owned-relation-independent-validation/git-evidence/commit/c448d13c71908647f968b06cddb795ce7d288139 b/research/owned-relation-independent-validation/git-evidence/commit/c448d13c71908647f968b06cddb795ce7d288139 new file mode 100644 index 0000000000..4d1d1ea199 --- /dev/null +++ b/research/owned-relation-independent-validation/git-evidence/commit/c448d13c71908647f968b06cddb795ce7d288139 @@ -0,0 +1,6 @@ +tree e4370e0bff125a6575ed3c073d24aa1a984323d1 +parent 7c472563474e60185e6ca101a17622133d047e56 +author Ali Romman <226877337+aliromman@users.noreply.github.com> 1792786992 -0500 +committer Ali Romman <226877337+aliromman@users.noreply.github.com> 1792786992 -0500 + +Improve conditional kappa to 0.00302235 with one owned helper relation diff --git a/research/owned-relation-independent-validation/git-evidence/tree/02fdbbad293e674b3e2300ee89b37ed4dc623f6f b/research/owned-relation-independent-validation/git-evidence/tree/02fdbbad293e674b3e2300ee89b37ed4dc623f6f new file mode 100644 index 0000000000000000000000000000000000000000..3636690bc87a774c8a9ef24eb5722ef76490420a GIT binary patch literal 9907 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 MHv5y?eYETU0CTHlzyJUM literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/19b1abce68e32239bd8ad6abf979584eb93ad269 b/research/owned-relation-independent-validation/git-evidence/tree/19b1abce68e32239bd8ad6abf979584eb93ad269 new file mode 100644 index 0000000000000000000000000000000000000000..623cd2c5465369cfa995a91a2b0a7f8146043921 GIT binary patch literal 575 zcmXpsFfcPQQE>Kg^z_xsD$dVi@Z210|Hd-m(Cm(%B^&2yZrblr9BK$r<>na_9HQ&& z@8hBybt_{oV9(Qy9(^KAUaQ9QR*MI-xir_iC$YoQn=rO^~aji?1t4(QzJW z=j^?L2FCiuHG01`PEPl0D}pKt_74qmc7?j|yu*>3{(>J_d;aROSoH2*t`K2+toAzGTHX%;7G2c- literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/258aaa876ecb530c4c173c8e3ef93ccf87c81673 b/research/owned-relation-independent-validation/git-evidence/tree/258aaa876ecb530c4c173c8e3ef93ccf87c81673 new file mode 100644 index 0000000000000000000000000000000000000000..8b24a7991ecfb62ced4315f45914928b0897102d GIT binary patch literal 639 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 G?ejmylZycW literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/2f781f177482200db6432209f21d8e7d662fbba3 b/research/owned-relation-independent-validation/git-evidence/tree/2f781f177482200db6432209f21d8e7d662fbba3 new file mode 100644 index 0000000000000000000000000000000000000000..4bcefb562a3f4877ff88fd6924a89264e7a903e1 GIT binary patch literal 707 zcmXpsFfcPQQHYPv%*!l^kJl@xWZ3aMAmDv_tIg7>{6ALypPg-X<&2FXL|I}^PJBjc zPC;r>F-RrL)#XlAp=DC4D@8AN+f915YnI3vn98Eel8oHclFVd~LWkPPo&TrXf1bem zs=M#9^PCgOe0QJlfl-D=-Y0u%%A<@Y8Q{l?UFK)A3L`EhpGaaRRS{T^^5sTMs-_?@6C40LOZXRwKXv_9r!niroYF({mo!N>W; zxtdj=svO;2{X&BEa#I-AEe*GoPCfVi=7XNMZZ|TY$F2~GhAMLQ3~>zc^!L+CPD^9B z!JplhaP8Eprqh!Chjcl_uQ^?ChN<)S3kmXc3Jvk}a|apuFXWTGBv(EVgO-ZP^M{9Sc z#)I>QOb??k%5E`eZcYuB)2)|)st9llarS^ZeSw}bQ`pW(6|o&X{KmT9J{~#d8wgbv zk9JURYB+4;5nUI)0G2%YW~&rNzwnd8>%SSKQzeMHCQjJI6sf!^29#^X_=2S zV%riJx@u#)&ivZ;9}98i;^=y*6P3Tsy5j8C@mUkpOLIzq3AG?qH@_$|Ju^?YD7B=tD39Sy1n&YBsmoPA zU->!Sy>s_yyWHj$h>pB`kc*VEzL&=ZzRuZhpWzuXt-oAPd8?sm+@}&jEB}J);xeQNyEt8}p9&HZ% QDNsFsVZpT(SN_QW0OlWrL;wH) literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/33bac32f5e5cef7bfd90295ddaf387a692c0b13b b/research/owned-relation-independent-validation/git-evidence/tree/33bac32f5e5cef7bfd90295ddaf387a692c0b13b new file mode 100644 index 0000000000000000000000000000000000000000..846d43f54d3940b47ab126502b61a9e5ad1d5f38 GIT binary patch literal 1264 zcmXpsFfcPQQP4}zEJ-XWDauSLElDkASU%}{itab-Q-$3=^U}Khtc_w#Vlzaj%uLVA zFG^*&%RQmw#9ZC83Ld%c3#PcAO#WD01y$u3l)(etQ+hf8szM%8{in??4g%c zoS(k6_yze(TtOpNBre_lFE47ICH|Gpsj7^)~FGd-guH7_;A zu_&`7BR91qGg&VuH8GFj%<^HVk(@OQ}cu>Jqj!#d1Is=as|33Nu@B9^~ z>Ts>nbJ)IQqjUti7U#r*#N^D9N{A&*9Dm9yD=jigUR_*$Duw%-e8+VO+&X|(tm@KX zDmu5TVbY%`&40eF*|V1^ryX5`UukY?QD$;t4#bY{GriJPls~pjKX?6LmGi2LGNo5x zNfPdPBrQNocBba;T9vzvkKyE!?RURVZ(KazXb-w2VL&U=fR>bG=I24|iJw~gYo5xp z$LWiow&rqP{dhvFmJ`1&pjBu8bYIZ2$asFjaaOy3m1FeMP_G|QO^NUb(M<*CrE{~}+qKd><| z00M=?(v-{+2Jab9CQ2{4@Zv~&!khA%C*89)$}NK$l$?>8oE@K3nwOH33Nng)w(;Y6 zqOqxstVax9O@H*&Mn}*Esub$F)Odu8K{|ByR~GA)rul#7@7d_SN;d!V#P(@W9eJ=A ziihdd%`Yt}C@q1c{{}ycup;3dOmb(vj~i{BbNN?8?nazCK~^1-KkO-!_3h3VJB|F6 z2I6--7Vkd+)lg8BT98--_JU1@qu!jSO3OPx``&tL_j&5~xvmaSRb`;qtc(XGe2{tD ZCa|0cpWF7iW|{Az<0%K0=1aU?4**7M(RKFs3kmY~@o^2(%PP*#W9U4>aCJI^%I16f+Ih^*Id{x{cY)Cm zqTJcvH^9d=0z-?XVSm=mT_2je)O{ARXvXpj-2we6?71Z?UBEjs-GsMZuvyArL1% z$P5fR*;`b1|H36^?}&xRUu5X;K$QjihXy&j21C^Gv&ppoZ$D!H@fH6Oi3q(p=N9jg zg{lj24EBa7dcDhY!JIP7)W*Fosf~sQ+T!G_V2Z*VeLP(pLp=TcK#uF1I^)grNo%vb zgrYFe0Ukf&QD#JsYuwYeD&i-P4YEqIl%Q(@*c=Y7mjWy$$@B}Mr; zIjKc@1(gg}LhCrr@B9~jM(PQZJL_`Ylkuj_P=#fwMVV=pAVnVq9nAiJ%MWMtixCPF Lk>B3`<;Y3^om!@A literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/3e58974508669b0b52f53c56371b5f9c253ece4b b/research/owned-relation-independent-validation/git-evidence/tree/3e58974508669b0b52f53c56371b5f9c253ece4b new file mode 100644 index 0000000000000000000000000000000000000000..23ace975155e64094a8f5b58de2d8f6b7fec6842 GIT binary patch literal 797 zcmXpsFfcPQQE>Hh3Gnyy3(?C>VQ5SD&`;(_=i~~1d7@xa%oV}y5*CI~Wf1}XK_RX# zy21XTLC&thdRfK!c?{08*k110@A9WwZt6NchBzL@3kRd28r=MSeEh>h10V|dz7}v5 zC~UEvvUbzMP3oc6E7+#KLRScMK*E!Ca~iWwMqE68$8_TKs+;>5h`8kGohPi@V zY3VzQ`CzJXuFUVVj+102mk2mnT0<2DnCrSZI*0fNL2P9?{yvGXjOWD1GVlF7XX}lQ zE#2D&RT<>!=;8}Dj_>y2g^VgY=hi;-f3KR@EY_sFxEih~IMgQuV%F=;T(hmG{1%;M zm>lr^R`}j0i+NO`%20yj&+iqh3?FTbe!lv(;>44W;}=|?I2)=i#4*?#V%P?)s29>Y z9_JUC9Ot^OBIU|qI;RAt$ki_x=zgF-`_5l}a$(OF&o>(%1|0eL<@e?}%fg_F!d!zq z-6El8@jNuTwQnES#Z{cg)Rr467%i>dW?}#Y3Mr`tsd*`>dC8fn#SBZLe{L1CoD?QdmH7T%8Qc|^FT^=J@e;Io1d9sd&jOUK_&Y7_uH)w5YH6n zmlh?bGL$?&+PeJniQq+(ssc1_o6kCt?PUTpqogP^xg;|!GZ|=iKG?XGIWs~{wUUCI ux!yUo3+lLw^!R^=sxC_{%1i@0>&e6?bE6_c)m}8Feyf=H@|yJGzz_fyVKtoq literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/5eb7366e5276e445e0298498d2115d8302a17dee b/research/owned-relation-independent-validation/git-evidence/tree/5eb7366e5276e445e0298498d2115d8302a17dee new file mode 100644 index 0000000000000000000000000000000000000000..8efaa4a725b0a7ed4e051b9a7338be95cbf9ce3a GIT binary patch literal 662 zcmXpsFfcPQQP4}zEJ-XWDauSLElDkAcqmh}HJTHYyu3IcjRn+yhk;pL$dMJALm`}g=$JnD$dUV`dYUjBe6KOST83(oxv?;V}46L`{(Bs*VU7S!z*cT4j7uYH?{!3CQ7G*UsIVQ>ph($458J;M#6i xo>WC?sM_+3{G3$X#G=fSjNH_c%w(|HKA&xym}NX49QG*tX|l4_%EtOQ7XV2p`XvAW literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/665cbf769f1a354fc6d5f0472d838d6167db6052 b/research/owned-relation-independent-validation/git-evidence/tree/665cbf769f1a354fc6d5f0472d838d6167db6052 new file mode 100644 index 0000000000000000000000000000000000000000..a3603b5e9c50d8e00cbbf3f22dd856677d6cf1b2 GIT binary patch literal 641 zcmXpsFfcPQQE>Kg^z_xsD$dVi_%dPdq9gsKZn7D#&YoAj^mb=y>&Y`M?V+cfFOS-*I>Qe6owV6Y(31)4|o@^y3b&HRr%BZjZ@{JdV*XXU3^_Zitb#z z_SERv$-1j6rdz~%y_n>zq9_Vg6zm@wqTcBV?N(9K+VOmhzZynn7x zbs>(y-VjBBt6QhF9`*jJtheDw^-=kI&+RX-H!%PLg~X!djLeeMoTXe{bd6Vn8PjJgvmBCcxl@#UYq1`mzcVuNR*yezvjdJ;bC{D@}?`wlU*peVmA zH7_wQIhA2=C6{1*Y0&+qVvRpr%nF~Z@d}&|HMA%-Ill;KXij2gF37y8Kjy75lUx(* z<>e-@TzBH_ogVWZ!<81~Bv!^J7iE@YCMV{ARO=~Pyj)#*v3tQC$%xY&#f$W(OkE4H zy`(5HuQ)BWNH?)G1sFOfUx=x+s8>Z^{w0Z~|%T9lavG_NERm|iwd zvXQ*B>F-g$AMYNNM3lt4r!}5|+74D%8DE^7UjX)a^+i`6aVG8MCJc%~OO)g`-J7m= F4FEqt0~r7S literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/6d000ab094737cb47cdd98d07bd06d19d13dda52 b/research/owned-relation-independent-validation/git-evidence/tree/6d000ab094737cb47cdd98d07bd06d19d13dda52 new file mode 100644 index 0000000000000000000000000000000000000000..35794f6bf257ce79c8586c44963fd068b3632ea2 GIT binary patch literal 1527 zcmXpsFfcPQQE+s34{~*P3~|-<&IJ)6Wwa6ahi5&i=juo<5Etp8kG%xhV|ZYq#)oN*)z$ve{7Qa?G9A zHzo5FOiz%jtFEVCn7>abNVRTwkYfOHP{t{2Wbc`0d?>5f!H+p`gOBiZc1NgIU|{%# zc!osk`g%sVy68H)f`Zo585kRoz}ctZb~{T&`jOoH`Ul)61+VxxdF7yM1-jMEGeXxn zGz3%sFEgGCI!&{8pZKIc?eq?=4$G5M4?y*M`Fr|>=sNj_`nfm;MIyU*+2f#lM)B7Z z3zzR;DEqx^w}|tN7^o&6VBiEfhJ*&Wg2LpKKuOWoFrCMa{z=(c{sn6yH~PMTDunpQ z%|8ef^T^T7)qC*Xs#iy)Ufw?@c3PZ+C0#8O<|C*cpcW5Z_aOh!02Ga(kGl8SOjC6F zShHdJ4`G+TQF9rlp;!hD2TYyD$$yvkcY5DaxqdQXN|Rnj)|^;WX9AOmyDKn(B2xd- zC{w+5Zrj68d6xb-Y53#1kj2*TP|E_0b&=8~G<9J_oLhoHy~c?&OCz?5IWM1=g#;hm zG6A0f$U&6GY3g?_V~ySdE@Ky|ue!GqKZHDo>J4&rbnyj;z0Z2fyKH%{6{n}2mHwub zlqtuhwiBu-*wfG5$5q$O)78gC7wB9pIpE#(nv3>}nRUa$=Ks*k{kix-%A7MW-Tt9L z&aT0b^e4)k)j#|4zSzw_#P{s-nEb*Z?3Nf*U1EBAQEGZ(NossXd_hruQmS4-C4!DJ{v&&x zH6=bdwWuUBEi)PDJ&=uGwo04!{kJ({w}>IYR_yuq`1Ip@pc=FCGxJK~lk!XRQWA?Q z5q3F$UTZe(R~qYOy~(G1_VR7%U9@^KR13t4wEUvf;u54_m>nd%-(JiuWpRFEq`E_c zeC6howJ17(A&{P0g0RB>K-7jt3&rl0ALhk$Zu4Bfu4ba2i2)EO6z7)~C8riMh-TVm W%CRbce|~&jfy1V2&tyXvECvA6)+k5- literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/74c4ba5ee249a16c2dfa2f82925166545463855a b/research/owned-relation-independent-validation/git-evidence/tree/74c4ba5ee249a16c2dfa2f82925166545463855a new file mode 100644 index 0000000000000000000000000000000000000000..6380d47b261f03d955217c829b82d9eb726792e6 GIT binary patch literal 80 zcmXpsFfcPQQ3!H%bn$i7%S~Yr4c}BcDXUy={zdEPo1ed24qUE$)WiS?6p~8Q(o&0b jlk$s-^2;;x(ivuZeVw^Agj@Em>xnq?B^t`FG%Y;KP literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/8bed1ecc75af648c4b5fbf888b902e89ea94de00 b/research/owned-relation-independent-validation/git-evidence/tree/8bed1ecc75af648c4b5fbf888b902e89ea94de00 new file mode 100644 index 0000000000000000000000000000000000000000..f79421aac557e1f852a513a9f073b35825cc0d0f GIT binary patch literal 663 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 literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/9b4af599b5540b1ddd45c85e37a42823ea293948 b/research/owned-relation-independent-validation/git-evidence/tree/9b4af599b5540b1ddd45c85e37a42823ea293948 new file mode 100644 index 0000000000000000000000000000000000000000..a33328b0324e151a7be91a4ec7bf50e69d619522 GIT binary patch literal 85 zcmXpsFfcPQQ3&=A4RUr3*2^l+&tuS=Kilro+0RyaKgDI2@cobJuPxYR2vJv-T9lbq m8J|>|mX=yntXELU5EaVock-D;>6Jp*|scS;hHz z4C-5+x^oB}+WBu)$nSq`)%M$Z-)BIT1^b5vIlBf!)XfN4z1u(S6W7|Vt&Dm1nkCP= z2hM@23vmqghA8@aU*-SfJ%JisTWdo-y=8Y~_}0FJDhhKA@^p)YC~KH;-=`rfCvTqi zb5-jl0^%;WHuOT3h5HA&fEDSbS24s@?rqA+S@^uEEN{U&jb*aJ$;=m_>hcmxGRso+ z3Mv_PsLZ>*Ylc*1_oAj{>sH^8O5na_231s0l$i`xlTg0)yN{HpUwkEt;P;ZH>aMSY l8lh^+Qj0RvDnSNqoL|ecWZ5$*uF}ZpJ&yL19bdSM0{|?%fcWH8~A=l|U$HOJ!j-ieYC+_}mRq$3R>%1Tmm3vv=m jQsa~IOY>4ditnBXI`T_N{M>@foYW%SqSUm^oE(OQ(-lGkzMt3M@}!vY^Q~jwzE7SVWdc@NlA2eX sU!+@HQk0ool9`s7oLG{XpT}@H;ZuyDiX`KFUum72CDq#>yfpj?0IRSj!2kdN literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/a9b40c52daf304d6a3276b101d53b307a99b4275 b/research/owned-relation-independent-validation/git-evidence/tree/a9b40c52daf304d6a3276b101d53b307a99b4275 new file mode 100644 index 0000000000000000000000000000000000000000..2383559de19bb1d5c68d464e1135f4d83453dae7 GIT binary patch literal 6708 zcmai(c|26>AIFL87Zp*~QryaD$k?Ldmnc$}EGar>j&aQD%#0HdSNhiNQS!h{LoFqz9j2^=yC z!%PlFEtpoP^SN`?UCEb2vFZaUaAMo?y8rWIR>AENE`iKquu+)9L0C-TwHYVQp4oU{uuj%wKY;G>)P^{ zKT*VVT&ReF#L{6%dL0EdJH13!^84n5r#)f_E`(BHL3Gt`Y)YpzS{?0lFuMlLu-N)X zUgtLfLWY=Rm`;bdV>g|b<=LWgE|9auGj`h|zhMKX&9j$Yhk^YI^ybt{L7JlkgAI}S z$H3&GERpnZO)n<)Wp7hXYYd;+dp5gktICVM2`D-g1*2GOPsF!GCw{y(q&KV0De-i7}`#pYod>ltGhk(3HLBd-~MGQpAb$0NTt z7w;O?d;b$YYCp0MItW7$$SxFO(g+L|17-?NWwObdj-E7oM&&HoZW(pzpkDk}jZu`1 z@S_K8VU#n1Ly@o`>r1a>YkbzKe^vWir@CTty^k$%F)E(pCp3ST2$RhdIJJoPd0e=A zbL0WtHSfdn()`Pup0-T{qf8hjn2`u(i?G-@=#tKs!MQy-(OTg}Sy^$Y{+>$ltdPSU z(HZHsw4uk{Gpg8bI+ISMr$Nf3-!*>#ubHq##O`GxC>qo3=SCp!4LzXM`0T=iG2P2$&R$0_8Nwg zmG{@f>Q=j#;6N0aj*tml7Mn$9QAMgco3q%Kd&J{*XU@iZTvkt7`4LS=0Y!nRqMc^x z@ppg36(GlJ3a#>9`a8XMjFo7{Z4pi=zj_E<(8oYW6Y4tH>MSl!W*u#R(BnZRPF>~_ zZ{490w-RTgAPQI=KQB;-4)(h2%HcI zMVM6KK4rejF*eRU#n*=PWp?$Xw3Y$Aib$McQbuZ=K!tczcuWR<<*Bw*d@i}zuh^Jj zZ1;NJG7HVQ;yE!Hc=C6)+}@|&9!Va(x=fetsP4P^h2mkMEIOJe7m9kuX`H`Z#jg9d>^XGGxiFa=RJyXxco?h*#a@K z^D>yB)YL=i^g zwcojR|J~sUyJqGNY;x?Gt&njFYyZK5#hC*{LUZ6zRiNMDUuIt0N@WqUUCaJYb}&$9m@1&e<7z;ouV_#^sm(T@uqD~=^6 zR3N(J$+0WlobFG`uV`JrqF2Xe?{^vJW7#zu##2CcQt+UfP&Z4cEj5h0h*aGxmU2lQ z*!YiK)0N!bi70G&eCj*3)W#>FX`Z!lPT#`L!A~inU*3sO!6?KKsg>qb-|Ts2S7i$g zFMOE1;BNC@d%Ao?2o&b>P!WZz6Rp|2+~CEz;<@QGc?s^VFWeHmyhh{{0mx#I^+JdB z`i;lqw6#e)UoOnCrx>OF{!nw{B!LqK5(x?)8y-T1pSyyfGR4q4Kqu*ESi3Z(vQRa*Rgw4Yn(p~dj#OJRA%_2*_6K`@<@V3A~KeYcEe}Gf`+5b!grDyGedljR0Un2+G%Me6_*XdP0-SsKKXGQf_;W_W2TntTyFU z(V31>Vkj|#av`hvLUga}b+-No*G=tycPZKf>%@>kzATcYl^z}W_+-#6Q1{S)@-vyb z_FG~Ikr6qipm@=FhFAK~s}5-!dxf5Sxj&0U84+{ih$I4KQ^~fKf2mUptzFLTE?t>5 zYR*qZzF@@y9CDcy(i+`FTTp&qC8=}WKiBI{J38xv)GN(uO zR5dm1V_*Mi%SAvp{3%3)cHB9$VvdGMlHyQDV{no#hK4?C7 zKaQj%S0}q=Y60FhMq2!+Pa%KmyCo`HpLjE+YOfnwXe`;Teo(ehtUr;U4YUq@i)@Ks zqOuh&f9~*bTkMTtJoj-=oCt_5oHku^*+$$aULSu*N!tCf%5rUx?Rmv9jz$m>KkW|& zb}CKRP_h{4Cpy0D`exNzj94%er*3(Ou>PK0~JGsC0vv3tl@BW^&_`t-YUQB zGula&e)zXpJT70rb9qcypm6%~@@tgZ<|N)Jk)+qNPBy6;TstqY2HJ%G1Ogf{i#|s7 z`@AziUCBo*dlM#Yud^F6a5%0ig;Ovcyt9B-26{1%F1RyRc*WMHkm44rpE0kA4L|#) zMS15T+#Xyi_>FJ$Jp(@TW5bN4O=dpX*UksVlyX|F2xg+T*klmN+wQz8uM>RbDzhB! z+di#)I*|J)}98EX^M_>zFdAaC@fB0ZPLV%}_nX-1;yM6Qr z4XZ;%{kV_E^c1wJ`ckks($uUZ9YYn~KptIw# zf6;hXZ>K^!x|KIsInKFeId6!)KFWAe3&j(B0IQ(Ub7(LnQOIjZYqc{JKGgficxVw8 z-Wl&$oHkTbnEIlpNUhyTo%w84o^{=Z3E-f$c^aI{)ER@J=Pf zq+go$OQ?68Rl3RlF5XBf3B zU4mNirP~uwBB3#A-+iI&>ieA1YRzA#JF|EE>KMSDfa6Dq1^#^iM}oJqpJjkZ2DrC3 z8)bg&J^8`(V@&urPUp`5_yXQUu@tnf4=&xobD!ORjczb^a>4VeRL#*-#iYi#SI2#d z^3mTvuS}4awkwg@eloA=+k7v9PcV0w5V#Zn6vRpoih5sr9+*6*?E7||#;WJ#yqL-V((0%U8r-+MXjhm`2@^jYd2;KwTNyn3 z6fx&WTy}ifVYs5;P@fRJtm6DUhG*H9$4Z#G?qAa9eJsuzdgts?{Vb@mVE@n{XV+ke zx<9{HtTKGGG5Y!H*NPKQK8{~-ed27Wx)8@;Z-}CFpT0?Zda}FhU%9b7Z=Z5=1Gldf zR8g3#pNoGGR9TtA?%Co>yb?9r{t7p~IrsPd{u6LzL7r}r5M}vA4j+vL_GEf!ns6xJ zs`+r=YN?Nj0T3vZrRJsN7cmssR)qR&o-t8banE^$nE`S&>$IGp=9HxtWu{f?6;v{K Yt1RVA3@Ofekl^mO3R7@sSG@Ezdv4yTJE*D^=sRP;NyJa zT+J#_RgUhiej&knxhV|mmWJC(r=I(M^FhyBw;P$yV^@eoLlrrDhB$_J`upi6r=>C6 z;LmPLxOQq)(`iZnL%JN|*PJdm!_@ivg#>vzg@$14*q%ss1v`DSZ+-bG;#U$5+2Y%NdRZk6rs`2v=0UE>* zdE>!(L#Bt(7iG5?G&iRP%jwojKve`dhB$jboxVU%nJH{%q>9*%9)4rpZy%2w^9_V5 z3vzXI@pT3HZ~FIF6RXe9)J|YK_J5h^iFXVMynawc!TzB^&aT0FS;hHz43{VV5lG8? zq!HVez|d72+jZvGw*QcLOe`wNOiN5IDQ2iGtP&GexNmb$S4?Re?<$2`g~9buvl2^7 zfU#Jdnpl*a0kT&Ag;%w~#z%Px=lG74M@)GwVR-Z!#JJ>Cka?NOiJ;UoX|INqy5mF@ zeF;;Sudi3DZ2u;x4pEkppIpqK+O?`Z?{qMakGM^r-A|kI?I*;FA<}92MY)MN422T< zee5|?luhIBzS{39&9nB!(RC07xurQJz=T?ms+(VwnVy-aTa;Q-T9n7|CW3c?iqz$* zpRfEJ@7}q4v|Vm<3q(g=KFCE%S>Ma!0$=BBx6km5nATseC-N*AB43bLlAHllF=hX+ z$mYK<`=4HY{I$p9@SDUiTj>#A6zyu zXP0q2H$(-{r9gS(Kh+JjFJG)rw)=R*bp*&4Gjj2X?0tyJ15X;BnfP*U1ZDT+#> zB+8O3?UokHLmP_vopUcUL-l@t?;p?GANOajvs~v|KG$^)eLX$0k&*fwAC`bB5b#*u zK>`LJ$%$Ya$1rF8F7fv3c=t=&*zj8$$4C$SPo1hyF{Y6CK{OhJ&*$<;Odd6WL87r) z0p5J%%IFmpkAJV-y+u9Z$p;Ch+qN+6$2iP@#2}M6EDnRj;qn5gY!Z{r=*9ec0sROx%i~xy> zUgzZq$;XVd?JBc8@vn_YG;TmZ5LhEPXKoOW#N)CVBtC;dC(&u%Ol0!4#^=!!=2mo^ z3RT&*PRaa%)h?b8OK0%}VWbc)&z~Pir7=hWEDkFmC;)L@`rp;iQ@3yAz3D{CYn!&; znfFBm;xmF791@MnW|MeSIt%;*{6EJZF=J=lJ?bv8bjygBZ^-qEHhpGN#NHT_s7xkY zV=A4_1N$Qs-O_t|bB4@aldmf#5Wc1T}VjSr&Kq@DU#AEod_yPu4^=-*Nn^r8FSgQ4I?2Ioj zd^Wdbblnny7%U%O0m+*s08``fSPULwQ<|jRJ;s+atkWX*lR0To&+N7={Bsi$Re#7P zO-(;UHjke0*0nA(AXWdllHsjcOT@qCa5-$S1XLcFS6~>fW?OCqZ)=)+-OQ!d?rcBR zrg^L6LlbdOU=W8U2;wnF+&}@kGmf2G5Ah?1-|Z!-dxZOaEIntnBozlxNL;YOfm9Zu z{Fo-^9xm(h_Ppu&>)DyQfzfLy4P#pDg@{0XeFNb<_%t4a!9g~huC$+IHB7)*z3f<0 z9qHTGd2bsA1DI3}7e8Q_jK-wo9k-Y-%9ILwWoO66G`I|08YYDBSpk7;MyOB>2ATh% z$aU}8;oQ=PS;NkMG3X{w+A|%8cr(~6D%7wrHY1D_zyPP8M&g52V<0y3!u+Ox7;ZId z?5?_!ai65yYRB%vQDB{bCVF$}U~S6=_IwJaNo;IZgna()aN7%&T1 z2yB!E&kVobRC#HBKlX=BLui;>Ylq(4AxM7)kHcVttq$PARY97|w_fzKY?nN-fEwbq za%JtIO(s)^Km=44n*=ujoC?I`;JUeJlehWO+Xz(x0k#rda9})u1_7M~7KH;Q1x#fymCd4~TYymJ z*p`)PXe6$Pe|ElTI!6%qJ*4&j{sm;#!{~TBa>XR_J#~qU2~jghZ6DNxFx1Eah2^1k z8JOrmE*}gAtjME?Bl|8CnLk_q?d#6nlQQ)#eq}!=U;!*XALSi#sR zuNzsrHe@`PsTsVr7>y{4AXxS74@6QzUdchm$ce@e*GNTGgry8G&B0c>Or3awH2_yIr&r4 z!pO0wZV$|kx%l?B-@>A&8{e15C=Y@LutI@TLVc8g%JX3e_^6vQCL2kDC437 zJRP{hiZ?!Y@0%`HfP;O2Zjkg$NML3xCWGUHf+!SZ-!A$Q)!k;?iqo&#kY|1gKA9{Q z0r3GgANq|z;BUYwAql8~Ab5x#e)&p7ypiIlPnt{tX?xhPWpxj51n^}{7K076o({x8 zmFLrZgLuf>MQyJ$TcZ=4kkaKDSN30>QPlZ)D1>iF;`?%WAUqL}cq|_l(7G^0=H0ET z#+zPSx~=<|oa)?ci|l2t1Q7Tl4%k#U6<_EN7@;&@D#wR`xCjauYx=I8p4_lN?RMo0{97;q8Y>WLUKk1U@ZMY= zj~fE*h5F|?2V;M~R=!o&le?#U#k|u~)EoZ-V>37~S^-X%$_WZYXy#3yZA&j1-D~aC zi_Du_r1!{vg9wGX1AdS<7DHgRf-QJ>T;L%yr?WVhk+-0Dl*XIP>LCaL3#dZ?3#vO` z0NfCaSqu!Q41K1lF+%PLeLL;4{nS$x>NOiaG22eprS^#Mfm}MU_545 zAFO)OcwU72bjRN>e!KDN8V;_`$5Da4RB$lBxn$9UfDINqk@AxJPDa)qO!_Eyv_^kQ z&8`Nyu@yLo2f_g!6)a;QE0`<5bV3-r^pEd9JlXQ;(TNo2S4-YF6qSD8!zFOQI17NG zfu0-2mPqJhPDhmW+pnLFYnUp;H{_Z*O&%}yE$|8krY5Ffcr*qpP=NR@-TTqs>!Qz8 za%TJhPg_N+|H*$tKd0yc3`Jjv8Dn*H%1HOSYrL&<6=gP4-8MwVYU3C_m;@<^4gc#4 z)*5P_ft~?bUr*l<$taz?h{qazra-#;2+Osr;b8IY$pkDc0C&E=VZfBpg1i}o6Gy)L z=fo`fwXNH$SF@`!S1U))_2y3@j6*~10|(VWFefgD#sV%KwSQx0*SbxP11l zk_V3Ne?BP+2MX9!J_swgK!1VmQ3C^k)kZ;lMB{Y&vJCsy1Q+!Y?j5xGn+mN$=MX4v z05I+#Mi4Xa$c6el^-RhddXMTAbE!z5Zs&VD2s;KHJP8D^G%h&qOe#3EFdjqdC{K@a z-X6_6a)2^(4Jo49miur&E&)Xl@s`^_YH@ zWd^AmC)J2!eHm=9ej*r)1HxutkR&9ZFAbme^W5GYd%o}eV4rR1s=G!U=MUC^ibaa3 zD6$D+d2M@g`@9D@7O)-9ALgnq6Ni9|1e^>I{E%?N?h{1i(UC2NvVJtS^|xsn zcB+@}$GNn#rVkLXP`Ech$HDRCkoc@n5)8J%lEP>exs+0O!A7xSZp`HH+i#a&`DJ}Q z?&Cj!Og7aAxwEikg#Xk6>bfw?_a+YhTO;f3rr`)+!l^#s&_e-S0lII#SlBJ*j@8Py zP?-Z9m8So?g4cPT;ppcscmBWdi0g92*^%8DW_Mf5e2?*L-r1Z}AV47SArWCT9b`w~ z9K%!$55TJ*S{HvdsLY!DvE^Wv^U6lvFXwrfG;ae^0MJJU-3NRN!aQ^b49R+?21cfI zkpY0v1Yc+mqHv+#y~0$xDf^hr-9fI7=1=46-L5{!BXw0u^)NI z?vCo2er(qPf&5}82OLXf!{88GA#@9v0z~Pg>5&OfwdNfTGcn&fF~!_2k9~j0=X3^$ z-GSi%)({->U{Bzs)O>n)fwtkCDlEW(Jhqa-& zW(fsxg4k^6QoTWz$S3KO4Uv=48VMm|I6luiOs;=bQC2Uj?8Og^H^MC6MT1~c2#YT8g;o$QGLkU=Ks24D|WXI(R*PRqXW&0y%o;|!c_3%xf%sEk-MgQ@<=(PcO zHjIBy2T>xlLc$r*_%C-aG`Ub|TNC?zjlD%OKi}AD(9jql=mS~{7X$bm;ES<I zr^GyF;o<62>tLaNE=yTl4#l@U*y^JtW(bS=SK6m zC){@1B*&&LgMooyfWqX8%|K&|uFx6@9oKiy4vb&quT>wpX3^?PgU1MTl|c;vUY{lK zWd^a)iCw;0V61(2&iv&!WPCs0_qmPOz4$&zl+aRu6akzy5V8Zs;3K-WGUuyP%kMl_ zJ3^k_bkzPt^IAN$^%h!xj3%H_0l5Z~0?Yde=Vw3EzSz?nP-tDAE^~XdJsvbc+KJ%C z1R)?*2P%lMR=A%Uaq(q^V$sBW-4pAFXN6L3-h^=GcBQAa+tfj)kYHaKoXE>tuAYx5|vq%yQhNbamv80u!0ocYnaJ zj1EiYU<3x78)^h7`V=~#9+MAvywi88Y1-Z+(9v5U%erhcT}$*EC}D!e)?hUWa^lVH z-8R7niI#g+DVwgepJ#l~$q`yTaAJ%w!wL;CDu_lkB74)2B`!-0;%^vOC|#d%a#Z2W zRBK)bVZq@!!{|H`Hv~))tTLWuBRkv|-nG}e>gh5}Y5C)Q>a~aE&bEt&ho(Lx;Eh>; zsuAu6A1PnFE`=)B{(5)8s%G2y?^6w)4tq2d#R!F=HnD@qr;?dx7F9i+=bD;WZc!f} zdL^p{&t*`y5$0H894t&tAbkL{_qOnRW~U!%_-aNkC|8`gp!a^L7oK+skwJkt6DMYg zk*n`DZ&#}3+g$b<5xeZ1PW-wQrR!pY1QLLq6D|y3Qh*DB_66BcRqEt8-fT^MTYu}X zR8QBZS@(|r2?X|m4sAXpvp}>C7-u%nH07Y2$5M~4y<{J6a5y+S=|7)<13`na;Ftmj z>`kTlg9sV~_$(yy+d-tfqv_qn4PHr+&nC1v&5FR&QFMZ$r2v!$7tqcyIzq^yIY+e) zrX@Un(yS)cWClX07YuPhfL&#yUQs~x2C?l%Ft&ntrXMLepSGXpk;K2ZcD*f~Ejt7P z5@uh7Id1=ax!qr?<<7rsujEIymvC}o4e7))Ag}lXA(~Q54 z`ZVv6oEQL$q)|`ljkC(!lMAJpo73*a-*0`^E%iy=VWsv95rVEy#v*rMNKq;mrWpE6 ziZ@dBc){JO{o|j%Gbng}k}-J=Q}dJ1r9-BOO$~#ABd+XXd-{8S{Fz&ISIST1?6&&g zd7e^ZJ)HbK<@qWhbD_*P4jBGq1(~l?aa7XB12YJwq0Q*h@ zJ4qLs!+XP%u2Mb~PD~C|rcJu=NLQ=hQ|O8Sj)f-`bQaYIjdb9=$Od{eDq@?Ey?vz# z?V56G(5-7PHjON>dLSvbAS@8H@zBtSsB<8OZM*9ZsXnb*&R{RiemQ;5bNX*ZaRe-C zP=koPhB$|Oq{4Guo~Hfon3t!Yy#6d>YV;|4teAGw!(cUo1SW_E5g_%XvcvcSL~ah< zjntuEczDc|^i%uhtMC>aG!aPy1P&+#iIyAYUdSlj+QmPkoM((*@P3nEL~Y-hXm2q? z59sXxlD?4<68PlIxj?FuI zT`~D-|B*Gjzg@lb7YG~FXm}*=AdtKW_{fg>-3ii?%fPyBkJ;It9}+aJutN+K3W#Bp zcZ4wl4=56Jrl@_@H$jYecdHuZCvt{;SKII3R33AkoLDNt5}p*eMh;AOa36+j9j{n2 zrnc_Jp}n2!Z`sOs_IX6siKEc^nJCPlvV9odz+|Gzu7_|Ec3*b*REmtBUYk>Fd{Ux| zEUh7i2G-vfH+qCVLb6oc0D79u%9CmOM3J5_Z`76C@jE>)O(c>Apv6q|7XUYl1>M;C zqM0u&YQaJ1(M>573YCnkBtP2`wU0g_a%^vQh;+2?j&r#rX=S-OO^;z=a0PWXEITI3cz&2qL~p?H*lV)Y(BDao$LE;>nl$=ZyFJ& zeK=<2`sPhMaR_8jMdlW46toX~8k-n0^bHuuRJDF> z(|2R%8?c)5&+Zs$|H^o0v)BNHHAz7T7nn2wJYRg|>zHRvvtJk~+4XpwY^b%C0Yv~wjqdh z;XV=sIN(`*1it!uNZa==-nExqY8^`w)~ub8oa?>Fj^H7n&_96aNueOuLM*L|BmByJ zAO5m>n7^s9lTkZKB+r)uv;;7U&=vqXh!1Mjo<~;byi%!*UwQqc$CxU1(VN${PYL@4v9?ew~sjCJtmkU@<^C1i5p_#i34E@r|70zR#=soyKXf z=jLz!Y`kxzm_xuAddPCYz?>mmN|fnFG%EGi&+#ypi2u5KYedQf0p+vdNRdDm2OXif zxkeXKABjz+-CQ+#(uU#sr8O6u7^O$w*!hZZeukow3N|%;#Bxj4#*^<;vlTQJCsH1V zOo%a86FWqHC_jj?@9>-=(hn|~L|!}GS-!vhWv0_|rF5OgsUiV*-3)|az$$?93ckG! z8`=||RhBOFYPBWNWT$T0(7r&-`miB4MHG9XHNgrhOoq1s@_f;EWR7NCUA64IA3qi~ zZ@FOm!$u?y4Uf<=w6I2nrj;P|05LMMslk_f^|M@#od?Y#qq0WdrAAFGL}7!ChG7PX zvbZ6jC2>4R^VD|)@jvqC#j@nu8$KXXqsMK6YHVByjye2Lia3sZV1x;;NYv^!|?t>!) zJM5;5CI}&b_W^_^I5r?_7S2&*E%nJXQzJ6cG5l<3--Ns~Q(vhbk$+-ptyJ%g_kEzE z#r^N#)&mbY%VMPzI$__cICS`r?ch)G0n{xe~=Z+;Si46~& zGyuW*b{xq9VN>6o;o3hJ-Sx=kTS@-z*u~Z@ke)9NLoIj^hlLWoxN$}vksI9I%$ZKM zWz(jFKDJ&|ZM}HRAdr9stPrYRCc+XF`)g9#@-d6Pw@mPv^K`NLDBYL|r^G;L9Vw6t z_;sQMB!8hvTBAmvNu`29bXhoa-uYHi&JX~Y5)(uwFmXcSxzd-bq8bR#@4t$-PB+cxXFHE9YQe* zjasxq%xZ6-;O1I*Hefh_HW6XA&Xh_wF+vJ=zAqb?W3ODTpz5a^g;;8Kv=hWIP@xT= zmI1UM15*D;Fsa7e*Sj);YhjZd z)s;LxrM_#HXm04|&<+D@1M)l`1J=wCD=&+{i&958zv2$PAK4U>S{|cOB!(ekNoa=A z@(XS_?v8tQ=EXO^-ksU4HVxec9>Y6`1(@ud3$JFh+jmGF3hxas`=R_n(8?+l7ZwDV zX?-ITWRF&X?E~irO0*MGwBP@JuB&soG+g|PSQG}#-qd&UkEM})vS95)0_ z>Yw+9Y>i((@uPo9{O~c1Sz050UB?^lpz#3JYoKdbF+b2Zj1QY&5YrcXcB>Q@llLuY zJ6cbM2SYv`(C~X0Sft0DRDjv z3z*Q;U`RIB(?@iSV-|m3({@(V_DsOhD^>eWcP2Hp05H%8bRC>1JPZ^j#S}?iv;4dE!-CjyZqrM@ z|K1OC9p5SzIYF8Z$Py}bKp+V3FnM2#{InhEwyG9A_a<8!E*QV;(Q;$4IpRA+)PYf> zD&h6kVCu0YD`QVk?%$QMv$`^Diukf%CkHDJ!raIJ*(QC=YEILDmgey4c#ZGB-7a6B zb5l$P4gehipavEs$|m&@yDga;Ba#!mCXtVphRof;G*8%BAO-{#NF%Y#9V;!sjO9hj zoA;9kz85~LUo_^Ei_h4@ALj>(;RK+phlw3ij0tx) ztvM+UCVR{`?|$tlcbgAM_3{1My#LMo1BeD1sc;l(t2=C$+l z4ce$faYDn1MqRjVcceV;-aB=(8)wna%Vx`TDb5w{6=FchBm*^Jf?b2o15F=6?Bn{)C?=elL-WPzb+r#XWE>NzCSkfTACCT!4fG#|>x> zRFnr6b0rkBlODZ%6%_K>Y8t1=P>C)Y5vEjF-zyQ0AlVaxw@5BFlltcUZEk)JJAY4Z zZl4GONJn9dB(eI2p+?BT#O2Zfi!OQA9&s!zr0h(gdR2`6-zX!1iU?fpk~BhQ32*pb zog#&kA0OM!u=?L90ha`mKce&X9WvqJ6t8M-+9ZbHi(%ZQpXpDQiZGmf9uzbZuN;T9e(k8P1(HucT8pQoiyZeFib{zg|?B6o-IO9KN#Be3zH zDU&aNrwxl0l*6_Ubl1;q(_LnA;6RD;g3+>w+h7Qc3_x-RyNU=Kf{a`h{=vVjMn5uP zU(vkTcR2@0%d7{ZFd4#v4YHy=L0++=KGpqQ%gtqXl3q{eS#=8$#uQVbN&?~v@6P0r zjZIN2tY?h)&T8^0jc|^rj~cTj#>c1GFnz2jt$}b*PzGuQY<^%MiRcG0H9#KpEoHA7 zC9yb6-K5RgZA{umj_>C|Vworj0DF32w;zuS+8JRag}GXNGLo*nM~~BAtGVU_>#L!1 zqJl>951+w5fD$A`Q?PbQgX{PkN3INP3}I(CB?tX9ye~S0aGX9HS%E+sKy(;}n4fe! zdGmMwXAMrfQ-EULq=~9sq6iv(EXQdoGkPwvMiNP?GXkTXxWB zfC*&<5*-!cBgZb;^VM*c{GA)LI|nQDqwFFEj~(}2gmQ`(j=-9){g@`G)J?qmK4DH} z*XRsog}q002MGffjm7b1@O(f_jIoq@WMr?A%-(9FQ`_C*4OZ0)3_Jm%*w#V&X1Q5UF;C~2DlD`UCHf75u+zB?ej17cvm`V+vB!K2aL-=77wMVe5iU?+u>5CO;25&+;07fST`um2v~27+yr416W$O2 z!4V6zRX0^B?Rs~ibgpIg7aLqYWHp1|W!iHr8H-mOtLbCw* z93Ta70w6#^$eN$p$7xcQu6VKQZe!WK%`@{eei0I2e9&vWiz3FrlSgs+>0&_&TSKwNFx=N6ncEeQFTf9x_ndu=R##)Kgf#J)E~-YA{D=yuI7W8mXNYS5?TGYVvV zf?I;W57xj3cAtaD9pwms0>ZYQtVhRF_CN1(xKVlIZU2|?qqfD+iM$X;p$s=5b79j4 z4RE?hO7M=;iFu|;ZCA`Jr@e{mIDWs8;OB4%h?&vuV6lZWHbi`07;c%mW6k^7SsyAl zkFnqKFs9Q;Y(j98AOYsf1ucBYna(>&mjev7@7PV&D_ir+vMaH<4gZ)2`3_v4u}Pds zef9HX7wMQ%C@pfaWv)N{(sm;F1ycqQtT$>BAP0d=FxWdeo8%uGaeUbh^=q-y?&sy+ zCVm+G7KHynG%#1#pu)6JRu*X16nuNKdf`0T{U%3mSe+$4=7Jg>*82)C9RM!{Q#v3D zt^u;xks4>bBcb2t+qD_@Ptcj|``U;MDg+iH*(}h(AnZ>DT7q4SA+txVl>VjZC3_)u zb2opX=XTF5GfW;0-1OlK+eXn27mQTjK6-phUUrH=D|5+em8~v)RBCGf-ylTHhwdRC z*?ou1Q`*s*7JbKN*{-TX{!X)8LWHnE7b#FNd?d!a=dHP%H1esNzOPwwlm$iy)Vx7ROBw!P zcjwo#o#o`Tw@1b*va~1c!+9kzv7sRG+S#@zoKCmKccItIuG*g|w@y&&Vd4xR1cJZ= zwNhY%fF>b3vj(huPFNPVhI@O;vzEOwFX^KQhX##4I4^j84TQlYx~ZWF!`R3ep-Rqm zH+<4~XX&~8;3sS0r@i6TJnV~Mm0F}xjcVEiXWrDQnt%Kb<~6z4@Sh@sCM%RjPP-9?V6!%pf=bt_}J{ypf32HoS7j zutt|_FV5Fje~Kh0-I(4gCJNu35VUs{%nDnIsZL&TwYR2po=IQ+?a86`5%E_dgqj3c zQ|REmVS@~o9SidaM)+*oO->t{UX?!0HET0>m5utShRXtXR6tb}W^lreW6*#J421yv z1|M10Fn1EGGU>?a_4EmcC6m@`eDlW3x2(SH=>O0PTS;0%Vs!f=D!o8yF%p*pK6moe!OoyCbXn)W;D0iEkx62vlGo+}RHI3iY-OvwndduLimM( z+Vf);(gKRePPlUf?Nd+;X2dXI$jkgQax+_M(pG3~S!5wUZTd%*r-b^THi`~9@pwdM z3|iU%9maelq$@oADC<_FbNQ5sr825zzbbqaiJ|d;?qKa`LT5-6&9d2@cMR4fcdcpI zK5@sPbCy?D9~y_lu){_I+l1zm&>COlyR6a=Q%Q4fa6Be8FQu?=j7RL?uR$Rem=;(E zMBB&_d969|@BQ3qCMk{yefbnW|&+sV68_0?!*BetL(;;Aj=yj5ALr^ zcPG)zcBOcD<6J8N07nSu3F;(Zl7UElzTsd!8!_j&k&D8nt9;=$Mw5v_!NMSj`oV1~ zLOH>WJwQ_+!(Lr(5%?|>dvXh$0m**eLNzLTWqF!Xydw&%bU+Iu{s(LEMLQ33fvI%Lxvl3y@sNO!fd>VsmBY-Gz5Z+g1= zrB0{bj(dxFw z_iz2~ubkYI-(Fi^{%+=goI}zSc|2+#1i?BBfX<Mt{c4N zh3Jk{>%ViiB|AaM=5(CqJ+0wOJ(CB2&*H&*z(Q+?iJ3LEsXEome)dmKLEK5V_PnoU zF?dLcPYdn$=QDW0=&g%~H@kw;B|?uD)_yOQQrjixeem#}!BV*Fpa2dyJXj|TqPk-F z>~Yyu=hT-xk2$mDL#yJ-G&~{{{yy9nw4DIo9LY`o%gK%AArZT2!Ra&4QH)-n7`&nI zh6Z$xXooFy*L1B(Idi4X&wSSPL9Kqed*2DSM7*a77Xo|y!6E@W4R{f3;TFPT8SmfOC{M z2oHy`b`5x&6LQj~WCKG${HE`1PE>r$w{j|co_2|Iw;@MOQ) zerF0W%J9ZNA6cWjHs#pd*R%GNlXdk|UUF;OhTRwhzXcvPri@PDfV{j4jJ9e#^hwq zkLl+I$pb~tFjyi7=bc6c#2M((3}AtlnWtvuoz?f`njTH6zhqWrF-`kJJYLzxHyL!p z0%u92w_=ehs+a~8JwtC3M0)zhpgD)=5)yYFZM;Qy_LN8nT`@>J#@=G1hZ+ua0A%yP zl0d`b#yZdBlw9$8b2#@vpzNrd-LkiE8XX^lI9kju;)~WPQER8)1 z@224S7Xio0HU5}}quB!}-hg98);BiNH%4Za)LmPzxiP9B_IM~+Q|I^dt>5t^dhic` z=nNDLNZ6gO`zhO^b#F=ub{1QxT#Jhz!8V?lKX}SO5Dew8{s|ba!`^kok0tpcSMi72 z)rOU4+8nksG7(EW=@SzMaRh=W=Pl>BIFrtPV(y!F{?^fH&zhwiKOY(*kU?dF$i^F_ z-%nrX)UzMRr(WyHCJU<0CqJ&)RW|5jp~B(;@rEF9WgKqC{b#>A?Z&qo-RT(hIyBX$ zv1NoLNgSyMU3vf@PKB*$fU$)A$RtL9Hv_E^BKD~{TrLG&>2G-OBI0kxAh>VE= zE@pvv81M|lT_!+Z!l{NKrKPXVMz)^lS7Zg+=;*CDE;ro^r*vqHP<>O72!peQnr&#Y zOO8pY)J3?+yyZ{d5PFP}^u1zg2{BIiH5e7qt^#x(cMJhLhSfZ1*&E~PJ!17(p7F#m z`6Ob~&{#@zl?2Te_!z~Ey#4w;j_vG1qQp3#n8@Q~zwU^_`%kbC4BcmZS-^81;2{G4 z&VuS!{n9zU2Sy%ztku<^I#5N#(^$}k5qVorgfh?4BQ*?b4%APT8`apgxPu7sfc6-W z{9ym+ljDV%NdZ#ntCXu3`!_Yo+e9C7z-NknBqH3ie#KC(&XCyT<;rgQ6?Sv@$J*IA zpNJ*D7{f)PqpdO^qeea*UN(G>-p%%@-f^d9ceQxuPy2C^_-O{XwGESDDjo7#CL0Fj z3wszVVii8eEx41P_HoCvZ_Ehy;O_*G1wwzU_Z7Xt3<516DbP*v`Tlsp-CyZaqe{tj zQa4y7&&2`Q{cnr}tMF3D9@S>y+i9?BUgt04Rp)z)2xsgIe;f-BfgXawA>J;Fd1TWR zKS@cy$!FG1jY;a^(XAgJyo9r7;6^Y2Vksx21Q~%yl=siMd%mCXub;79C#^e2;eI)t zh{@59`M_L&>*0X1LAj>nd}i9k-c!`M0{X8_m>#Y=`96;FKs$6FE@orhH2LdHbaxygIXtLC3_TiUutHgCb-FfevC z0L_e4KQ5285i2~)Ie7QHFbt~tN-I;h->?|3js^aPJI`G6x_0HPUCa^I z7p<(9^HsD*{Tt&0m^aX*AJ>wQ;$~Q|W$j)$!#C^+Y~6uJ1PH{3L2%8mM2^a%At68S z>fGw4D<+h#w#r(%YDPyg^8zk`_!u3K0SSIRvdMKpUtM*lGLJeuwqWDRP2?PN{A*CV z0{j_HA%Vykwk$#u4pQW^W9INjTaMLnJ#}VOi`{wMdjrYyg{Z$E3=oRq3fhwlWQ)PT6AnDby_(+&DH~HaE$aTu0!5?J8)eBo|1LRiElv%w= znOBW&rE@dO+|}gNn}`(7pA=+70;wy!DFSb^5S?j;NJw&E*JsJORUeF$mhZgOt@bO0 zC}z^YopWGhMHUGJCjlTZ_u(MsJ+n+QTWqS_1{_b)tM^i$el*s{2M9qZy&^CKMu5X) zfu|hM$8*q8g0^UVBsKR?(g=@3IW4Oe_KuDS>?>RFfZ#~c`UqM&#M1vfLxYf$Uuw2y zx6R+5bhAowjKXeK7$~z&5A)nE7&l327O*UB&F!ymPo_6 z-%;^?bqPHmz8u&`aTf!DTS$1A1}BGnO8Pkbni~?7I5qqjZ+FbZibuq~B|s@Nff@kj zgBrwU!TVL<=?vs<+0_q03u2D1TeEGE>91FB&!$Ka0Tl5)T4Us)x7)Eh!eW6SVy3cD zA@gbJmFX8!&CKo|4OH0W)If|5mnSsTVmLm+3bR_;bGhAj!f4g;w9!^;zfFjZ8Ulo+ zvp~$$W7k}v?L(?;oxL77-7Ik!T`eX5Janw9;OF+CKyW`1G#ZFqu%3K(mWi**DCfMw z?dkQ&GU>JB3QYbA;xRz07E)3lpC92)>e|^!?r1G~9Nz3!dtCTA40T9G6lB`ijiX#j zZ!X-iT9wy(^>Kd7o6m$FWCOYY5Mgk&h2<11bku*E=+@=w)o9c3#W85@J5O$1ArJp$ zE|m=uO&I>c+B-;VF~^p#Z!@v@cvwqOUvBbzB=J>*tinP90gE;uFoNW(FiUb!@GF@n zQT^TC*ku-l6=K?5xE(Lpz^q94J$6A7GYI_0je3Ti=lqu>Ww!2+^Tb&UXLFgjz z>DV=f{o4IBBASdHCn95-^%kCwu1GwAlu2k7cV1W5IlK9`xSUd23e)L$Z+U5lM!)CQDS^L+XcQ?HEH;AyDf^rRzomA+_nGwI164g2T^@LNy zx;D5(j0zATVPiPRk8uVFPjin^-&rO+VNsJ zwvoSUw#qu!DSefml*Mq@dTe1k+Iu*G@CDBxfX}g#0Bq<3Y6I!Qw#)YxxE1X)DG$3j zRZ$T8=z9I@nL{vW2_LWoXww7-a_^wr2dd$8Bwb2jgT@jgi!~}PGtJ+8ty;S14&kx5 zzMQ{gj>!164y(S%KZ-H%<;u^by;RkPv#)``UQRVIc~pWmG^0 zf~q48KCMCo@6cZvQH>3d9?1*t>CfaQdhieb4x5r5^ixBb;L@<94xTDd!wE($5bW#Y zBb_%NuPmQAW4(WW_Y5*++v)#0_7d4KfdT#sB=vxchJs8Djg9q~rc8t~Q%dRS?$3L5 z60f$rpO+KZwN}Y~&`@FChw{DHrEXZ1KrD?Wohi!gh{Oo~E zht0N~6GHxqF*O7cG%DthI&1Qx7mW}8>s+*L_n8p}c17E({thuFAf>*gW`*k?1_rS8 zm2?cUq$jQF?EgCi+&93aC~cHRmMq=6uIKs2#Z#J3tXMIFNo2%e;jjgu!3ZC4Ol0s( z5{9z+_1kA;=YpdllU{qO|2W>1?^)h5R1nm8vOckBQ4eOnre!b8(Ol5<)3)WY>x`Po zMA1wrM`#B1^@!nxpZnUHUy3X*eJ#=8KB{@GS#ICyp@PI=1n!%)qWLp}ZOr*A=H+xv zxpiXqqy(ZA^cQg=c}v~xT%;9_OtshHziVysa8fkmX#HEBfpDB1=}{@eWMU)^ej292 z=uZs08M=aqy#6B3P>8z~CA~|p{#ZR#b>`yaa6P-)wT?tp@Gm$p5_|&!+%z9mpWNFM zYFyoU+gQu#=vz60eEJK{ScnU~ntt<6=j5p2$JBm$PCI8FdUm&%)xow~w4P)kt|zR1 z#DR(Cohx!bR`2I-RlVGS5Y)wAQ z*XfN>IM074aq^+ls>N})hZj5l8)quS`7c~Zp-0<{@-1oBqxD~!W#paw?|m0--;THE zFE1ip*jg{Su1K1%D|4u8-I{-j12AG69#vfa{#(_&w_EkpjjIRy?AP!X6I{Zd%VHo> zGb9x;&5%E6TUN+&t%@_zX;}B4Fsvg^op2irMB{WHw&UFE7)zN0XWLg-B&V*jys$?Y zaQ=xCsacdW^K59%mTsrunSzl|?ky`ikb%Dk0m-f*+ioCIv%<|$)8@3QS!^_ui8w2_ z=HV`;M&-ZPMWkkJvn*vU9=bfUI9juEp2VZ4nPYzwtl3}WiPY@%>jhQ8AzC%J_q4nv z750ZO`SnrvpYlZ0`|s#;i!!wb_c`q~KdQ5|u5_5Jq5Tsknw{G3umik@J^L(MWxAgX zj7$?;A9>)PFwx|uZT@bj%GfP6LT0*+7u2Fd$!rw&=9vp?w^8prp{So zZ>N$~U7+)Y)7BeSKU5Tsp-^y)%jSU<6XUY%&rXq8H>dBYt*z97KMnv|HU)Qzu_yKj z9~ZJDiEm_|u`n}{BR9KzFLd_y z1tpJIy5*lJVT@oNbL_g-{`u2&%C>f&T-dDsY(3ip547;e7KY6ClY z_XEWMQkN^y_afRcd_7Es%Q3%CC70^T(DtaVc+zU8Ynqd*FnOpftjdS-Gw6#wn7nZF zca#G!Tj$lMZ4bZI7kzI(w}Sl#625bYhVaJ1*|`g-XPFrzGBq_3#uYIdA*;Oozw z8DD8z#@p@{3&L~F}ht|ou}TawR61m z(D49*0CXSvo~ z_HcJ=3xDd}l>5?BZlC`n zhDXUB!eDt(Pjn~ojBEU#jCOsS8UHQ)e%AOuMhlxk2`w4%NdI~6IjOSrFZQHce4We{ ziY^2j3H2R)Jruv!4mmmWoubLX?{|eS5g1EcyO|L5AYzeBdKvzD0qUkv4AF&!Z~mR( z{R*ewJ8`CK8;scZ@WNcXq)2g7gF?_AE}|n1>A3oJO#C(5=BY2NLNdAqWYvp4lY}#Y z{YoS%Yy?1=U+gj+ruI8R5)W>DcXsRo-ATWcx84t47VZ1?UpPp3p`^YkVq%#T+_vnO zY?5_E`=Y={{rqzq?FPe8wgWaq4{8pDaASRBqJNCumxfT*nX0!74w=f$%N;%c$zV8k zhaRU|u%U)5_Bt|fx9`h}Ei+thlsR1ca(Kp^`it6y>b*TfxtTt~{xAd20Ox@m)v_zIv{ zKsmr_KL>k_>b9-1p}O9&UQKny#I?PYS1Tk8jsA+oUfYD1Y0z~v-S*x*Rb*h7d}p<&869|egI^;1q)U#U27tmfe&aU4)HSXIMcfd!A$gKD$3 z!|POzOtS2kj7{`WDoY>SMKeU640H?Z{OwB)RygeZ)(N8ENICjHzXu!42US(@Ry^$1pdbT? z>sa-#Y{@K*+oyYXnlJrWZ6YFUz%mXJ#?VLl1#*JJGOLa%9|@6tHG0Rp(skGN{!pn^c*;CHw#Ry`MgkH>!2*EahH`$F~=ZN$pqC3b#*N^Y8Bi zDG1do!uY@Cw~crgE^h4FGWx&sjBTO}b?5}pzy=;rc+HJ$V1x`D%UjzRP2cac!&QvOd1k6`Ob%; z(=R-~$=KwvU+q5fE=^IC@eh^4(??FuyB_?u2(gp2k6JOWPwnRB$`K+4?vL-$B@`{f zrO^YQs9y$H?yBGSL>SX*%DSys{~90SG<-%UD|#lkbkXx(epY^-gVkjr3oM#H=;C4+ zF%heR`xm#C$shb~5V+Fag{zyRUDfsHFJm9mkoWJLsYVJLc^SKAmTu3i*uAoInwU=| zmKOh-f@CK2X?}`$-#>5ki|^?Y>g!#Kf~5ZZao<3O5n22%ELg7zl9yYzVjEdGYpvIB z%l%r?+P?pQA)~LkmKBggNiX*!2Re#%ks5&uVQp(5Az&p&+lx)%jDE zovL5GH+YO>Kl^y`aiy?0AyN|T$s|}I2hS)06R(fFl`bsH1%u#G3icbswkI5HwjpEw00o=uy>1N|EwCr?&AD%Eei9C z#AwSgqNrCKgp7;N;Vyr?=IvcurKBpQD{|X14-E1Eq4-THScw%ryt3Cia$39E?=^DA z$TD`)w^kgA+9Ap((Vxefs6lH8xH<)Ul!=!>al_PjG12VZ)f%HMJ_RNjJq^dhYYvHW z3$Y)---o~-_*ieXv#if;lkMFDIzPAd6`b=N&*~k#eyCVO&=v>kqo6_oFVMplS!DIA zCXX}r^jPb8d|LyS+clLn$G#3h4!z|F?uTK$Hr8h>E@%oex@EoA?JcNCOrFpjBcgK9 zv4ZFgB$@E3Zmi2g)Sh6hN2W57`5&V8p0c;wCbfMYvUd0i3#-KV_k*PqR|!C~7VPrJ z0zqYp<@wF>1H*Q!l*U?AYi7uF`Q$fpu1$Yn@V{t*Us^$)@0`ecDrH|3(R;Wic;xEcb&`{Z zuA{K6274eA{4p_3`Um@nU79bJj%(bpZ(l+;_rwrA0rz@|J{k1sx(VjvNmRR07ZXn| zdr~@cjO`&WM)4mbgWX=xK``N)e%zaC-?nIWfFs+}cBoFXs+Nomi%6*}puWD>-q< z=UAT#+N+C})#ywU@G!}K$2sdxyG%G-{Nv8^*YbzHAI_G_`wI|sguwPV79IS#Gc2W| zAU*zlmDkj=Xdt}jL)&OVtA;IDvRN?9e5fPtvwChs9tbtFyHq4r@?c7STJxd+*lqKF+KV zgCQvN#RbeAK$D7ISlW8Z*epRtW~~4B#XDl=7b~6{Ybat&(XA%#jbfdmfD?i_9LPE0 z;Q+6>z6@Kdkglw}ay!|Dv?XHLiON%sT7%_+w|24qiU9EU4ZzELAYBFT9|4mNTA(cR zCC@Gzr7}X=krVSQV*Px1i|_Y`poyn*K`SZH1N5&S;O%#&#&jxjrbW;HXVS34^9w0I z?>Id^5MR|F{*PZkd&qoO5xmdAl_DMyn>qS-0`Ut~0tPrA z=wHPFc_Pul)vkWr&E`qRC|&m>)2-!uE`7GCOBy1a8w9UE0>y=Y)&)~zzIc>)6Zx8M zX>GevPI_YM&ssTCxwK(x|37{L89SRzKcbSlT_NMemQ9k;^plI1d;SeKG#<&y9rkJZ zy{vm-D^Hj`+WzeB)aE#^f8mg*mm~A+w!fc~FgdcNNJ{?0vY*di4*3{+K3LSO2i3w* z54rlQMi4#L*Wl&e1@mXVpsbpy`;+L{1ZN9+OuR!>_?qHo?v7^xn!^r$x}y`lwsb0U z?Z&r5WMQ|?z_U7d8)g_{J1qWp$|^m#`JbbE65{;W^(F0N2ak`yfE$#6Wr2eOovVv= z(gfKXTO@i7OfLA0$aW7kd?zCA(7}np;61`76{T6b8eSh-dE=$_o(1g^1-5xZjwAs< zZ=Qm_(AjDdh2IMH{w&qjTmIB1TOoJvu$6xw88n`tj|1oY4NQ>WSur0y1Pu+<1(7ma z4+k|)Sa<)$U!mw-UZRf`xikKJxl#6urc`r|<+a|*)~z-{BHkLG6!;4!q2RSCl)W^q zkgd*+w_Q{`_n_kjUq$uW=&T_g4Sng)f1|er}{Wr?ff?uN>Wg0TK4*Y!jV z3z!J>g%;5B0WP9kum3^-Mg``JPd*Vn>=*UQE6E75x9wm-Pxj1^^9mV0=xw*dSw%L+$M;k!<`%z?+)k5Y5Ol$J{h@Uso~ZkM+Mxa2d!P8 zu?U(bI9U@anU0XH8#g&WnmK<%oJU;aq7x0NRpW*nP3(TMn9Id9(*Qv>pO<^DUe@B> z@v>cN8P(~zT6+#vnMsOot7aFfA;S>SKcfMzy6;ID8`0pjHA0q0xI zKllWftz-7A(tAm9=@KUnp+Um}Hg z$mf9+;_uTD(frwC753}x4rx`LN!#n4UMO9iVV(FVNcaRjs(XlkW84htNUQ5}yIx(9 zOk+IJOV!c&6NGk`Ay;|t<`)UV&i&9?LdBU0@ui5$CVBbGH zJ-hAPrI-^ZVqbl2Z2t@7Ur`;&?eXc##%-=wVy50--QZN4S2S;k_dq3z!;!KvWqW*N zX6=2J9e-B-eWL!;ix)-h0jP2E2k&8mTm!sz0Kyk+v|yJJh1jcSN@kn(OFb=52}$~0 zysjxZbnsZ&2FBo7NCRUdTu1O&0JArAKz9bsnCY=9NIm!gV!6xGLNKzpPj}~#pFn%K z(XM2o0d`Jx<6ctq^cAmjN1YvgZPX&FZ2iDs5DZvgZ2t4Jp2a?G3L}e%-uSc z_vz?*M*2eEw7iC{V}JV=Mi=;1Q8BGoecqf?5T?vb`?64ddSs%;FO9w-*)MiEPlQHR z-+yv^l1-HBN82Q&w3h;&yie>9whx1#dfCZ*7n{#hmJJyx#KLt& zwy~eaItHqq^UJs)vwNbw`Bm0yu>u)1c&HrWF->8@OZ6s`$==2YeZst@K?`JFhfg&a zeL8rlc^|tYcCaiCY+40RZV(n4yRdcV2US*aRYg&WoJLi_(_wVCChs96FCI~2w;<4~ z;6TZV+l=V0(2S`dSr3PwaRN3(_3Z1?*KR9>v%l{+n%j2o)zW+}}$>h-+#`|f@A*=Oyw-fJ3DTC3H6tvL0TO7a2zF_kime}vG+N<)<#^+zJO$5OK03kr9 za#8o$EnTzhLu7=S@dN3H(yO*fO_?)6#vv67ju})j!qse?2zcSu(ad&OQ|!Lu$9L?z zU%ot^G}~$7M0k8UnP|(jmD1bq^YncF?*mOnm0R)Fsz!~yGqWc_QPeFiPRXn&CG7Yz z4vjFqIhEZKbBc#QI^R{l*f4Bdr#<~9PKD=g<5wX( zBw^`bZxp1T@X6Mi#`Eb_-MCLHxxYu6<)1h*xdJ^Z9a9;e7y4%O{v!^IXWE^DLn8}U zJfHMn&W_HgW}O2~MV|S=%%)^5qkUy}@n$iT7fi!SKS!NpesDeSO&>ZktWBh+2LIE!AWa~ zd)?2=+6FhbjGvGo$)UCj!FLb>6q~bSQPE(IM(WmgUh`)5w*NUF@A=C*8na2hc zw)MD%3MwjQ!ZY+{1WS1 zfh9Q^3x8Lai_h%PouHx+NK|r|ZV#0}@ls0W#5F7jg#s%gW8Izp8OeHH5#9+um%Q9kZP94SRy-M} z3daT|kwE4+)r|Yxu!J3Jr1;8$-R6(wQ+#TL4TB~STxf$-rQkADAzvltb6P@;mw#GH zhiB>QuH~k?dV=yB{xumMJp%RA+{c`|5+Vg7!Lv+Hv&f&#^t~?r;Ly&78UKV*+AM=g z#AYPDN~|B@@D5oo_RZT_%b&MP%;f)s;`cXsZ2-N7Dc`k!^80B3Yh5_|yrvP&eRC7v zOpqkRqf&c=o>>XIHf8a(9kZ-CPGZl4F3d=JD^^`P{r@+uGIp!&6l;@~viST*=U#Ng zDQx!3DEIyUp;WO|?@XGS{bj6bzv%G>yDtqY4UM1RKAF5iHOx@DIix7&-GVZkjDSd) zf!DQ5u1_E_CZXhHQ7;dS^JAWV^UhnR*>#>>E3>?v`Sw!e=Ks$sp;{ZhuR!W*9{VMJ zbj$gmJw_E_9v5bO|Gm$gDar=_DnX}Zlt{#A8?A2EEnR5a_$BXDsQyuz(%)U)6J~?c z2^pDYj&P|_sq?Kr+kCTk2vzSjS&dD@43DcX{xjjeL5b6lJ&oF7kflONz5{i)sI(Hf z6LQI@-qXur&pz>oRtjg=IZm9EgcC}xyc(9fE{4tH*C*}`qQ*{VTBGcPy7Nv>z<~FW zYUstRR1Vs&FGzUf;|At^|Gk>3*Gs68&|C`gf#E%%?%23QmdE9&g{7H=nJUI+P$d*|Oa8RpoVCx? zFV&i}UX=`(Fe3q{lzgVHnM!6Vs@UCE{TYGJgX`8Cs&F>XuHS&E=e(cr1CX1JR4LR$ z7MnKf@g@GP*5-{-1H%QTVKvWe0&o0t_&COD#qrMRW`jKq6_MfTXA@Plew~e1n1FIb zVOfquhaX}~p^aRa%(@Df<|4B{ar#%MU1aYNRx_LcBWfEGi~?Cl3cW`Q1z9z$a#wk> zeekOtA9x-LU9PtEJJb1U0yTiDu|tb_%FjVmdmESkuZZzK=f0L9T>D_#gL`%bmOQ_l zeCZ!2EW*thFBk~Xsi-6*FdV23DR#;%f95NTpo?CE{X?;ay8rFlad*N;Libc8wD)oM zc(9_|=*UrPp8JlcivxI*a$axxJVAFH!(r>=58M&C?O3+NCD*}h>Fw^edna@ztj-hY zG=}l4pn?s5@Lb$hwB`Ggo%Yo_Q72M_&MQpdNZp_mtEGpTg*)!e1o{ws`RLSQWzDOq zR~|gYcR%{%^G`u-F0;v)cHx zrDDbz3H7^$tFBMLpgtW$3nRRKuFfBa#tJ~bQdmoKor68Aq4<6K=@8zKc} zv#2<*B!y->%o1FF=orVW|AoW$oPOZMT`-ia@Yx32n$?ohD|u;xsp|&)m{5`~bRj~E zqhp;hQfpRa?iyNXKWp#obdTLT1`pkw@cRH^s(?i(%4*o+>-G8hNk4e*R;7!7-x2N` zyy4;m?i|fUaJ*i?0+RC?OY6q<&i&lw)S1zzCe`X=d#WU(?3$>?cr>HjFXMv3H%AWZ z+8G-(nEZB~%{##@_kPb{Q@(j(f^73bqy$q;1UhJRtWQw+!hYFp`#+|8JNIny_5AqF zX#!UUxXI;%6yz`qbNd?~+i5 zL@j8P*+!fV70fMRrb6Sx#a5SN`;Xn!YWI3p*<&<@19cg{`N=*B&?3QgF8j^k%7HDy zO-4CT@**|SXEl>054D+brIS!rrGQAY#J(4Q(2lbDzVv$VEq&tyrk7<>9z;_!K*=8> zM}eS@QAh)d=J)!sKD2R-@N|w#bN{@XdoIAj(&H@yLY_CISi!zQSsF&@;-KKQ7jacs zU}cl()%R}Gt|*y#icEx=OF2VG6S%D5x`M0)%!fz$U)`BI@-{fWsg*2=Fn<(X?@k{MqAF)RdqBR&&e82XDq zF1++6`uzMt?nB2$^Ijd|Z|pXnZ834BsL~spK2%PU(i}A#RZ>37$E-B3oSAy)f#-%d zuK6?nFBns$13K36`JFBHD>0cx@vKfli{E^{Y_22<}>b?AN-92u1`Cs-i)) zUpbm$SAC+mB}`p-5$9W>a!gUWyk#;F(S#(cq_M1|qM^`uX|TGuo#Dg1m-%-ub)EzO z_8L-}&@03O-hHneGJSH(`IqRYD{aU9OimtJIB7f)rAd z6|zP%rnc0tV3^v}dnTlWiUQKr90*g*TJFv9#K$>nT^1&8TI$)TuO%c)pEw->qgVti zD6i-+OWvxw)}pFDe&JsI*3MvtgJNtZRJfL@)3b^i=KfZ70+MRr%gjIPSR6-n8!VTz-WwzVO5df>i8_a`oqxXlTR1of50C5OBP z%^Vx-3VHK#T~zGtJf3~ZrQ24o%g@Z2j0OZ;&@N^W+JKA*;sdz(u5>}w?$u}da;?JE z19eA=ibMZSgragR;9mt(5v~@RrGk~JBDQ_Xrwx~;7Oz)t{NjE7?s?bDDH04H67`_S zJ4OUxSix6I$O!1iQR8=%tIv6b%e}e{l1*$5(JcZKC!|A(BQSp_edh~v^;wPi_^lW3 z&(n6y6?M#Avpab*)&t_uNZ%LD-5Hy2_HBmm%Jo=4hLC3Ras@6YuRVW^H}vgTQ#U8uqct%dY2XOOZaV+`y7ybElIcM8{Vvb{`AS>~>y29>FGTxkr> zi3A|oh&L-4i|5!YwP@%2^KqfZJHBiG?O*g?{VrPW*y8YMz;{YmIb@TEKbZG{A_>2b z&!6c@_n)p59{g1@ab<9lY@psT`g*9Y4hKojLxA|ZbiEKUy|2-j zyUDV*;Y`1R`rASJB4k-J=qtQa5*}xHrMOyY@Yd*;A6J6bE=V4hKX6~X@ZVSmGjmk@ znvo%hsT^=v_2_V#mHXQCT|0v-RM<^z8ALZcKGU>}-d4oE4SR*%|NESG?IVwP8MUa_ zbFT1rIZT`r{M#rh6$v{yfT(hYhdjpdy>w;a!vkfDABCLA-E-BZQfi37cvCY@0%E%k z(mb2L{72S*9&E`h?nz(hc8`si5O+D9pFwAP4}gace( zikAFbxKkyN!n>f#xkPz1vMd=5J9I(+NXq#?gKzRzWzA;U9K1BeghA|#jmOfIv()ml zqP4tEo6y|Pw=L;*oy+hR;=>p}809zXY9%Oyu}?#4!}e53rCeUmxE1h`M7vaU-D7s? z{PR|4%!rhp6Qt&3?9OVhCSk}}EGaFZw5P3`4bu z!@UiiUs13gRfCOV#*BlWJfGA}u0OIHaPeO7=e;Dur4F1G>gvSkh7MIH-7sm*ye+}P z!@27UXYQ&SY~{Uv&t?zPOmwmo9YjvynljeDfHPRYp`}0bNZ_@W0?p9ssfDSG@p%17 z_;%b~P%0_-sEAN-Ohk13S6YkV=oS{I_`3f#|7dVpe57KcfrnKg6 zK!DLC-To;?qNy zugX-I4*wheTL!(j#sQcfh1`Nywz5}T|LF7<#mBzbS>JRf;(;r}2}feVmjS59M`t!DBrL#YfxlgH6laQ>pPWPj-G0|FF)-yp&-td%&8Y?jXEUJj@C|#BW_< z7rSSq(vAFfq_608-lXE1xrUmA8jqwu-s~FQE}_88Ef}6BGxWjC@#cevBgWohb8c*8 zP#SPUp>Jy};{ut85J`y5aCu>Ij9$vMPqKG!pme^D^C5qR0p*3f*6@wNolGjWv+TH~ zYjRC3r4*0MxOzcm=#g*kCURj=cifz;r-G}BidKpWN@h^ye=xQB;Kegp?0jt7FQ%^E ztXJ>nL`6e_gvTqs;8Wo7TzH-VQr)q$(XDvzEF=1)Dlt8PT*V#I|%Gm)VhIeeUn&JW@ok`?{I~1 z?L5|>G0S~A6euMVPdu?g9}$Cp0#2R=9Sos1snCV^|F{)wZgDwn%6pM+Df92V@UzJ#pKyv(oKz zLKdr_6w?IA(xl2>(kvaJ7(eWsh}jyJ_Kk8!9n}x7t6S=9`&g%yaz~+Aa16md6B+~^ zYxcf%-B;Kk)cuo(y$r5=224ZJsYv2OUUkmSx zXNIcQ%lY;iP?1syNTVT62ObCxw<8^Euia!GrOXxHOv@hPD-8NxaIs|v^)N6R_0lF% zR0t~t`4fN?pygIgO|a+G=V;(}s%STs+&M5x(O_r}2>pWMmAET$tfaj_2Mf;}FXy2F zR)LRC%I`cK+VSi%^GpbXA38HHTRIk2b6j|Fx^-n&MbC_gCkgsdPxtGMjRpybN-Wr0 z0<8k>UySGb>Q$F9qkDT6Z^_N(?lPOQ;4T%P2kRk6g8~e;BpevLECcrQ>Dfg+VKI`4 zRiO*#yP$dqEvT4p=uOx zTSDDu5CGs3!Oj`f+&;hNuk^zBM~80Zu>01_sJ$3_45GCO+^mRZfQNTPCKKL{5c?1w zCocR#LhHl@zm)GEG6F~lr&i34ru+!c5F{)d>o%l)lSjFySb z)zhZbtZ_(SuYoXT-0F7hR`+i{3<)dvC=tA!wka{CoxN;qrKDa)_VdA2rZIa#PL4UiBp+6Oj^lJscYr{jMAF9Nj^$I_KHrcSn*nLH zRB>ax`wF&K+2ox>S)rK3vAF3kOLI17s6;Lr8xK20!;dN1H3{>W-yfN2${TQZzu&2F zzi;LTN?EGLh7(Uo8t9~=@*~YqyF7mIu!PSOBe$WPxejNz4>BXrFFQj6B-CRV&x7+s zCJ6RC)%~)B;hoT#-Ghm9THbOS9#Nz2D|m2_0Tc`xSvr8eMjkyks5a&M{^FgmmnExw z+mdv?>(XL2DF16d=J$#hIPSF^`8nU#xA%hA@|`CAe80aNaPI#X(81El8io47hX^@6 zZW!mzl~Z+(>Rc;)ZJ^JeHKoVJ`4YvVj$0{-gYv-6M4^4`XNF`?>hLXz;DF~(O6Pm> zDz3E9{nw1(sj(nDy-F>K@Akx*hBx1d5oZ{HBBg7V*ZCCvTSTy7fK0`dQH!kXd6u(hQZD z!8TnMZ`9E-F^Cp@Q6@2K?vB!H`AlzMtaJ?sagZRk4%kg0b9cS_$hfDM$p3kMO;!H_hV#OL$v@uJI| zwHtQNxOsRu{}Pwq$*~8ao*M};ODQi9 zUU1xz5AB<~Q}*jm%W{+pO43&DlgPGWt)}<@G!ieMk94qceM_=be|@Yg(eBl1c94kP zXeLcBlk#Euc^pJkTObnYu*PYII!olHxp~gG8Sqqgt;UQks&g0sC^3yVHTaAAx|#f+ z*Mx1_MH=O063SWXUu$!SKd`HyNK$w6Nl0u{rr^`A4gS-4KNWB-Z#QBhtg2vS+({f&{3#Tj@L_?B2LU0lvR1%zw!ya8Q z50RKR`-r$^wf@q!U$?3n)!J)hJZbz#I^ zE$#*tQ$f5SC}9ZN4r(kRIjh!0HFBNAz8vR5v2SKshwgNxlRH2RMGYuXV_%?U9YEX0 zWM%lAD{R;$bQgB1#jn_asp{p+j04~|DBes0K428CS65Ym(I(*V7O@L&)b z;j5MHk6Bbr4?J+3YcT)hyN$cXp8%pM4c;I_AbeGSx9s0zsq+kWduERa-*|SgaQv^6 zdMh%RAau{d9`laSOpe^6etj1gS5Z>!*Xn11G89`&yc=?Fp^yP0CV){Q!l#)8f~1jM z&&ENA!a38l_N8L?^K>KUnT?;7cs&z-0+Ud9@uNJ;dc9?JZxrYH+7Z#2_bAnT+|*1; z9d=Fo=A(jmUV?|Z<%E9Ml*(0d z8gWLGZx%`?g3PsYAPE=r2_iZh@yccjG)pU0%=(_!_uzy_qDH5N)3-)*Us)UG@RWEm z8U(4JOnX$#4xL9N z-^#a*uRp|bqt#+npO(#5^1#DP%fUY$k(w8}XJ6w`1>YPumjTynvW3b*!($C7~ ztTSc(nlIqLEJST>$G$5hfQ<8oHt49O8`Mz%)}Qcg&@nlKmKM&)cut{bDrKO^a^X~R|u2oe>= zmXh^P5Pzp+G&FdGRfwb4Zs_aAwfw#Qb-iuWXjJVIzb4>jf-4hg&nq4JqpY7VcpH(r zxqPO!+7&;ilZUC{c(OCj4UnDS8T}7QIhiqKy721GDUwURCKktt+i~!oxlb|>WTx~O zn3Dh4f1?^cMSCu7Xu- zpGU6AQq&@Wcd%4eP?Cb6K5V`Je*Wfw>TC^_9HF7tuX#fQq)8Q&uvgIm#;FwWzo9M; z*m6Z$ta^r-qGS_ogeCv2nQ)E}V{5_v4)Mj~d+cG^v*#;Y>z67`m-GpGXz6Gm)GC`z ztporNwKD;*yvh0NugW#zsVo`sVpB6qc3&DKFIHUGQUKtR9U-K^0sCROq#<`}>^G5Z zdK>uvi+?0^{p|2Z!vi2@n1yqNqQ)sv5KV#pb_fYTgZ*a29)}SpdKww3u!IDRV12_Gm!E z|ID9=uct?hr!45!zB+Z&A%p(`g@&Mx*oOO|pQeT%%)a=EtMGi?!oNk__2U0yJSYaX zG*j*X74>WE}dMuIB?)ulO+=d5?u-A1%E88Cnet3X!$nLUux}dqU7nWgObK=4~{ij{&ks94W^A;JU-MKmeLOlmC5>)p!V4*Nh?inT5 ztrQ;Ub~}qj)UkYxoukzk*w(mmX4wGMf{CnhP)Nk8(kker2WDuT) z;c4bzk9FO=Ywh51;mfDiAB`oVX2+J4sbBlYcxMO|fN}tO@q%COZTh|oGmv$C@#F%1 z%{;3=lSh**6fTPr9)xEG?Vn+AJD_Ftph@ham&L4(a$fC3Guk(ad_&N;Nkw3>`Ome0|*AA<^%yRNnJ^m1!-J5$!Icx}j2-c{n;0 zM1nsQ<3?uvxQK55E#a3-zdX&m^dGTkDNzM-HCc&S4G8%g^A{!?1)wy?b8(ZWh6EYeMtUCBinWw@6ck*!w1V7=) zaTL7L;VE)Gynw!M+$5@SXEEw}Gb9C`UW&>07TptlrQUTUDZzwGqwLtLxy5nJVAM*R zVt$eQ!`qZ@aJ0LZrygba=ww_%U#`VQ`|78h3=j$=Br-E`+K;&R=-BH;CUwiEMWlKP z(+ByDDxKnLS*e>IuRKL!-~*>wB45e#Bj4K$&fP6~yfSC*^DkUIZ5!5&9R!%e+#QS{ zSNs%68>SpRE-1uu_(HMQ%V!nsegc=t#4*YSrox5bdjtXr7a}-09~AXx)!aLV+JzlW+9W z3A}nwRfdOO&bW?0@#Z%38_eTT>nP-w!0i|Enjuomp~mu2#bI}yU*C1Ov4u{`a_fS> zKka$R47P+8i@4bX-O};Pf8&&guT+XxSQS)m#^&u$*|w~v;m#z0BN#xC1SG|1;ohH? zbkps14@;szLD8Q-?1xtvau!TN!7_n@A9q>NAAJ@R0%Va?OUTh~87q!izgEi;{W+!RhUg5&_34-Pse{xU&mM<~a~w=wCn zIK*$#3~zT*Iyio8;ASSq6JfyPY64nhcKz{c6WVi2Nl<*@7yE~U%b!vj5RN6Ym+(6p z`(Aw+bF%#_Ai2DqrR~QuzIU#h_A@Vx9E`VC8#6{Q#qt>f0c{Jbn!4@8PZ-}gET-N5 z^B*t}ho~7Ko(cZy$m;$(eRV}N+1IyEXfJ!klaNf=d-$^OD;(xQRtve$w>8(((gs$W zeO@SJbn>|A0} zf0}l3iowz4`KhpN;jyr-R@k4(1Xt`1}GdW8O1uI!>b#$slw?Ikunqh~h z7R4K;M3w53jw0fDNi1Q1;81fl$j*cQeFt8A&`Hv5DA0YrtM%Zz?q`a78QPUAEY}6~ zBLq#3N|a(;>)7h>9aWW&c#AK6x^Y~u^mLN*qj_Y^3Na-aBdt2VMfLLlu~wPy9-^nW zNuF!(JyPZ6S~HJ%bIF`MT$RInP0p?G);;z`$uTG)>*MeDZWa1z^1uE8fF^rH4HjZA z+aveL(SB?aG3hB+kl$i)Qc=F9J!WF))uH}Aab<}Vfs-8kBH#cq>Z<+x=Li`SyO|tR>N-QQs0i`R`1ezly@piNqR$+6Bh| zIC`)m+4r-iC2d;t-ukxh^Rw?WruBG}bUnyqVm$FD^sc94(VpJdzRq3@wo)tlypuAv4axkY`#>U^D)nu(GtsYpclfNTk3&IP2i zE3g-$Sz=D!C4ax(2xw|6HI}~ik(YEp9!D(WT^gyE7 zv!J|_#k8QqTpZgxbngYck*tY%!Z&U_B1J(LA;mL6e{W7aCpLZI9l0w9hnClz|K9&t zHc<9oAYz+{Fe8t-*6T$-uDg2gPQk}=mBy7C%FTNJ!XRsoKs+*=UKYZh)qdjf@in6k z6}snUXGo1hz&C<_SMWk`nOgGD@Zu)d*M~k1s^8)`&c?Z1x0|}7h`oh&uZW`rAx4)0}_hzI(&oo^i=e_sXFN+xZ#ps?tp-a!S(WlNQ`wSF=n&QKF9=4n9?gjdL<{@P>dloV`}YPCi?xz`tV$ zU)RmGrSm>K*yCe(h@=@U@!`Z31&QO}d;^*oia>h&F|4?9`Mt*S|6J{iTUc0}L~Kb* zoj`yRh3bTpzh4=3adbdKa?2m@7OSvB>CWY%y<`j&F&d;S3OFT-fYPziEY|y(ya}Q< zPHWz~dd$AHTPTN&ErH?0_fP3q*rH2|hP*3kwa==G&*)rq^+>t0N;Tt2ksPBOH&6f& zuUCj+Zbs5dA#?nn3=dpsSWuuQrgw#OpQ2w!8J==bz{AZQVsNlaRwWfdTH&gB3k=_1 z+%KO#ur7(zZ<)qo7R%eN8Owz%3d2rJ{XJmkbH3@C;J7uoD#DgEFZ=F%sq^EjM>3sH z!!`6{*_QONFh(KSiK>ARdN#omVC{=OndrBAto}Nyf3@}54En2(5t34X*-63_Z+{J% zGWlx8bj}N>=T6rODYm=VCpFEe=HSBgj%B2?4hK_#sEo^(xYs0omIwR%$P3%|wnUNp z2791zfbDz6B5B}8!ySs?jHhE-%f198_-s?jzFpO|E+H~3JMLA`*ih29g8wR!C4kCm zK?5DUc^%d+`*G=WllBF2;V*xEI;&ypnazE73`~$cgyMyX82uI3TqBcOUl}y>;QZ}M z?CLF9jG^%DJD`5!C}f-5wJ#?Ig{SHJY*0;|| zDG57l1sS?zMj;KX7c9SHxlGROdv`Yeuq|EldfmIbxg$wq(*Wy;NMlEHxJj7YQP{$H z*K94{F11a2@10(HfFp>*!di%dg0liys^CSofXHA=FSxg`!*g@(W?vp!yXI-yV50Qx z6ANg?4vg_k4aOa9ozQK8&GCHxS67#FkA$OA%L1W-UCDp+y&2<)ubvDBCNAmddmE-b z51OqK6EV-rechLkeV0W@M?E|;k?=xkSh$6Ws)FXk{knC1jcoNtwG*8B4L+V%e@kp( z%mJ;R9L=ERH}2JT4Dsn|O400RThl1KF+0iY>(wu0E(ZE_e55roa!MwaG+OfNgbw9vJFh0<#;XXjQY2>GcU7u+rdiHhIqYY>6ekkvGGKy`Y!i(Y89nD-( zflxT%6c6P&cuH0O+>ZyP$}R`OGtXW;x>cSe;L&hfC!F0N$VHs)sk2Z^EH@6xqE9hZ z!o(Y%`8f-bZU}vt?St{#RW!-aJQ#>B7zn|D(+nI1 zBn5-G^~U0>*i-%HPQ5tDEh#B+V5aX9k->Pz4vt+(V=BmoCB~kPmp2&pMSAZPeEY-b zz#@54Re&jQ@kYHR;;Yy6$#Kxq`+dvyZARLsGvyJvZ^f1}CLqmB<{*kxEli%bU}ki8 z>DS)J9|SwC*W8^wHXf?WL02?O8WN+3o4}@|-AUmIb=%#M^>icG{FQ?Z-?qPF44-s) zp%8o`AwsI;K1?Pqmp@gw~v@EER&sBC0|uvbl`d6z!XcCRim%|O#S<;Z}Zp( zh{l319R9+iS<$E{oq9ezr$p<}m)EaLQ8r}(Np)EhX;cj=cx|ApscR7|X(H zj>`5P+CFr`F6Z_8;Of-;Su5LDFd<;=DB73qZjO_0bnJOluffmUx%2#5-cA2;*mfz$ zkEstCj@8gLG%yf@TIp+n*6cOg+hHo?to0q4tYj#pw4=f{)>6ygM5BA$Hkcxt}* z+3F(?XH}mXJukj$OVMNRk+EMU1`@{;)7NkNk(c!!ThPUOZI%j;{ZEZJogNzsOeCrp zKm)B6j1F(Cw!%HEZP&^7HJN!mOYXc~_jZbo(%5LQVc`LZ&yb`RT}6)BX$G&^%)`&x z&9U!|sm|`L9Af}Pz@Zta5DtP{RaCDn`hKTJ?`P+^YvV-dGviaKl%H3kpvRJRNfgS z;$xq+XJrM3KHnJcG9bH?(?;!t-r1S|fDtt=@E%2kHm)cO+Pu7Y_)Op8R9D++YDxDG z>{zLH+J;OBx3r}LZ|P)|YSoO1A^Z_6GT0qd9vF|r8aDmy z{nInHD?cSP zMh??z5vyqp_dJpY*Z?N`Ye~$CdHY(K`~qF<)pe6D`)_h6k#P@GeP z2|brCPnBSi9ghWH20Ah8BBw@x2!NYR#v!f=9 zb>Dbd`qEuS)+JRJ14tCKl^56oXi9W_@hv6t~ZjVmU!|!w!`S`PJWB(@B6eio(ss{d8Q1uM2VQc{jCcRUNWUPdquI6*eII__#{`SW=lIOzq5-wlk~=jmUTre)_$FjAFKX_12<2qO zDNmFs?}|lpO0kxTbA|h!>xx**9-8Zc{iZ}c`3Mws+gk`L=RB**deI$@=UdbQ}GQxVeXKGgXDoex4bhyW8BnhZXBl)Q*nk-|8t zd)Ui(9!0&kjTDn}ou}d&)TvHRjHEU=s@+|kz?MKM8FcI=P1XGX{}B$mnD|8xrWSUv zX0lT{6<*x}R2`&|6NDdOX40|E+bZ){pL6VexPUhDAW!w-A@7uOrYS%+S)((A$_S9o zx#T^kTf!H$iRDLbpH&&tA><;b_>mc5>58W;Q2aZp!9v^;X2C~4ONyUW#IEo0+UU*m zQ({Q(APGcfALv!6Z3@F(MyLi$I;74;q^z-#ENYrp^~7Q2%d%-($AO%2HHS(Nwl#CW zYB=V;+IRD5+o;CrHzg{6FT~B&sbYq}*m1#_+m0{UC1bFxsb+~$I(=Vpuz#$p^<}FqJg&1&MnF+C2YaYzshUtaw|tvjYFLA4oBrMOOFDmTDG`Kk6f&0Z zns7MHox$o}cwYR2!6_UFAg%8YzWm&X{y^dIZLE3t?J>?4W9rArN;y)NVDJ+@L&CSB z_0w&5fyZl|MHPk3$Ygm(KBOTySQ`&zj!(vJMr!) zUCk8I?&Qha#Y!HLr8ZO?;pBVwuTyeDkf_RxXp!W73wFnD5{GF#jBwD zILfxb**t9c%xZ7z&E|D(+@C)uHWb_3&h{WbB`YY!4LgL#qmSvna$a&+WUqLmKku-B zhW%hpzwmVigi*wXF&;T` z;S34)Fg5|)lA%Y%W%Hp|Ni zeUkjJG0SPDSyIN&-?!_|iBCc?&x@%XTUTN4qYagWL{{?VJ1XB>mq7YLV1?8?W2Jg9 z4_fVqoKpV#;$?G&nj2P0J}h|?Le8KF<`0g*^B{0Rgtr)ysoFo)|Amz2jFz?Uv|bwa z9n~5kDKaY+DLEA?T3KQ*={sE2Ha*=Lvt9pvLSy~ZA6G3lkNt`&u?8~_$giZm&0;-&IHG3tuUZBcw1Qqq*U#`7`gZ#2#`@k;~H5xSt$8vWro?z{}t==rbJIN zPi8J!w&Bv|@X%VCUtxOLiPLUH4^( zqQ1t(2J@7IiEp#5MTV0fXD`tAfPS#HaUT`jh5$!#`U5f+d?d zDO$)`s+dEMxsimxE59;ca!AIqFJ<}G{!-<_sg;xP9%fFqbX;jcOSZCrZssar^Ej4g zaR%7R(u%HltZ!{dvY76-WFZ3!bh<3u0uHG2891>lvFRyqUWM0+N6eIZ8=$_8(*~#J-=uhFr_*W-Eaot}*%+BFuXKsA)w&r6;na3js$mc)svR3X_HvmY zh=@ebc|WJ)cyF|4dhhNJ`Ky$B?RTbiFp$i{@rV~PiBe`}Q=YnUU)+(+f(7Y)%J!#O zr;-E#?74%yJo#>rr_tOJn<8(&Huk$18~a(hw}<`gHwmjRJ!DLQk9Hm_%}8u>ed&ja z`B_ht;+55^!!|Ss9|?)58wa6TT0*8BY!^sl;v6XZADDem!k)|W)+u%6O!^9c*X<|A zLBLgvf_9{T6*eR-09iSNH}TfBR!EZ6M12?YQxDs71jT&9Oh;c>PI>k#n0& z4N`ghSRJOOhK(By?*YtFaxE1OXT;WSbcuBd`Lg&mdtvnAC#s~%0{ep^fuMyKSQEtg zpYXw{h4go>(+Td+l0H;3EBwz5-f3lI6DGU4Qo%HvOdLtYF6K&{TxHMf@`?5xH-zG4-k=dvD5ldkg$YnaaN_BALy9^dbX8 z#zs*&?kI6Kwt+)L&95?5c*XkDcCEW>?j%1H7#ok8?m)c*l0*gr81x=XEN6$2x$W9( zcNd9xaeh3`_kb<^Sm;Cy!z!b|Sk?FH+3Lwc?=F8|niu=B@#wXNgm(-SvI+1$WYibN z2yCOP@ZI%2X!K^}-O^}zr^JR2&CgDa!Kg0_6!wWJG(COk!>?3t`fIHA=if^+*?QQ) zcm@MVyjM#9BTlCn|3w%3=i;`PH<_6auH3+}$x?ue0U&KMatDb60U86C_qc?`7Cg;< z*w;Psrk(Zu(--^|zm)j~&XZt5aR-eM>?DX`Lyf&E-`mh^h0Svf zchxqH$QAknx`&HLqrPvuNnN8P3Km93sbrw6BI5!FLL;c(3#D|d3@cBbw`x?}ekbhe ziUl#NnAhe_70{tm%|0ol+EJG~9L66NSN2$$=r-)NahM{fNFf~@%u#U{!pMTO0be{>MMyUE7ZT5>nVjN!KVM1t=8C4RS*X*Wd}L-Q)2pr~K%f)fV6Gy5E2O zv{aTd8W3R2OO4Y6bj)VusiW0Osr9GwoI|2nq|>w#bVkW#fr>%wI`RxcGw?C>P(>bl zZunMpYSP&nE4lSs9Hz0p>c#Ja; zjq2}dqXtzwB24Wfs!U`zJY-=TY?=r`$#^9uL0Zm7Hz_7uef4fjwf~GI@rTJc0kje# zlo^k)#zHuDtewxHrlBCx{)Xdz*Xyku%_K{YMnYR8LFTaD zs5*EjEaK#nvFQm31^InABSV}iIwt$l>7g1Q|LhWu0l7B2uG<3Ubw@~ytvM)P78bU6 zB^Q#2U8Fx_%OAth2=NiEsxE$$;T;>dP?EwHDgN-$6SN4b&IGiF9K<^WzWyO8Y9{k3 z&o;%rEjVz9@5=zmqFYfIB+H=ZHmZn#GD9K7hnstE!J5v?Rr+0aZ(|?V7KGae%Tnud z02dW5i9F3bEb+8R%z3rS`5+5F-!kv5uHp5YO}}k7CnH55;LXfIQ5iCS$4Ob5qb=}D zz$`7!%c{5O5>mT!`f1irZzKI8^(VH}L~u({q2CHnNYPCNGB=?9B*xNsr7dtdA8$=? zaY1rm&maCyZPK}ihu66v^BL#`5EgQ>vY=K!nk|%7|4ql2f3=RF;QqrG>Sg#%ndV>` zucnO2-RQb7#V^Ntk$Ip-+3bR4ZPGi)_*kYNhp0%JH6ptS>Hm1(tz$fI!-)AwTZQ

MHsGQJFWQ331XUGGsZHhL&~DL~{+k2J!Xblm?>!ce83zNx15fNn z?iiB)V^P|1jMXD2ek5auq*L1?q4j?i|BS=XY{?WX6va;XQ49)fFMQ=ImpV=lHj&L*yX_ol_Y+ouznC_TvY$8y|wB07|?nu*@D@G9w; zLv{pzk}yw8M)9#%*N1Bl?GyDNX)D+|v<=|$MdT@nIgpKT*x)P1s%C2n9Xj}FOWaP* z8m(x)O)?HOY~v;yE02Q`rO`6s{1N#hGp~DCT1w~~V-5YZ^;ztqk+y&ck`{*v-5h}+ zfq-!vyaqvhk5oba)kaTwh1_$bEAk%`ZVgY(DQirgYH*)`* zF<9sjskJ^vcU$PedS{Q_lV*q6P=FWZGyskauDTSC*aRNak0z0#J49E;$rXN%c}a3o zOj8qL(bbYl^CMa=*x0&Y2k*U_l6zpTZ*!xW)&5md5${VHtxtq|QK=2%|_B(hae6n#5bd(zhHO%2MwI&zuUv-|CY?dfN$z?oB&$Fz1xtUN%19u}UZ!y=_^h(7x-EVtr6g72f zjef~;`60dAWN;R~?ci@kyosA7aN&4uYdmokTd>)Ct?pS-o07w&3)q%E^tYm=GTt@p zAu|e9uLNqBkVAHY_Z zQj;PT=drjc!mqESreujVcg7r?cEES-k7rMBmKPd&?mMzdlld3$GRqLesffD?LAJFS zUwrsOV>$2oxH)^D33sfJO{OeQbUg8>6!NQAl2;)?`8uVKg4x&X+VEjOEplG+%8uvW z3CxoaehDP4;pqtO96z0^=9u4qu6xBl3Lfv*u}EudUK;!Q$j$!AP!}6-Iw3K}`W-@K z+d{kc_Rl{Hd;jWRjM&R};9PQ|C1ot(izVhILpyNULrjbHxnpNq#qt&>l}5bF9FD#F zA<;vAY*t*e1)@+6GU*vPgQR;|#Bol7?K0PSX+sBmM1<5XEPT`CO(DHNcH_=g(CJW1 zCiH?q=_D(c?biLYt(vp3A}X^wLMGJtB&Uik<5osU#z7~<44%m9@%P6`j&kqQY?h&N zUtzbw$LL<5w>ot9xnl)bzNPrqVu5 zxkVazK9TGOh0IV?aZ8HI3&4wx+YTobe_p)BvVVBj@mo`Nh*wq9q$eTpGDonfL^OS4 z>fsCjqmS)XA~E`8Te)DMTsFJkotd>3GP`>47c> zn5V#XRU!ly6?Oq_+@JeZvHH^WxAR+l!lycBmEG9gyN5(Lm_Zf6$oPRG6DD(Z-NYdU0+mHA9m%Ktr&cNw6 zI?K}Sw;lOeP^9q>1g7eCrHr0aa>n8Eebol#KIiQlUQ=clu?9jjA#|*8)incoorTZ& z_)@!+pDwQdUK+WH@uQxIl)}|Vs2qpaQ-NcKRA|JyxO@CAbX5=tXkO19V77Sr+UX^{ zf#Z?LM~d_woU+0G&R#{oP})5FNz}RP?y1b}YNhgI6c75sz)*k~Rx0b0xVw&2I6PE3 zd+*G&U)GoNww$x$^Abv=W7XI;Q&UArkUJ~;ZR;TC%(}e#hXE2Q? zt`X#10L=uLcRbAui(ykqGFcPCaV%>NfA6n$bDniqpH2edIxr2~+E|>W?(qXgd*na= zewz~W{!?7o-k6t6!|`)Xu>|BNOvkn^J?W}##&ys2Sl;LBwi1Smn{DPWgUEa(@~gN| zeIe>&Sa{ngr``5Ba#32k>76;uqY*J+4z4s%XZ`^wE-$WEnd@}mDKp$fD>dh*LKZt7g4@f@h7aeu_F?S*aTB#rxG?xGVo0EY(zYtBI};WdlNnSh6Ign0x%Q7pVzd&`5k(p}WIkIEDQ+d(wSKwJS{J@HH6lavKU zMfJC(-*80R3nq05YKu~90swBv;Ejh+HI*}o3BO(`+v;A)STnfe2G3I6`!^^)1^qgH z?~t)1DDae2YePORt#i+zo!NTe?#YmF=~M5cUt)|Y=r&ZHCF;Y$l#H)w1r_dN3v#eL zZ2CQ)`?ujk$A63`Bh1N3JbCNFEYlLaL!*pOs%m^zYEQV^{SOe{gaa;-R`<*+{M?<- zUel*MHM{=4;DXF_O2cx6J%SHeP8M95z+lteL5-kJDS8)>>!0gBJGRtWKxoCAf{OV$ z7N57+@_(QvV?vKxA;B8RVa+!#ON_p~(RIbKYwre~Pk9&igtPtw3$>I`L2ocYp?*8cVu2I5k!U#4KhZscAE&xPJs(qJfR1En|*ZQTl?e8 zvWYXP0q+R{6p==#I1eK&U0Ds2Tpz}IVqWQkFN^Q+rTqT-WBn-iiGRSE@+=s?Kqvvr z+E3m-RXqzQ|98oj7Ah)=l#soO1}$YpMxyM!AA1$b)(}D&(NHRBlhDu-l0sG~r6f`! z8h+Qg$KxS=KfnKYz0Ui&&VBB4pL5Okb?_sr?Nt2%5@m zC2M=VWK@kd%?;`M>RmJe9M=)4A}AU*{nHOju0`9%X+yy5Z?S&!grDae`4x2bt|-S?dj*nd3=;oJA&b+^b_ zN?&ALCD7R&Js{vrWXRzAP!anh!>T9jf3C`$X_oeD^Gg1}g$ZPO7Daa^BMmEzJ0wst znx7XmZ~~t{z84i`v8fIb=c;vk-23bvrmSfhOmcXyb#j7flNSK=PM}CV)pEB7JaU)p zKgRzYqug$PFOQUzXXX74K=fawZY?nxThLr_!9e%hxtg9Xs_CEpR?rx z6Ca~>YFb;k$w`tg4=icYXO9+CRz=yyP7XfrlV6%6t7`Hyl(Daqp2qwZTJ!7VWkw*8 z6OM9%Nx!a$YNz-}_pfOZwX2SwzUWXMdH<~P7yyyv%z((gx?R9n&BoI=$x6Sr?pU%Sw$IC$J zxZb)$9H15w-fJHvx}mv}P@La|Of5ylbRB={7uftkE{m*pH9UddRS9(QxD zQsRiG+=jRalxxEvA)4jpo5GxhBVk)#E0u=IelyE^m&7Q++s_v0T?quE^|P#h`>SF9 zC3_nsULCpjY_VZ`%4RA&ii`18K<1_`uv+5IKJYg|UO-=J+^S_y^%}GHsabe-4rDic zkfZVta8Q7cq`L#LY|uIyK1T;k_doMQ_;!f>e;+^m-ftHD#A&CK-q&36meP*su&R?g!qYmh+c`y9e3`_4|<-- zALx*_(G-5dAdqU^GV1-rLYBLg{oKKAon2vGFNmOgQzc@w*%PW zk~Y{n0~HqS6_;**w)ez-P76I%n_Mr?h`?1AR3%E%gb;ZJ_eT~Oe>Q(L_$THh$JW@I zNkNtmk29bMW_+@V4Y^U%Z<*6p(J)nu5KkkHh#)oI^%KUJ<@wccr&2()yEZbGH{kN%jgDw3xDx8-)v#cvMc%R zD&`VPsfYK0O8{;KL~#oS3%l=Te&$QPKg~)G)!oxIY~^xSc4inU4>}OKBdK6E#-h&8 zbH+ALxK=>Adj_{(MViW7avS2)fbqb;2c7;9J7!H!bo$e}p+$+@6~5*+UZtYqSn1f` z#>ZkWD+YgL#p^HhX<|Qm-0WkPbIZIfW5>ZcLQ}$jbB$78N4{Fe&E$6`f9`8<`lYo# z@9NmGM5IU3AEWJ2_Gz(wS+V?8aqikxCQF)^wUYM;HC0$xL|$D!>A;}Qd6PYSO4|>< ztO{0t5f|EN)KId}# zTJ%mjm&L>+HM*kh+RN8wV-fgvf(3>eUa;Np5()gpsM4&sj@ql<(4MhA_cPO{@bf~X z?nBKU&IMO@Nh@rh{av|M?v;~%>S!}R*F2d0B48DH0*xK%p@@mH=BVo!55<=Mb{F+* zV_Ca!)gRJ3Hh!qHJk1Yd-eg{VXE~)7^ntzjTeK zw@(BkYHcZ09cVk^dm}#IpU>gh-jlfd$z5|Y+(RuE@ldF{JB8sZ_}Wuiz*jBP=$ff! zqHK5be8bC$B%#lPCtGURZC&b_b2n37EWN_r?{A*JX`-<{Zp53WWazAF5s#R2@eKR@ z^g7m>x_fVG+sY=uVF|ODl-oSmdi#2f9UGpusb;=fc9uSlDC?$I#E}<=x1~RpWWx1n z@WS;eqMB|UfvZj3X74<|U_1=ny+lnL?(y2ilC^PoNwHR`t&+U?i2)`S&&%(}Ll9ZD zqZ{zUIYMg+-~rwo*l||Q!s_O-XA75~E!?kh{Jtb<$-?Rqvm+wPM5%#_X^DzqadfEj z&CF?jdLL`E=3g8CFp!ji!W`BP;P^xQ^n~ZjyTR; z8myrhG`~M?mQF?9^T`vBM%7UcQO>_HQ3~D;P{esC%9QvaGilL4& z<``#rTiosMf*xvZ7nU*|DW4MiYuvP`x;Qek*suN{7E%w2QE^L%ae ztN}%iCX8#EL^$AA3x5$7S{ei%X0!15cM0@!C!t(=r;;w7HnD;tU z|9G}iT}I)^I62gK*gV)A&x>{~n%ffN{Gt+tpX6QNkvi$j_~G<&UwnfT#UvMETI;yv zt^16m8zg7>+ZCifyF-RYMyG|MN-mCpgzFYOYCsZ(ZNHr-8n$Eax)W~6E9`V#_DOn} zk-l;|j$sc#w@dw(F$ueISN4izER6V>iCzBzq{Ni(EjM% zqmnfxP>6Nb+=BF#kHwL5gy(gu3Y~mPIiiv$d$3UVr1Y>Nl9_AGH4g=?hS)DtM>PUHeB<E?5B3Xrv&+r<54LQ zwJT3oWNJ-s9Ip>i0>}>oHbmV;%ZkG`^K_>2*MtsCucMo_Vdr5v-`}om4Qm%>g6WJcuIob$`+&y4c3Kt>Oe~BMCxaE#e7|)+>BsARmz~#DmWSOvDLZrFf8%7a+Z~R^W=yC0 z)-B#fUX>Khnj{kJ@MY<^N(Vu=;k z)T@jA&g9(fX0K)CV*78L0(Qpbo65fP+{@Iy@~k}abJ)3wd2j1~;}kLL6B){H-Y&d# zV#xEk=&zSA9fDny{u`%+vHsLNo269zc3XSs1})E4 zS1m~BIUqlhax#kF{J-U?V5#!=!rgkbCOd@HZeN(iD_Qb*THb%+WU;#$udS};Zcluh zloTGDtbcQkWYBmW~QGRO4C}!(W~sRtVVdgIl!3ErPFHs4KGu;lQ=Cmk#o6xjrqP0!YI-}Rr*Cx?lB%Br&7a=Yr& z>$j%+LvMMh_QxsyCrlnQyO!#BAlQ4ScUh>BnA+5L!Kp6)y($XWW8<0>QI_qCn}eNo z8_#^JetO)~<3FV-Vu{$>B?fD)y7Go(oYtijaUA!!p8B6KB~0w}7n=J>`mHnR+YH&K z*Um}fJs$F(Fl8*AdF!R1)w>sbDGdv|eO%afKcr!eg0TzpN_USuwOw93D?}uU^R^Qi>7?I@q-%B5L)rcF$F#d}q^7~26)r-$*wp}O7 ztL(H3f?SHnSv#(rbeizziMNBb+nw0^x@dmxBOOu68>GS!J>QrxZ!we2Gs^$By5wx!S1FNjwvr%4-ACv%eXx>elHWjSCpUy zI-N6_6NTN?6?_?^)H>umrE2;i_v{Sw-NohO1)-=sL7R*m=9tCz-?O{+PGy>UbD+J& z&?xQ}A64B?f0JZyNL29y-el5B{yL+fe750Tww^OuX_L~LCzo(Gz8)uv&`_YB1k%A! zYs6z=1&76+F8U>MXsau)W8M#KnX}_J00BX2yXjNTe#xW-MJ-W<1&VhJq69ee%Etdb zw?2d6nBo&BXv+oy%{rTPe8V9ytJ zshd?ZC2#!Agi@)&qW})LQR9GyoxAl_CGQr;q|KJDbzsH2PlG+W@Nz&-(k5 z-_D7ew^DuW#1NFTNIpQU8-&Y=zOdQMv?%3mSL4sA z`|ETKb-1_O+!q`2!bpwmK5DZwq=NM4sI`Ln&`MX4haqX7uQe#MY@|-7abT$o{BOMgJ!h6Qei6s$CU}(QRXbx9S-7`&;*XrYa!FBQ)8z3O{PYf=_ z->q1Tw!x$QooHRw;$SDa-*X?0zh#J-foFwUwX%Z;U6OCV)4jm)xHC|pw183mt!0(RY%p3x#TGGQFM*6s6|a0QSyM#_2Tr1b8k%{tlWU!6@i zCS}AM^qBoa4q$L825r}5eS#dCo;o@4ZO@3xSsS`ncAOMgFVxTrl5xD;QGXYx4{EM5 zzj^Pcp+EN)m*|?J1N|~w$?N}tf+z!K+N-f?X2I2)8@?^-5v@uedAD~*+#PApRGCMO;VgyOeYqA zN{(sR&%keQ-GjK-c!{^)-afzTgjO!^c$Jm>eaIcR!Q=%69+~kb8Y<_sN%3huoAK=D zw8V*j9{=(gSE|yL{dL0C$;t&6HH0Ms{EF0MB+vaXC|WLTTSkA*y&J9@n7+4tNwP}7QOz6*r1X8jKou@C|L&Bsc9RhBPZSSlg&Loz|t z!E49=0-@FLKQCL{bcRP{N=(?mQhOy?*TwUG{~Lp;m#|!$dS%de_o={U6R{BU#nUh%9WoBGmUzShK3MXNQ zP5|_v7vyf?71B^HZ0&%#nA}^YJ;>y4w5r!-Btx@j=10}{2>wy}l!BiKNYF@ZBe z-l5#;5y%8Z~ zZ#p7Me#pI$6$Ot6{l`+xz({Z9VJUayS5j_xG#*sUF$rS?X!4U|=D&V^ohl%4rFXv7uc)Y| z!_uRZb8~bdw>{N|k=RfwmR3quHnLdEk7byZSx|^uTy~s(y5OVw9URj~(Rh^+O8+GL z1(PXLLO<093{qnkd@1Z*Z@XvfV$(&g_TxZGWI;b2ie84Cilr^Kk$33&@XErnyv-MR zRDboZ@LKzU(skh>apMSa4iPsfo~=U!{4gwbpXColwW55px@9I#Irc`HN76^7qE#f* z)X2ni_F3#V#h9f!ri95Ve5bO?~)UHSfIQS+;xL?|okZOwoSAxI2S$y#7ctOS7O|I)=3|>r#6ojFlIOn8?sif zYbkwwqG*v(*|g%#b7>*NRpigR`r|wV1Y@kc9NwG;s;#i{J1<#}i+#T)pe1h~t^e4u zJy46f@y0_OAnt~`A4cfv^!9mG@L#nLeW!XXy{6lA#iM^naaNE~mQ;{d#0-2^`gq2$ zInO`7>3BDfSDDDPzQzB*pn`L6EW*k&i2q#5>Y<2N1%4O0*j#mMeE$I;%Gs!7c1%@! zs8YA+mB_K#{eI_GOcC}kzVU5hB$iq(na~`1{ey9wQ1DTwjkf&X`HaR6we>(Z{E^AC znB~5F$lqzYajJF3@VffmdmQ7($x2IOif&QDcWFtzGrumr!o6>>ykW6y^aSJVWmFWf zk9q6eg(Ufo+wA=8aCn)x(~$y2D&9#hysZcPrWe-t`ONbsRw4J()$;^jeq5OJK3SeR zUFidXW&$&|-Lph!X`xV6Npg;FnpV>(u4xCx3y1%)!IN2y^0%5VtT7XFKjRyiX@y-V z9y<D4#zmnB3LtuZA>fueGgjdT-;MG<5Ed z`%vHBvA>AuFK`bFT&B{{y5_c_?`fTmrD1!e3{TvZwrD=$d+qsH1gdKFQj*5*C+zpW zlv_|x_oH;3*1-VNPVautu_HYc6cr_Hk@pE(7mzkTz;yAf;*;HTM?@OVhh0c!n|QE- zG*+uHa?D3STFQrw=aXCWu}xi*XLXT-5l;g?T{u{Pw1Hqd(n&A$*E_h8_hoo;_C>$t zLk%k}#Tmv!iLpD-M!7>9QWt_dj-k-XRd;m=Z70`ovFQiSjenj6FaP%K!~eo!JO-Ph zQ+huZ4zq~vRtn;M{m15<;}`(+_x5q|fuuXsh!?*bmE^H^Lz_Et9we^r8=lkZ=y=>8w%}MROg4SndQU|z6<)|9@gyM1Veou&T+uF-a)-=&Ij?&C?J*K5OS5$av_}A57Y|Dhjx!tV-c6Uz{!ZE9+!t4Vj^u27A2VaA zEhB)=IcA6ae|QJn1-T*DPURe{4gJW>WU}RkVNIOY6A}VC5n}R3DLANz2N78iX# zWPMEnf3xWi6#WkV=&?ra_oB-r2AY=xnG`Iy6)4)y$Q6TqyizeYu=ks@I8&%aiP|Sl zosVIp7si1;nw$-(23ME0aKG$)=y>4r0n+^fzaYhVjd1PCTL`XW4K>; zo9IQ)DY-Z3!wJ2GC~dOz!1*DZew-cH>KrO0!+AcYk9i-LHoF9As>6ibZOC?I_|qEZ za52xmS;@C1clGuvS*Q1hH!pui|7q~g;%Q$*sWY9eTj)=BgT6xRowv7IGS20#TKM$j zerGy{WYz#WOIRn++-R6t&@)TZl}y)zb7l#yDBG$ce%*Q3=y0e)gIZije0PHn2%2Wz zS)**%tz)yxC06Wg&9ess@&lao!9FTuQ|3nB1$K9kiKf#Sn-?(T)L!uJGVe#d0P2w; z5!Dq{lEeP7K~)l@I$rpsF0pH~ZtaS>LdltaKXY6z2$1?6o+k#n4dkNP`dV81;BOm? z*d`(>=U-6zrl9dH)5$+|A`wIP$(dQYfZqx=2LTy)Nfh?znB>rAE|-Jie{}qQFAw9W z-Ye$9I2dhxhKf@xvMB1uQ?t56U(tfNSD8h6(@W3hF^nftwxCHXRC?gN+Qhzia8lG> zAxCYT%e6qS?j^j!}p6w z0G_Qzx{By853Az0k(Aw2^=Dn}L5_n{j#XGx4Pg`jIn|-l7!YSdqeb{Yi7k$GhO<13 zFNv#h<~_UJnAzgY;mxl~=n!aI0ZpQyRuEn`s)DCmoYFGDQ1$ECk*KRo(Lq<=FZh12 z{8Q@{O&X~LLv|b;O0qkFBX6|g7uiWx((n^QbH9#6UZ5pDa(Hs<{wV?19P6vADd{ed zE{Cs)8>Ie$B?2x7aBLu`t)je)ikvkl9Tm450&}?w=iX4b!yGc622-ZPk(-nnfcjomq+%8%dvb9IrVO3$h|*|vr&MO2%@DK ziXJ7+UmSJPIn`7{F15n$^H5JxbqM`kq4_Av%1AvM5Swk5%VgtDdu8(u8~(lwzYP zFpP6YT>#xdOCT*w{FB1E!b2Vx?Yvl{lu)KqAYT6MupnR3L?Eg{2~lmLcci4CpoEDp z>`2^jFnHC8AFG1g#D{1J3U}fs1pA>|7OMDwqueC``*2&mtbS^=@>kcW6a)7p{UTo8 zH6#pnG2-Y3M-mv(P+US?W1j|%9Q6Feq;6eXv(fvKbK~-tMN1eU1WO;`{h?uTEc+~0 zp2`sS+j!jbi*i5nG5rT*lAZ(leVo0?N(THT;B5j^49E!&b6qR^5hR!Xy=dgi5A#w1 zv(zoO8Gjy8M8U^_*eJmRN5g3^u=yVI1CACXe&5~4EPbH7bg_%6?o0*{s4;Mf!J8)7 z&nQwIAY%FD!!}UHrP-X$EiAU~Vf{udmei2(>5({+c@&zaU@m^O_F5HJ&s-Tao>OTX zpOEljH>v+I00`DBYQ5w>UNkj6Z^?bNBR7rb)6vl2_oZY4ISxU7I#eV~Ei-)m&?v_m z>ojd%rOjmM%z9U;qJgvW{ra8pWJb^!7}2MO0s^oTe>Sr`Po5oZ}*whm9|jK#_J1)SA-q4M&{<%K763oX-J zE?uF7(1$xolA=(A)*5_{#Mfw4?e$jULT|bBz$=Fu<(*uccy#&x!qVKJI^F^FDCC2| zTZ5$MFYr@;l(KyLNrB62-B($s&T1n~Vh1SWp}s=mhGH-&29u|0C?{)emlgARa3r>} zZdbD`8EHdJ)8Ry?7cdjNBGxF49-T|sw$&`Blzwh|Ir90X++MeNVb-;g44Gl}s?%Q;1T1wm8-_Hab?>6a%U0l9_L?S{T+?rryU(n+HT2&p; zX1K_RKj##7;PsJ%2S~%+0gd-}ba!Pq(TQ8pU}NL0sHOMk9X|de%GU8#6mvTEU{nU3 z;Rt!E?STLUY7elUyO9eT`)Y!zapKDXbl*Do_Ls}3x2Q2s+{fTmB8K|*X0x> zcJ>N&a^d5>K!t!R7J_vEOOab0^dohBv*SZnR$Go=EIJ7XNV^^Xb$EYtLkI6+h{c$% zp8V{rSS8l}VX-6(y9(e^FX+EYju zGC7_aPR(c*&ozT{u8(Gy|G5&=H7~eeP~{h;n8Ezv3?Tc@p}Pn%7l1dOY}-}r-hpGFi>l>hm$_cq38J7$b(`O4-W7@zzPjf{3`_hgXT?cb&M&AfE zH-e~+nqhJC#~(NJ+>VFyEN4FO`q90`^8+aZ#K#L%w7}7JVCZZ`pUju@ig}(`)^TRZ zx|u!|OeRWAXWx=yD9G4i5YjTLbRV7_`f77j@J*iYUh;=Exi4?z9g8Dcya6MWHQw$) zYQ?VQHW_6+%`lz}tJkjBH5M@1SBt>{+pT-zion38`@;8B9t8x{p9!sV-9*9y z(3J%>S!i=Y@hnm`1gclN)0n@S_zLSu&p8^`aeCDoQ))EaKlpt|a^1mdaiq#7-gyqvb{nquEkgx~uxjRn6;k2tBk0E*@N)B|8dXN3UppO)K}x zdgV5^IIiuHi=t0G=^J7Q$l=ZuoEeHZ_MYsrPA&K$JGVRN>Bo@yOc+Z-EBPTafItO9 z5iZ~l00wjyZ|GYLT{=ORy_0lK`_2MZk6z{1j?Ya_FFIcnM}7qWhSLa44}vBR&p*Pv z-s+qgD$zeYH#~2yUc>Q5k)Cf%^v4=AoZwj`$i6(aHWzR2UMF{2cc0B+$9y}1?h}?2 z3dmmQol*!RnacGN9O+CtzhZ#pM$7K3r{1T0?i^tcW<=TBLx_Md$WdC9c3hOLkhGL- zN#!-)N-2STkC#1dWgL!b1=00}_RX8w&c@OE3Oy^PC@iy-c_?NU5q*kbEL@n#`vz-; z95*O(2X~^S6{HY&;JPy}#w=vD{+x8r7aI$|$9%8t8fK7N8s|5`V-TRZfnNa%N5D@O zfOQI281!qtuQ_O+uw+d`@3L&?ynF_MBr!9R3w8Hi=!5w3kvl5TZ8DuhoQ8Pza z7t(3Mx^SsPjMeIn7*ThVoxy*yZ^@UwV*sL46b&Y~6im}d#_!EuHHol-`M=w~iw&K5 zJGZHh0f6sSAc=t+4m<)dofeTLtrxU%q0QVg%?T2jH6)UZiHQCY3bN7O#@vCi1MhY?16 z4zOLfcIz08Kz$^YhrF&6qzuRTT!rgKnki#I2Ki_0N} zG4Nbiqi{361Ig}R1dGL_2pgTPYvd|wjiTrKb4A@Tx?V`0#Ek07sM15#XFz_FUEpq`JGg5uY$H`9cLCS!RX(tm!$iE#G)b_G!o1s9nMZfgd)I zF4>2FqOZXR5c`S6J z+VWwZ2cEuWE0gX&dCldU5|y3!FQ|$qraJTKmC%5*cU}e$dTDf)PQGcI-~6xPpt8g1 zW(y%{IR#01d5m3g#W`PR9qA&SO4VQAM}%Y=79ag@tg{a0;?cdH zi+)S3{1*^U;3CBWw0qmZ6Q?>4t!BgAL_}5GG#vRKk@_*?yCW7A;>n{x=J2?jyDTYO zgXb*L>fZ!+T|Zi0Ny!8kI6CR*G}`nCHgWVzY~A_cNamV%=R>_N@vyxPv6}S(g-oQS zg&f`B>PLwbaM6tM^!x2%)$3^cvpdo6`m5d9lInsj>(nU-V`LaK05~bpjYc##DDzyU zH|K1r#9T|}w->dmx49RVd>X|$!+vyeN7*Qn?i87Nf^TTm_lBMgBkf;qXNs}ao+@np zJO+WD4VAy5dPy1<^X17%`z?MQCzpedgnw_}#Jp@^BYilok-|*|yBO3Ava<4eM=~)Mdzf~zf$#gaZHEE|zetsfW!~Pz zLti#R`Nb~)+zy2=#udA!(Q)zA(p>Ru?&<=5`K#B1jEzPg9-o^(Xc}OQLj%!K&P41= z?)%Lfe#BqDkV@P7c~@6VBF`d!hRGrS6`VR`C<^bp;)>RT^koQKFA9iCyYxnOt!uoA zpU~ZJBZYCJXvj1|b~O3{6#GD2xcJ3^z29Q}+RBesbh^e*Fui(S-@Kv2lsbUCOo(_0 zXk=)3c`uRTceG)F{k$VjzpUzaUo6yegu}PLk$xOd-58OV7ak4PA9O0hs!mE@r^#OC z_a`l8B-N_^NN7S)=oe~!M9%V9GBt40puS5qOnqghak6H2ZsU(HdI6O$r6pdllgjs~ zXBBoWIDPR{C77u_4XggiV#~cN{QI&QYKQ$cy9{rv(<4JU6o`yaL3a|uH32?`OslIS z9Hui_h7Ajji_eSQd5L$;AbpA`tODv9^5DWAhZ&>p7MIHRO$FMF!;iMAyn5cUW$%S| zS@aVa55&NEI7k7m76rSNe$ApOF~$$kn}>efWE%Y#nV>28tR2#Q}WwKn;ku zuQrtRR*b#)@+s}?`|xR6JJ|eES?K#5k1`@BDq(z~1&3~fIAMcLMTFwrQ~P{I>TRNo z`uEtZV5P}ZVsJ)RoKctH%)|96P_eK~qoa*{$0sjN=5aH*6qJzs!b18v3BsuTuJ!)4me`{U$*KO5P{q&)@Aqj?SMhIoai{XY64ruwbn*KG@26-lSLBPGfk zaSG9eL?mC-?>3a&#~l+`9(RA=FAh!{GHC2XvOa^)0(LmwGzKO9LHGBr9e4NVcZWo6 zh~!$fOQ_(v#X~X>>SQO4s~SkvqLN^qhI|)Y)^{wpe`iUPNTj~X49gd(#8Z$g&h%Rw zeGQVM^()Koa%mq(=FVnHzF^t9Zr043?{92j1fmy6ZWrjB0FFRz)2B9OGiL+`42(Qp z?=?@jTBu0)UjPO>oOf5P%&krA!;)RHi%*~5^rN>&lq~-sCWvno*|6Q*=acsqPg$|a zNY|+4$2z`5(tAP-BBD-sq#0%SfdU1wzXwZYvo5+B?5?nLWTWjocqL~stKGF@4_H;QpMVX|4e*xN#O68Kz5DeMhPcRn3?b*QKE zOLS_N+tUKS`WcKc!dfL5xk<>T-zS$_a&=wv^9erowed>|Z6;NYK|Bqq^^r6Tl=93F zq%WxW>U87KjXt}JzYh4m{@yZGEYf|9Ou|1q_6M+4mu+5Ft`Qq?cfTOLOLuedGSe#3 z^+$*$ShaDdpQM#6(vYAd17R)Uxn;IMN60*WI6st{Y23Hgf8}>XsvbofB z^X9FV!kD2u@BWT;lSVNpVTHI`;5-}sDj)Q5a2Gx1m5Baa=9I>6DR*LrQp_j_dCo~L zKG-b;hoqbWrXF{+=j-DA(i^%C%5HqrmUK`)u4NQNddX-Yhmpt*UyH(pT#9mC>pmTs ze8!^WV5jt(Z4#uquDxmNB!2G2jgF2h7RHJuR|4A35-ZwQtah?znC z5UY?*J;Jl((~HY5mXx#To;>PA>PYx#vNI0EhDfsvkFCinVpZ#MM8$(SI4#BgbY)(0$Bv%P$E`i@Ku4%#xkdDnf< z_C%*04HJyTZqA6Eci}LLfw1Oso1%ohQ!Z5>A&&ugX50;f9E;=wV~aW-`}v)y%deaK zq7iU4*9al>=1mN9WLtID2S-EpO6TG==$@(R+pR~0V= zTzz=BrJ(lg>U!;Bc9*4^yix`WjYr3O*rLIdpL-V@|FL8F&6S+)CE`2U*7O{nwCdOR zvCu67*Xjtz$()^OF|8lwZZTeZh*zxhu6ACyt_>YQ92c-z!K;I6SGbLKyH;rnr|9uV zRH@JYTCyo<{Zsm27g>2_=zysJ8Qii8D$vjuyrswvVTgwkTUQBtvT^vRy?yoI%0|tO z`oxxE@x$_348OyO#_v2?tVnjw(eju^Dd+hrgRxFzuW%byNm&jZ=+IVYkE6VSGQ8pJN{jrnM}sIr6(2Yll68G@M_fR1+ZWP~>ZDpOk6XP0BqXS6>r z8JOMd_&Y2#(0S)y2z&>O!eo`O5WkRJPr~xEkKY-jy_4TIsp(gvD;-9uV?W>Ta{fG3 zj%T{u1rt601z54T@rbg=m5Vg;|DupFI0x5Tz7$+;$PxozwA*fL&kTYVs^J^Lps}wTuYzI>Z&3(M*W8{5kQD7EDjLAbIWHi4Z*n(I*t8zcW5L zuqokPz>Bp7BNgMzOBU@*9N{(&nj3aZH9`K}WQCt&WY|FB9I}4L%uF}&;Sjg@pZrC+ ze79Uf-xc>T$CA+jLIz#$8G{PvUBf>S(>k~SUjB%^jOep|{)%1X;ZmqTd8z4N-F zo4#+y`qyH6Q=iQ+kC=Qsq=!)!eq@60gPzSX3f&|4(|(og{nIl)RlRl(kNcA2vTE8` zsH>}`q&EaNoZ-TJFP#2Z;QW=&zK7Eyeypp@)+j2SJ7zSVu!Zs{@vbh%Pb|1@NXz_V zp>a6BNY?tua5Rm~Kp>uoUOfX*3R}#OgOA4Fd$8xhjwfn&@&iu55@yFf35`%-^ z9<^HZvh{Ve^}~eTc8!Sav0K5m{mK2JGwgrn?@l5;8Ki(w2(2^#|eQV0eQ2!v- z_GFgR3qOzfd2p~{_F~Hl40h zu+Jvy3ky5jR@{}y_-z)MUX-r+LU4>2NZmrICqzRM>MhG*na-j5Gb(3ye);^yQ8ayU z!3@(Ey^J`@r1tPq1m8NbuVmz~_lZJj8GEWTJL8UJ9dO#u>locedcBD0F~XEaVfA}g z8Ra&%N+&jdkg;9Q|8YvINz%WhDUZTdXoub@o^vloTTJ2)=u&$vI6|pw248yyX;1}2 zpCn(A`*!}fx$Tntt@{jG-d%2Nx*y3X&CAxx#}Nuv?aa!2v-lNs@4xu6Q8FUI(!SY( zjDisl11bgCVT|;zA;xAxTO>a;Ijpr&r!%t7M&q`#bpMW&^Y5q1>yT9^S-m!1{{&X2 zH|DVjQ8)XWhSlAZc_jyEhj=Y8wE_248KfMXCxq+{bQbDVt57H{`N{|&j~ zyHY#NdV_u+6f9fE~{{aLoOe**F(1kULiPU)nqY0y_4m~j?aH! z`S`Nl_mtzqVVr`L9e}@B{5Yfk7-9X8Zv%djKBu%TiB78*-Qvz!vOKT9+3f889f1b_ zniJJag8a}%f8@k>9x3^P)6A)AuELcG$JESuJS_k9BaDV9uA-0r%?-gVt$tNAf9t=n zWVJB5uu(8$^hbhswYyxj;f$MIt}plQSNo4amTu($&w-*ePg28xBAu1-JAgWeVeyi_)Va)q@zt@#(TDLR(l}K+jerf>3!4lRV z8nKWv*c(r$KU*dnc_cHYvs2G}UUSN<*<)oO&m>;1gQir?bkr|#{;lrEuP_ve`L(&Se22SXF3BoRe6Yk0yp zyKa{_sPbND%le3%k(SB4#isQkU ze(dotFCJVr6ir-uSt03&n}=qq>=<#lmzJU|2+2AoAp5TDpnhxq;|HeiV-~HyLizjf z-v`|lu_S;-kH=1kH!oVVpfPCiiSt!!x{f4%Ja6#$lzk1O2yhfq(;78t+=fbq{M#N) zJ5sA&_%oq@!ol|W(8Fy`Exf7p| zSZMMCIsj|}h@}Dz7VcrgQWrOW)C;i;v?;k@^P2aZ-=rzEBgA+YSy{-IgH$4tfgIZy zoHNC7-yKek54@g{)A*;}TQ5(V3}oXPx@(Z|Y@-BAVigA1iX?^AW=3_{b*<~Yur*`Z zK;~Xj2(*-TAwFL!b;hppp~l_B`y!^=3)Y3diC&U-`R*si!G3U&0h6bsgN&@C2UH$n zj{-KWlKA<%Iv(4VRylYzp{k>p%uaHFwkY6iq}YvJEd4OnoVY`|PRjN33$z=g1(^7* zmUGh|0vf(U(jM~l@$TPKJa65jlB}@7tMd+>xVpk*0~xnNxy)Wf@dVW)lG@G~Ut7Q7 z))#sE5@lKYTzcwTP4(h_Q!|Ioi0D<}b|vJG(NHoZ#0#Lc*kt3=^;btSo;S`kFMfPQ zRZ~v#3i-xB5hB}x5!wj7FAVPPoAK*G3Fn4GSv}h|_CK!N^Zd%;jlQHbTT45oD92)%*;ph9+2e* zaqRo^RDZwhEw;-Y`o3={fW>0n+ zH&k(~dRUoF`b;Ps>QiWoR}a!Z7c6>DN%z_x(o1>$-9)=Wxs&orzV2q2At(l9x)Y@T z!!84D5c69sF=ctbhE1h$_zRiEyrn!`ObLt-A1~bh?jCdPD^mv}u|(MEp!TU#UAnzqaIEGQzdya%E%N(W1{{@M ziyzr^aoC~kuW?K%f8sVZ1@5pDPu31E;9-f^#>W}LC=Ckq)FVa)>`6sZIK}z_JN}1Z zFg@j+2p*%=#w6@!@!mID`J`<29D~WKac`}*I+0EUSYV_s;FOg38IF6{6&0{)4XG00 zJg;K(FSTxWvrT;G^(uFCN(chqC@7_%iQy>puuNPUL4Vgo)WZ!GU~OM=*@quZ=nGy{HIG0}-R5bi}ufNum& zC?exvXj;R1?ID?t*2bFj_6yy;Yr6`y8OOoh1c^;3R|FtX%ZXhryDxmjGj-=#F`2E$ z{R-1qBh3x}1~4R71gg7C+hq}zlevHGnYsErNj3}KQTHkw#?}GUIYNZ~8OpzD*r#Yy zvsGDAx=+^(yIQWykUs;mHHo&;n0qA8G?^D-EQe_}*IL)g2ytdxW>dr6?7bbp)9&sA1f-zC0l_^G zJ^|?|o9K#889^7x!rrOo^O`2zm2wqZ!-!D7_%Vv!#!!$kxX0wtXbZqNS`V&h`> zZt2+J1cxBQl&%{3Z%bQnd0)flWA*H`@&jplOP-E{IQla_gL2s#-^;19r?a`ROmP;x z9H{y^%wa5mh+>d3i08PHRn_r~Lx)^vgBj?uKiYfajy@UT>47=ILrc= zeuyUOaLc2X<0?wfKe6hAar@(K+iT5T@66-mezi;0D~k?s9Icwc!yGiM?_~RvwnEp# z1LqI=iRMj)RZ0y~$Vc(>=q^FdE5N=3#%|xjm6#X8)9=cd~`1H~2 z>G3z89kV<&`SoM+36LR*YwFNc39sCQy?WDQDvjmSW%=o>DvGiL_w%=Chfz;}hSLI2 zd7LEh3HXq?ibuZt6q!!)nl#s4KE7{8iLEnxHfanYLl?AKTmr$P1J8uL%g&s|b~s}2 zQNYaIn>jO+gMSe0C`D9BvN0=JIUq^c6$Z4>oLhvsz0euO(pD|&ZC1hec_N+NvFAjg()a?tf4 zA^{Y8tI@9O)V<`KG(W$;&yA+CWaQ_4=A66=enN=YqmXOu@UK z&-pPe?dy{g>ua4QQz?N6=jHAM+6*2bf~tBVKMFgQleBCJ|A8A<8n~-myzg*^YS!|R zAZVtF!pOMdgsv=Ws0P9IWgD1?ZSNMoc0pcePAZ4`ti@i*jN^&S1PFEmNd^Rq5Sv|p zYENtHo4FrzmK>-ZzW#nmppF)`^tcG%9k$08(9Y5g&Q)y6y_uI!A9(j(+VxQ8>x(Dm z2gkgm4pV$QBy4ha(WmAN8^{CB zUvv_=qaqsIO5mLSp`Y1EQ2KVLT!nJ|vyV&4UFlB`Sv2$#7D8dg4z0=Tb5`2?VDr-S zm}K#9H}p@pzNaME!;V7)fJhrc;Z1*6~<{50H#zUbUJUFTCQ%ntL3nSZ=O4n0QPmev1zIO+eh$2OKYs9;mG+K~sSj!@-2% z2+`#55v-ay)wEXe-D`(F*W(dCu5(f|gNQv|9YVEW!v7%{6boiEas3c_nC+6heX!7b zr^S}45dQHnl7QRC8?jz#KE66TKT<$tjpkLCSawy7ta1mbi2(Mr-Jnvw#llVfVnI4*Uf$+b9>1qkaQWTj!MEVD3tv&0XbH(Up%{{urfzJ$XE^p{WG z`}Xv$=sEIiGm9nFJ;)>(a&8ba2e%sDO%X-=zr{OH>^&)0oId;#~o zGM3rN@KmWCc$;!NVw1Gu$o0YAE3T=<{b(JsUc|HP-h=devyHR&V7%I zg5uY9Va-kt*}SqVy*m>U!cj2Uz`L{wkWB*LyxHg4+F3_?q z-5hDIaN^r~U@;Q2*?qN|xh!H;XHQc%-ORi2GU-482d}-Yf($r{pyU9ZT%h%Xl7L!O zV_$c#^USwR2w1}uEqY!hHdrZV1F3+JdO5f#NMm;>&GX{AYj$d3N1ttR_*SCH6_r*% z&cqQfgNKXRM;<`z1>1Xb>&&DGfAsPmhw=8krreHSu$|Efu3w7i8A<6 zB?*>kz+13#^W@Dt)0#`v@Al7`X&B_e2%=YQk$F4-2In6-b%Gp<&9%du-9Ik!3*&nu zSI>58hte1%(A*F=7Qs+Kw|e&9?-kjQ|L!JNb?cAds@WEEc5_na4z8`yvsmy{-l68V z4+A*sZ1`5U-?^~MFze5wZZh^wvMk~r5}G8HYhqcGAX*{vDtMq=|Jmu_G#|rD4=*uJ z%O0priIsrQ2T__{aOpY2^D?ltcKy%Bn60__+z;=Q#vUPn^cInR@12IXcP(6@pS8Zz zQ_?cC+2vJCg$?7+6Cpd&Lkex4At@i5>TeVu82-tiEa}Ak&>HD8!OV@z{>I>!1~9_F zX$5+%4FBm2&I4Kl2UX8J)7yLh+lPlU$3l?pP1a$M7w&X6_ty)$96VMVdK$KCymNi{ z_?hGw3~WHc{-laPC|417Uv%&#)^;P)d?ZT1%^^v*=_QZzI4JO};x>(+WdNh^Tivp} z@KN0x+poV~pY?7FHrQ&n+WOx}OkBohw_97P)U#<-+okq0PqV$dm-PRU6jH!y3nnj| zoAj;{oI1K(YZp!JyRA4p+#C0}PGdlqgHZxd7uz7k6%urTw-?k8!qdq7rt>Mg-3_U9 zw|R!e#^Qydo)u#r3D-%9U?5SM4F#SO*SBZhuSs6Zed*KsM~??EgUdTfHvwr!$SL7g z3XwYau&pTF|0;Ku_f5%)c`gh4bDI~6GENK<(f^S@7Bc;{!1vXb+#&Vl*L|0+8IV|X zf>c6CImjys@7EG61XNHSSs^8WJ)DPk_e$P&*L#B6%i^G ziIPegG89Q6Vlr@JCSw@(ImKC}zi2Pjbm?QPKB9pL}L@k6_`-QRbCOQv@wElBb8%$v2Njs^TL z@#J=Zf%*n~XM5leySj;bP`<&}&F7drUeAy3He_$T`&sOK#Jn!7U0bQ8HDwHLo`?z<+vS>?%sJOlvLPScV|SoY?uH;6V0Iw z56gog72yD^oi#jLXQq{DHH3~mx)RcEUg;*`qd~x+2{nKcw*g0qe2WB1vuJ5F?)axP z=q(q{c+{rNH;fIN*>j-=6##<$9s||R4=%6 z&ohvWqUVLl2vAlHUSr`nfN`q8Ljk-vxq?Z?jEmz!r-%EY*@iU(eL?ph7 zdn&sXRxwLdUk+LE>i$Wc{n zlqIVy>Tk11cyREGz4cz#@+vuE)gzm@Uo0`Z+Hd@GRlJ)IbbDL8PF}ot+0FjdPmboO z^bH)x1 z$)Pr>v3u_W;b#S7tSNnOFdPWjL9T&3Oc8G}hIF+yb*rt;nkvk1NZtF%H?8^OYFuaG z00=_+^+9G(aGR(?qyTMfP50xD-CDLUMuJ}9Is}(3R@m5QAOpaJSrXF2lWFGHwn6Oo z(G{Ipj>WWxI&=BR+rjcd!7l?8BHF7QtsgY`AUE^EdxxWaUdl$pWpCR=3VWIVLIA-` z<_IPZFbbLR95S@Ec6-0J$v0)W!UmifB<~0?P2dZWOC_K)0TY^#lCa9YFq>x#m#x+6 zLsY)FJ37poQ7?ohllb8QHCb6HWKGbif^7CzHZ{)AeyyURxf|Fqf=e^-V>{H8O6veM75w@1k{prh%<5KwQAh)y@+{Mt}kOIq-)5 zQ-P+EwEh+Sj<(_s-#M)CupoIYe_*{@LAx7Mg(v{{Hd< zA*XBk?JLIzs~$G4ZoJiXrHbmMaL)~#IW!p?_U9)dTj`ix6R3*{HKMx5#H z7Ve*m7%lFW;~g(b&HOGrsb z%E`(i+cxZ_w`Z#jX+OQ2t)#j3c0#Gbb*ks_papm(ypxWs?tUIE!N#_uM=vMWl6r3M z%zlsCzW8T{#3)Fa0~wash-|EzzNyN~`^CkM@+PMA`2zmi_EfCcjysn`7-sRIMbcI6 z!h(mcv|r$pR{uca5X+laxJ|t?tY(WG8p4wQkyFmy9P}SeMOLo&y*MaY9aL6Tq)+ue zz_Y|mSh!7ORf6}v;$GU#%d~|9tm<~!`{ZuKZ5(`8m_Vag;um8ByQS{QjoY~&3*)iq z=1-Gc=}YzJ$yH!LApx-f%Xg7MoqdnPA}9C$5}ORk6MWd|wB)^h-Rz(m=@g6ZM~lX<2~5!&&nmQBz01a0QFTT-Ytg)g$b? zdfPDWLy-SE`FXU4{M{xaSt-G!kSnX*!<&`Eb}5RTr9QhPZ$L5oiK4fYgzWqLyL%?i zTPb`XsB_cU`4`A&A0GV0|2mrbN!?tl*K=Uo`Yi)dQ8BLy?VR~r(=F?Gsons?P{ z`W=wXh>)DpFw<4G2mJ*jX~9DqIQMsZcTyvvptS`jqry!*MEI2$BmHn%@f5F*?By0A zYUv8OSitUxF65OWlkA-vBd&>Oo;$NXghea0Ig#~q3;x#uFAodAVPgp(7Em4+o#=;~ z9-I5>`VaFS3#4%>3EgSx8Oqa%{Bba$~EH_4v~cAZZV11#*m)gm`Ydp15`}jbs$Gig7#bN}qd3D9(QnCU?NX zT+BiG_PO3wb$M_`u&Bd}H#*zQ!w1fiF9qa|VF17xwg7T&a{@Yl&gRSISe!|w_yYegw(8*5vHo1T3$i^D@wBFD+FMtMG}!P32QuF-5tl z1r#id&yal#{KOn@qfenb)amG^edrPY?MrNjm#g69^uh~)^a~IXum@g0x?AiNmnONn z-PTUYcg>$JF^NZ#dtRkkP!_^Nc)0Ze;22#JF*vMi{imC_XvJN9&6g-Dzc7(Iasa>Gn~P^Tb_iuv4@y6-pK$mMDJBLOZgdr@qd| zzwW-fFK^B47v_Af0WG#&<1_&7#y!k-=A9tpX1kke51}S$SO0wxqcNdUzBwP0AbRtl-~5b6IPTHR|BxW+ZL?Vw+h^%W-=(Te4u#dh>b*2$K%FDAhgOFl}zL=JI^29 z?1)dS^hxc^OFWd|^<(L=o?sm04H9QyKpQ*{Gt7ZM3A+zrktPBCC%JVSUiS%@+;YD# zr?<5(=M5hF!0UjhJ#{=KS!nlKV?F7lFom7jKSmije?QnYhVA%gkc@cj<@1s` zY*2`RiPvf&?M;%8>0%X;YGZKf zfhiAYdoYXz7(6b>qkHx#?RpWR0tfzZcb*VoI$#%vM@beSAiEVx2sHABu%vNmyfaw- zB-~n_LD?c)b?@#HT!SnCK-kF|YzWYYn3^-8xiqz*a?=T~{gTVxZE5)aVMz7h!kb|G zB1e2NL_g1c^&BY)Pw_B?tb6rUG)ABJb}mMcfH8=2lAr@131PhO=4b*Ev*e?227A@W zHKh#15!X&|U(g}}na-do8>~Wxb|ez2wCSwAoWLMW^4;e3PRA-vX1__KECFLDs6_}H zQIkz|s0xr^l_@&iBeqf+tEwG2Ztl{SIi`ZUePA63!*WI7qA+ZS+M&J(eYL0ik0#ct zM*-KXp1t>!zu+TkM70=t!vK_A$%rt2<6w(gY9(NzZ$0j=^)ggh*c!Lc@T5r~zhK5K zcpI1|jz-pzk!PR#1G-*)-?7AVK2er0Yi&2KmB<*f-MtWsffhKj`jF@IKX+=bB4Vz_$lVon63p0~8w^4h@oFoNa*P_)yfOD(CT+(fSbUEiue8eO+8E(KrBY zpMpC#@NwL1$>9us5Vl0RsjZ_;chfG<A#Js=09gh^B); zV#@8+w~zWQ!hoN`22DKd=)UoTE#kSJ`4O!$r82!u&z3y?@vmnWk`*p~Kc35fOFp`B z*ne4ExyXxi-9r8}M^jd_1J*^Oc^lTXb{5(dW%aDztj> zNDww*9sGb;dn4Qnp?ovMy0OAM++XCbY`SLR&x#lFQ;ei}@-Bhqg;xe1P4MX;WtyH| zsMTl7bb6WX#(k$Hj660P{h_?Sm%W=EXxjo-LR}le;TQ9_J$|D0)#zT%uqP*-pXAka z-@i*1pVj#7YK7Vu*`P6-!q6RI_=z#4Ai`TSlt;Iv`yLHbKR%n@xP$tp(^0w zVL@7iRaP!^-!-nj;4urqC%;5;yn5wT#Al26tR%jJCE zvoi#`^L%IRlgAf>Rb*09iVCm?Ick4mZa5Nma^KzHmBY(CUDAg#HUzIK8To-n)WAZZ zUlF)!kQWC(7M?^VeewIp607Lb)nXgIrRTf(Rg6?>Q`Ue0lt&<#WvG8BD~WXM$or@e z{Vd>qjt*0ED*Yv<55u^v4u2-H;RwQhFvSNXaN{$MPzRcX%rhAr+AQUwctC1-;2X81^v8 zNwfnqcVOueFvY-l$LP>Um8DBv*G=2{r`LJB-I}vRrZJV1f7)LhCjNc2 zmk7w906F{Z?2n@WoCmbFutVCfwQE#Q{P2`; zwDq2|&nXU=x`ZbiV9pSkK)_89hw5$CBFgEf?jBCLpz&?QTWx{)ydWms;%h|TuTKofY29>SKj>L!kq(ni- z6dQN63DJU^>dNFEIs4JKmcPd_S3N3D<|;`Ar{dftC9n*8VCztZrP6;1DB9&;{5U?o zM$`VpAG@dbzSUx@fX8KE0x7(wP$7WhYGDV~MAJ^WQu+8#mJErnqT9szE<4D+=E<{_ zL>Rfv3WZbzOcIbZu*%9umh?lGb$(*XYoDZ@nX3!;@0wO36tK!bbz@@61uhPYfsjP* zUwIeD-Ewrl${=3h;g);54&WghY@fhZ!ObvN*q#H_U0{Vw;cpoaZ|n?O6%{+=!FV+1 z`i-O4n~1AH9F|rL_J$Ri$jKv1z4<%M9tG2|ie2K44d-q@TWN*+dH8BT?!og6WCrH# zy22bRAi?e3+^mtN>#P^b^u%Oq)qZ&unT#I2I+}QfxTdEkoZXD){$k(r_>QN+I=6C@ zD-P}nQb}JDv+@;f4iN&vcvkkHz!T0`f&+;lM~YEOO-gAA3F~fmte51pV)@~!-R<(F zo`?iZ%OyZM4eB_6pC9NmBueR=`KZtLqKzS!69kS_$JTO{auFb?ujmV=aG}j%p{Pxq zrsvj=jP+JMy2SW6gNmN7%oP^`05vSZHMFrHk&`2L-13!_zLi5eE|#EgmG_-?*xPwK z6#{z&Ja~$Y$UzvL)gsvPXiatN*6Bzbxl_)`6^%Ph=vOC408vXDtC+-&C(`jl?nkR* zL~ZD55mlYBNw%%0wD34O6%Z{+Arcw*VIDlJXuT@_iiX=qv724ZKRj-K*xX0lELx3* zMlBcYhWg);;l&y&%WKb<^mwnbHx|sFkf6fg!CrJ=FeGUZSEJ;fVXF%E>km!lcWRxw zULdL}#{07+h_@+NMRba3kp`!M8|g5+V(WIIeYxT3I1&Rtu-LHqp5+dd}Wn4)5+ z_KH)tkPHX;?p};j?F`>qOPdFK-uAVcNSqep5T|||?}h*kb2Ku#OSs7{Cyuj|7|LxZ2d<9z{ zoEOKJ!CXmj7J&Q%mKKOU<{!LymX_=4F)!mITmgv2RLqfv&r~ZcK>T3jA5A;6L3GBq zz4YTQ-6(i7@k+LUS|q#IUSpcB%ZxTjsL!kpo{!Ngtr%9{OSKr* z^#q1qp$G&vD5!%3u1qg8&FsMzJNRl+#Cgco83lgR8(u0a!o} zRSxQKk&q1*JJx?-3e`Hu6xfs|ZQDSX$jSacP?(v5u(hYGluhC5I-sxqHYsj8%RBac z)M5mDck;X7mQa7ZW#NrSAB-%tihFJ8#$QKrbW&Y7aHIi^4@_-e{N(JI>qtm^@MW%H z*_N`UGlKf>itc3-*1^3T+(p18APMo2C}8(0C`;uF+kect{Jwex&6br^D3}foB?;Nh z(PNpa9j%IHejt*cc|80{L!I=wTmJxH#1tfTka(_#IU`Z!$!71*?N4oA!N8(2Pn4;c zGY-1TM5{DrvA7K(PbSPzX5IB!oXkmg#ynDN6YES0CETpBaotRuBatDy1pJ8lFs08y#sD zyGcg$W8%fpvF*_=Pb6iREnaHjQ>8pwZc{wASBHsxsB=?>19uh3+a^3sF7Y7m4XLc& zbooPJ=*8bx?(wk%5A8YrY#Qf~(JMxN-o_6Q;xNnttrO%6g`4jinpyLA%4Wd1*c}zwn$7RppPH|5D^z&VfWw;YhjkB`>_4rjiUUL$7t2fz0lN6&_?kwr?*M{>Ny zX02qkSiPBcD|iFyxqUb>kXRCn}yq_EtRe=P#cVRBrW`Ci{WTH3Hp%IOajjrQED z-I;iB?LQ%)XazVYlx$t3FpHh@-BjE02TpQ_>prZk;MOeYCIUfjDKOE1NJCNBAPD4W zkW9;4^@=>1xP7PB>%=R(DTy;7fKc-Y_Vxz`3G4xkGILllA;?nxkXwE;2bo5MyVE!~ ziRH=e6Z|I>w9s)uPD!wxs}p?vK|ya=c6yYRyX9nx4b{`Opj$sB+h=!Uq{}j=oamr| zU7C@{@@v1|Hzw)>TL({=a{$BD)}C(eh{0NkwfVCxE?LLU+n=)XSpDVgLE<669;f{A zlPQU90(ehhncf@k0SR6-WxKcnfM=yw}?fK6h5e6LYS;Gf~RXr9Uli zzc}bh^#TwDsywig73dnEhZ{|Cv;t!|5rZ0)F2U8^>ki#rUtrX{Og53IrLpJnj4pCA zEV8%2_SMNv8nW+y-ZSPfP<-!cH=9gc6D|U0Uo1E~X-Ce4$+iUZZ+|$Qlw7g)>B{4} zq{RpaS4hKPKP7sHD(79!IsSPpcQ2&QV(u)v-J6^OrNtmf<@zJE@BVyR$}5ohy!dQh zmg}+$7jw()7Ck8eJ{Wwo)R`kDea2cSN&mLn?q-GVceii!{`DxDF@d?ba4;1T#`;E0 zTzz-^p6k1vG`3`|Ze@S7dl3jUGJ?JrTKk7b>>S*c^Bui<^&*%R*SfzlQMuOaO*94I zx0OT#2H+O~Rsm)yqnw7ySi=<+fv&q*{i`Q}D=RiXO_|1Htmu`7NYJb9uLbY(1z3fI zKDv?nKKl6R({t_$toff7Z49XobNQ75`o^ zKgVs^$QETG&uhoCrSj}}*=4OBEm~0V-|M}tu@Y?;U#G=ZF8gfaw{d`QR{_y-fjQd5 zi>GP)DNpvn=>un*Yo^K{`c#YmF5F672--wI=>oZf#u<@P{=22WHJX2iebhS`c^*k` zE`5b3YGWS|80=uI9W>ri%GTQ*@u^E>sr(@H*!*po@fYL!8VYnYsZ=YVq!!FeK|cd1 zX>&m~T4Yxpl&QZonLd@!aUo#-m6JKnA)%`*?hXy;ZIIJ=E=7TZrbA!*u4#sPeY9No zIo^!3goW@yXoT`Qj@^xkaT9A&BpXi)7Uk(356O)pS~w_g24XKD;{~{y*eKgW!CFJN z&5eim4APGKj9l2jcY9PlF` zlufa5rLyuougdK$d;0liU*}+2M`!bTeX8eyNJkr2fct>w-p7Z*4IQ|5E zxPceb&kT;m2&e?mMo$!b5HbCAhx2o9;^uObQH?|UDg*1)X|7Pi0GmVt%G2E*G)I6% z#HiD<FYOWP8IX?4&D>|rh2CSBo&N2nTBi_<4Kpur^xwSXPV>HLKo*aE0dOc z8PhcrO$ss#j@!}1xxUDa2WsNWfAEc2X3}T!-CL8S>yw7FgXmen!r#zJpwuiJ;(yZe zabQ||nV?D;%?Xy!Nu#j~gk53?iit#M8iA~L{j||zM8iYr$e-BP+nI&3=q8CI1cn5L z63pa+UlfU0vn_(7Z(R<}TILhId<=lbgyBUeA&>QsSRS0aav=KNiFT$d8kp!4O}( z7f*C_Qp8emoA~cu$toVRbkbE1PY};6THuZE2wo%-GI&nzqglfzzb>b(NoCfY(>J20 z@mM(e7UVWnsKN)I5Za35gU2G9Q}%4&koq)>r~LU_%$+&)Jd%X7-~u{X1CJbPFh2|k zVoa{qC|%)CFZ6ju`n+0qU-7%$POmY zKQF8L>L%FQ57e@_6ES#s7S%xj#Kkt;@yY ze8TfM1&+IMh}bxNTpyEup6Jvs)vuhc`y*<0(f;FUH%zPm62Rc7!tM|CnbkTS`lZcbncHe_qN9QDXul*prNXUg(#3eu$5O`%M16;BGmhiRXp6)&#?%kTxCGocY2JhhbvzOoD zZ`(-*`ky!YvpIr^7XhU9VZR_|%woiuY+%NX@R>(9BEDGOnhBpOGR``2gt!vW@HlUb zi%{@(SWY&~ERmK}u(Xy%m{}jKVt5(&)2GIr-uCijjCsMvRfIo6kfA7H<%i_n^V{HY z{_%-u`#AUO#`dgIv`jNZ06IGaTHR<87i7gn2SS%@TjQ4{&Ya$+vhTo-5&r2z|3F{~ zg%*%rhZfo z=HvD^oq-|L%GdF#E~1F!EYSx&$Z%A!yedrYNFu)&De-tqL7BInO? zC3k=6;Smz_g|N^sIkJlOjzJE0i}b0MsxNCS%;}Qie*af*jR4bWYFmyte_80)>NfKgzh z^xA~_CgLfFlUu<%P>dN8@>=JC%|Pf0?w<9x1xhcj@JoFyVo&_UIDnc>MJ5utkDvN< zy7Q*Y{Pzek!Q{9f&+))F_Wl?OXTyrq54m2WZK9sD%U z$hLURRIAl{^mD&*aL&84T2P(S1u)X*P#Di^amO+GxUJsvjPEn=x>bo}FOa3wF*6BV znZ%~FDFt@4ia#il7%eY&xTWV(wK?UBPl{56x!|?)krfia0K0{iz4s5A4@De|a71b_Dq`$1qMb zkEvd8vDXKDZM1PKNbn(n-kqO+wO!zRbd=%b4yWwCv+p*U<}^tEuPyxbr=a%*v%>Me z)p{@O)J*z;iqP)a4!IY9R;#azx1;)7Sl9$cx^P8+rZgbq?`PE;+yx(u-+NlJ%;N5E z7Y6mxf8g*Aw*U&mE@)n%q^zxlqMRb)C;qgp;Us^-)!o9&-@j={SsvKi^N+s(I@EZ& zVbW#YM;DGQ%hzAJGU2(si;YjQcYT2l0YT88DB*^abS@HN3aQ3kqjZ<6U8+30IHrr4 zh&~*y-OxB7DDWV6U*%&*Jl+g_Eme23DHT|+X%g~bwvB2nz)xUR;b^=PFLy`Q+P}ON z)Z-!dJug}Ev3!b0) z3j^49UoU%Pzg1SFX|&@#$7GRi<9Uad4+>W8rFs@+kDxfl(?LK#JDf##dTw2^w&|K? zV7tDR9p^jRJ(*%eQrr`CZA87{&xb$vimLvk24J;+C?}3|s%jSIZ)WIUG4kr<&7%zcs|%hj zUGy|yTcNV`cDF_e0B{URNKNijP38ta%_JFTUE%wh*VNufk5Iuth91CRC62IC3&cA7 zk)UzKpmpJJO{{(eFPrH_h{`6Vs#y zd3%Cz9l0So`t_0Mk)M%c!(mA9vvZaYBKCbe$>D5C1p@m4L0ypbfO}cU{fvvHMn2ju z4LzwL-vbgy+HM{2AR=IEDv)#vxIMJr5?W4*iKE}#W6tVlxljM_NO)E#(&4Urojhd^ zmF8%bI|Yf`@Q4-P+7A&1Wt*lqwzh9s$KUJahGS1hDs@qNd-lBBSs z^)161-vlkH{Q(CD04Sz79JatBtmDH>r_#-%-6<%g`AOvDNePVJAAp|m?+tvR>*Y1glt-@k;EC{W?i zS`MsL1tsJUlh*6%)E}~h{kKQP=IhO@vqjlYmv*UB0nxd8kjn*;WZ*Tlm8TEx{6=pg zyC=BjLvVlq+mTwLrGpPt2dSH|8wSDmM#BDMVVw*uIiJ4!rtSSoo zETCnRrx)}Eq(!D`PvyOGS`%WRWwuSNefb9mVh|s<>7l~`a#B$rA7&Vg`XQTu=18(P9O70>PGA z)t=p_dB5t9eeDevuDyMGYx3xc<~up~4MKVD7JvkR4m5URe;tZtIM*5VV35{PW~Zt( zQm{kSim)rxlz_|z?7~i&afx(lXqg#3@c8pPD8g&MM%`^qnW)Hrqfl#}gt-5hTs|#i z*pfTBJI(*kXnJpwvh}|K;Ko}xfl^dy#*y>4-rf+|pTO4`{_ebFf?4(d0Fcl)kUt_k zt(k15)W18!mu4AbLn5nAhc8hP6J7=7r$GQikNz@n3)t>F;obG^hOpYzx0(N50>&8K zZ4mi1xlnHNv+TqZiL_XxUbv!If{C@kl69dD4yn7ye z(#~4E%wp36YJYhdMR`ei&xg)RK*76^S)C?L`y+K@z zJgN?h)55czaCHysLwTtPiD!?$%RDmazj5vzF~14tZ_$nhLA_V1RGdi3H-E$}y~?!o z71Q-xVlDvXQ9Npn-+^T`e&-Iat0=8mf066lRn>jWh9nNEEujQ4#T@~%A9OiJGulbP zuXeUb-O=A0HE`#L)wZ$aSB`A@8;Owv$eV<8miB~A9D&*|x~=P01!fq^6YXz&b7;XW zb~iT^SU(DQy(`oHOz~|&uXQUL@*;>_6L60~w@nbr0Od>I$5gPikw=uQ3?iC(dkmG- z{AL3_ceM!4_3}||2(L3BgiSCDQi<8rfRVqiAn9XQ+xcM`e%!J{PDDX(yuK|a5lMIeTi%A5RrBwGlM|w0U2ipR4WNtf42QU z9s@sj-p-<@%o+K$vQl!M#FaonCfYI(QWQWW;yv%o1ywFOD9p%>l1!>wR!xt2w5)l$ z2t^4~l8|d+pEX7=Gn)1?oR5E1x#&4DapJX^L8=sSFb0ybf&W1=X{RKucll?5N z`ox>Y*2WsYQ&HYO8Ht-#k;b3IRegKf?U;1)c89$ z+)8gRuTas6OzhLyxM9U=ttSISkQ5f&B0_da9a6OMJhgJUkRfRBN07fqT^_<2`;+ms;lrr8ZgcIeEXs7^ZP zM_3XpVgq|Ak^SF}AcxwjO1+Gh^|P0Mdwo3GeQ71- z@&OnwiWg+7j65QgQN*{-aV?{^q>+ouq+;IgQ@4jHTLS?d(4Y|<0a+lBfksA$cOmBs z9cSJu|M|4VoXh^@T$Bgz*-}c@7ij2+L*xL&!V?TbSpfDmz81fbBWUcYv@L3y?(j|h z!)*tt*TO7XNI4T=%e_vP8Yngjl|RX2rGNM>xWA;4a>=pva63>&79p)D^9(9XRQ__J z?yleadG=6eja1?i(%6ZHMQnr>Is+vVmmOl?8|$t}l5&W*=#|)#Mva01U@v+h+`Q)3 zy7+Ig6sjDsOY8PnzGPyUV#34CfM`0F?*fLuZrE47s^!HSAMXa!mOEAFlZ=wqQ4DJM ztPDt2p;Y2f5)+Yl56@H2_b1o*CmHPuDY-R!us{~C(RGInGXadS^|OP`2b;L}vYsrS zSV|` zpi`{WvZpKV96Ecr@)Yq8%Pr8%sPBvX?9FC5%~y0rqPdi1^%KeIqye=aA^>(zke5Mo zLqQ!JX!!|7LjhvK_IC3-zN+nayIy=a)gc~ytMVjU`afV)$u4*WH4>EPB>Ldo@v)LD z`aHRT@1G(B^;)U0XeJSe>0{(Oj78WWb=^flU(H`=?LKiuigEDLd~Rr=z&}A~7g!1_ ztXWsM{=U4D>zV(u&v!GGKcm@y`VkRE@^``Ww$QLCYU-c{jEpqG$R)DGN#pRTrNy8B zT$l-qOw~$}AYd)QxK&u;hZbT1HwlhIH9CL!V%u<(fag%_hF^wax%$a6+(d|+s24mw zc(EAz3y_dRHMikg1N?(p4`aTlWSohYy!n%OGc8fjA_>?k_`XhzN-rJ@hXjZVjdu;kg$WnSk``RQd?s z{ZHgcYpe9Gn;MM2R2?XU6^g{P;zfYt{DpJhvMQ-KP|hOT5Nb zvY>Lr8D!M~!HLAxWt%g+ahSRlqg3=2wgyf+uN zaLm78Ah8PMBS6~)C@v^Wk%=d>F>lPO&gZLzy^!6^J6KnzR z@*2YmUtcHQU}*AzzmN7BAg_kpT`86Py5%ko%H}% zb_p*I36FGFx~-Bgs34gy7;Wf#fV~5)3oaneNg}b1EbOXp_n6N(!@;efV>*yOAbkjJ z^je;pfr;s`B-$t;;*e} zBR&kIg$-U5h^2Gk2ga;m#Rtu;qgOlWg2c_z`-ehDUGGxi$fccBD6NX{H@bmYnho2R z=NP^=;+CefqGTa}Zw5xhVCBcCiA@&dh}>=|n*9?DF?yTdg_ud7=q>s3qMoo8*7h10 z$Z%W?P?tcs4Re&uo_M16ZFo|>=XGY#=~r)VEF&V|a1+ps$^lr`l zVH^t+YyqE?_uUL@zn&FokuXWKb;g|az#b|TE~SC|fV~T-zTxre&iA{d3q$uiaXT6& zeY&*U%{+J!7EO3Yk2@98N{U8zXUg~P)vwl^chV7gt*E1|NI;^p3jG%*72CaP(uXhm zRrUB6KRLNFXV)C3GbJS({8;Fd*!KX=5FE$>5(Hs%02zz08uf}$6cF!>SeH6&Au1bo z$93^KC@({`yF54BV?xS1=b{o_Ru|+{mEAhHMv4jr6M-<(i*in&f(Lytm#H5a@S_bp z*Rbp5t51*Z-WjO;H$j8~f*Nvin8-(G$AIPoez1e24WhK3r$nRugx~Kcyp4QZG&7<0P+@8@L@CIx*kslI)QX!Y+f#SL5f z?y!VhTl_rwF>o#qb^}=GYuSFY>x+`qZiWdh&D5P2tTi9JUI2G?n63xj{&bD@q*uR`z`+*c4*GKSoYX#2ZS zWjkHR8=Lz0e;8(Kgl#`USi}x=NCJ~;98Q2k1lnW~8-O7+-7#C~RkyI3{uh_Ort;b7 zdz#0rM5r@#!$ALJ9}xP)jBq(5vLHKowQ$?9 zYrdJ+^$nYji2mBmf39^7SJ&}2QbXMBfo+GK1B$00KH5~DvtLoRbnSEN_XE{ByuyP- z^<)n!K|!{KGo+o-JQ#F?5^~Tt(VX?UHiH-k>vnvZ+L^xQ*tq>>3h@fQp@XYEXkH9M zmFQ6b-DJ>`-X0DCwc}TJzMPbPSduII_(uMAzhuHTA#DNFI*7=Fx)PvypcMs@WYOwl zDRx=oc$<5Y-Ol?b z*>*M%K_CkbFwB%}S||odNMPFCqS2cN{6{_-&mGT+`~BlY7$xWn-U;l<3u`nCZW;O^ zQECV%GUVC0{Y66uoUhBiSz|ZhFv$Pgp_6zk7myfbgI(p;Jxh-ChFx-_4LqFpQl>6S zu&pVNut$833A~!%^Wi`C_e7PYZ|8RSjPly&4*FDme4BBMQt}G6h+}*$oJsbGXP)hw z5AT+C@0^$@xiOityXB7t(T7KQBZ`Pd`94h9y{}lR&77%R>bS*?SKz1+y{2;~g(OAS z0Nw2zC`yiU@Dms-l(=VFBtOcPjAk24i<(P$ts%Y+TCW1=A>1S#23&WyieWytd`7WqsmSeIa~Jpm*xe{+&c2h~ZGX z2kXO+6xiDCRQt#=yWeai+xV1fia?Z5!CzZL0Sk%Fk54(u?RnLeU}nRiJ8A8%dgEGq z*IyWvNdsvFyzn+#xM8+A1Lse8>{tnW75gDfA|9;oN@Bj6*4Dw@i)vu>w z)hToSn@l%d8kbbKa3t=3JuQp8GIcxk<#zhuPifvyckZ;9Zndb${a;T5*2=*P&5|xx zVU;m&&fcfeVn=t?wM|YfVQe)K1&1Y|BM+!GB(6@R5a#n@^FlA}a~gigJ5Qwg@TYHG zPh{z^w*7$L!?gp&G(NlBHuGqz$EW8XTC2F9J5T56ODPc61*xzgdIQ7?+V=}wXHO@j zGJDnDEY6x3xsJ}c3tJ5<*uA}ojz3vB!ohJMj}be=$eP?_zv7=7vfJDXW#6r+lKZ8! zfk?-ZK~yJRbj@!C$y+(&HY1jnP5sBLi^Uj;WFqjPU}qLcszIwAmq@5S0481YFSa3l z8>YmRUAt(&)XQ_@hS5YCg+O&;E$yhhS+%K~Cfn~lfB&uIrdhR`C#h(=K{4U05WocP zbLJeo*B`UgoQ+8(D-BJ*&jhOfBAPZ-J#)wnrCxtb#z>dNJUY)tzxSpu|4s;+pqq( znHGKXgbjnINeM+}@pR@5N12Zg69O&qfVr^bdeM z6l7(2+L@=c;rpIns41Ho{ki+Ssj|;s%Yjh^&QyHE={x2MPu*XHg#}hK`&{c}Seo*D z$08K$S%&flSm#nqji%V<+B=B%()HXf4D zoT``^>thkMJtcwKo@G>v;l3$;abcnmwAjlpZIPB?o6Av;d-}^yR_VJ%NQWH}h8A{- z!m<(cq$z@K!rOl-c&VLvELE^Cs^=5qS%x-CB8BE@V}~|^#1td;LYrSaefeX1t7@;x z51;t>K)sxcbsoe;KsO&?;-gv@W|HB%@3=uH(_`~IZlcnL#vZU-0HX@7D8&HTB<#&e8Yw?|`>U|$X*;LO zZPm+Ks8;et?ISF1C`tmVz{(zZSl>K3UDd{4sWti1`rWuyYLKkFBKVE$q>z`o z8Z*0Och)hjFx+CHX>e$t(sOabqc}+e_JzCG(9%XLlS#<2>aZKUQhNg&I%aCUG6F93 z?E7g!go1i}NHG(tmyuhffrw+%6+>!l*<&F^jB}wD&cv&P1p(nuNjTTZ8#ZmFR0APL zU6;xFY){~Q#CUYW++10h&5b8h#N|*n1;%+WQUFzS6cy!Ty#1Zn98H>dYW}u*f1ab3 z>AQ$33Q7j>js)%(ErP^sb>*yxgL~M6#&n{Smw%9;wW-pLrxcU`69w;cOc|}T&^J`C z?@!!W^>U{n);7@tJIe=x70ie+IBKAR98&buX5+VmbO#RKb#iyA($$rFyk{rz4e?`W z<%V_f13@6n=59YC_;sX>o{RHgY>dduAg$ktN*Vvak=+nHzc=PKyDv@Z7mYHWT0hU? zb?JjQj}XN_&T86wTcSk2C2%d^rCio_UWoH%$0}~xPupL5&h|+i7$V*mA{Y8`_F2-j zx5(;;ayd8FE&o>jiuOSr)wZB}4g;f5t|=nAj8Ren!u||rk7V6p@O{o)yP2IBwSnxi zHAu=p0|!9DIDpAR=%8%m(goA`bT;O<+)sstlrmm%MeOUGr&4-mXV?8rzEvS2#jq3;Sn@Wghkd1dGlK<-@QoAl6g~<9H!&2iY1%KYoq)( zdJ5r}#)i=%hZ*XNjBYLW-q4^Mkk_;_ZeumK@uH=0(h&by@&!HjJoGuCU!`tij`%Rm zNVi>oMg#zb2gpzYLkqtia?R{C!-K?by5?0!4oPl~kSf~TMs)-*lpSmpPZ2F@`@G^e z=o$zZ87kMP$Q*uoDentW2cXm)x!NB%iD;jQr%sV?r;s=a~e&^?a2O^Q?5NXoi{iM!2;OasXg-9kpcF(+&mR_|ldUy6bFg zXzz&wFDG9T11Nx)T%giWs=ocL?7Anbk7qEs+|LaiRk`kFR{0-c4G6$~QL+csbhn^3 z;bm^WhOUgQLbBcOAHOq+=8_lW6+rbgIw6fm&c7By?+;{c0sLdi(j0iRhC4dk163U?#k`475b*>lby%1X+5{*a z8Manuh1kI6j9p77#W@r1?r`&|Rs3Hdka9zwMOI^WC^_rfNOwVir26biO>05ByH|Vji_oa(Mh9L(qXJF}L--FL8TptT zTG(|{{_ep<13QKMVWP1JBf2OG$P}0YNcC+5zYnQ|NT&By7@2KcBAxG(GA}u}Xhrg* z29Pp^cY1&$j=)v51s0tbvQ1p;jG(II-Z(c)(=Esl^5ND7A{7N!M~kk=5(@M!pyHv6 zye=^uN{YEU@^N@&W#kuIM5yx2q8$J$1=d@m@)4*COm6qAxOhV)hVj;#i{mj&HVH8>jP;BC`la@;l>PQFyUjMAboHvJFj#Y1{Ayw5K$6}g z282aBa*6Vgmtf{0_Kn=gO)3odZm_2iw3#vaftvM5-fz3(g)4rgRz~ute7Lixb40i6 zHvxyTh^R$_{|?}HlLINa($)y)jq7hU>f-)ubMlW zA>SIFu}g?+UyjhD<*Q%PE!{+Sk%bC{j=}(U$j8RnjnczD``WQYBdemwM&pf{51)#E zj{Nx0kqU)IZQQ}R1RYzZc2x_7NAI3H;CbxfhDcsfZ*iAUs)z9s7R)8XzMK@2PWPE) z=zQ;p-2Pxi{q?>-R;)uzsZi)dPP`%6z5LE?PdKUypPHNA3wDTL>Upz={M%RnMjYkP z(PQEc#!L~J9eJeblcZEi-qf8SFMr#KjAw(RSG&l>J%r-^JYG|b9$^KfP#;Wb^2p)7Rz9&y;PjzH>GEF4-{!#1vG+ zSPNHC=mmH|+b7>KdD!hrOC;^(EAPH#2PypiAa!ryFQaG0o!l=M)4~{Gv+|VQ)a07# zc+%(tzXN3>p-bc&Rq|r`jKHq}m}RqlyAXNVG-X-a*LYCtblmoqH{2n=1Ut>U!~l zSigLbYU=Se%=|X9%KWg)wzv*gk=V?f`&?A(kh}em_lndgsnQUcKSc5?g*2HReqZB(sT!*#IT*87Tv7}>HR zf?!e>%%wwTPoluzbhg(GmmPLfej8|U+k&Nv=G1nw8m9uHoFO2JouCh|+S74)ZTGP& z7rjI(-%fa|-M?#2W+?v#;cf!6XgVQ8PhU=se;?(2cJIX7e|!ka_k$C6Fq_E6 zR#5@@{kcM6t4qUr=aOW-C2ViQWo{>s{ZrzSn7@S@jS#G8B`0eki!i2(UyV1AzpENO z9BFIi&9c>$HToZG10xqT$AI<(s(~C_WV2w&@(_>X)zV0!b*ST0M0p zN@3btNU<(rWy;~;=wJU>74BCWB(%Z01Wa??c=X=`HMvdI8#C&6&bCXPFtOrJ`2PUO zDOdal@`tpPE*Lyew_(+7O_9-O80JQ%YO-lSUezh9d|Gvfgl>~Ba$YJS*Lxh(U!-dBEB^|;!r z`P;~j=|A3|3R+rAd*k?by21F=(D;ehL(5%rIzRqvdEnH;OknIQAU-q)nufk*4F>pp zzrD1i?6lIH>AyCOn`AJIP32JK#+??v@#Epi=NY3 z!i9~0WL}=W=Waatbt16g@C+3Y%en#pr1R-Bm4`b%&%J*)&{NSx|6czt9XX{E`zGjJ zqbLBr^GjJ}!WDEjvL!Sy&fgTSRlZ|>G-M!1?r??!c3nZ2 zalpX=-Vfw5@a?q_f7y9zN_mfc@j&YbT9GYRIVk`bd_sfdkQ)O|4pt?GUP=(e*(Y`} z#Ol|0)SxJR{+9d+X#tCSpQxZXpGZu8Bq2$p&3+vGBVip4cctD-?=5C3tD`7hPbf=8 z-AN9B?r{f~0i-i5ICJr#D;$kPC#Iig#dCx8pX*YV^Mb)pa-$~DJO_-oLy|T+ zd|5$f$RzANtLmzLSaH>(B3^2MgEe3+V0I=x-UeoaBDM0zEoCnoI30`aQKvMY}N9WdC)X#$-2#je*okVhe44f_Q zDb1I4$Agn`-^aGFllE+J%_Jj=eDFkH$lb!**#TNRAax9MR3%dmqG{{Yg7wN@=hW>a&agy;wy`8okS_V0;rJ# z(?_kr1U$586PyGv>IlT+cj1*WEyUxkhNuZ^jERleV437_BI2>F^RF{ez z{_?Fe2uO*RS@P@T&nuIDgAF%qlZ46ZfiNzh$re5~M!0|?I%gjngy%}Y9>!_0Ym>&s zF@MVQDNGmaWUJkXmi+sklLyD+E@M;lH%FA zgE=we{{Lngq_H(Qq|C{g;OV&?D=TyDLMj*i0nlv(*mdAa1Gf+Ben9Rx2+ti%gdcFe z*LC?-v_j426Ju-6o)YfmSWOQ7g71q?=>(3Rvo#6Eq#)aaR5v(T?U8P)sggUxr}?$z zNUOUvS;rF)B+%f|X<-5e(*MIXFWFeCn(qA2=Udz9U-K)}lIdJKNjccq)y)e~48R&k zZBY^;J-2E$GBNRSW2=8ByGFUsUR`@~JjYH-5fYKWGbWFQT43mrTKkXADML9cxR<`l z-E3%f!mqXK2>w;9|N|E+fgi>ixQf7Nkf%d9QPi zr@MTA??3g=`8?;`XIy(&A28Ybh(DOJYZFj=qRS?FJ-8hi9LkVagq3kB{+{l4Ogn$Z zpz5;4Hl}O$Y)hq2X@93pW-lT@t>0X6beDE2?xX z%HKwcH%jku!?yLm+t9@vc3?-VDF0U>r)MXck5a-szCzNcCSoT7a;pW3SwA>~pC!~w z+wH~Zk^bpE(Q0Ffyp+KTN8q~+4oz4gArqx>c+X7GDi}~@YHZjj;JJ!@`hMye;Q*X9 zT3DL7W2auECc0>8@89`F-&xA3bHVYnxfH!7M&jiG;Nn333*s+W@;k$(s@v(sQCh=Tsg2a>_Lyr>G1`xE`bQ5UQ*vR4<0)LI+z5AoSSxa_A@5bcC{C+ZqitE68vSDxY17y<2KDW)gy*Byd{DZ#tcRd%FjPP-E zw*g-f`1U}7hZIprLDO`XR#_>1%JuX!f$aC|FW#Ova}tPR1Q2fL287eg7U>;SO{O8E zclioFrH2k`C8~V15I4+-i@r1&4~_*Wl!VFvLKSt~x`An(tm2Py@{8G1x>i*9#4QJj zeI}YD3?GQM$%Q#^(F82dVDrSv_7;xBowlBS`c%2{$702wnmp~YbPQ1@4=J#O1KSNt zTc4EbFiT~B+TW1eruWAjIEx-r{&;*A96`A*u`6HLs;k+U)kY(Zu-CT!mgYLswut`w zgb+rW5-FmJ`3DSam?~`x#jW~Ge;2);w<+fM91`V(?BDjLULu6c47QKx3#L%l9qf5v zWzxg@I!@7ZJ-ugqJ4#E<)fWI~7?30)D<&3s2Yp!Ubi_A9D)|*fxz?6JE#>*D;W@7r7dt%bg|G{iC2t zk$cBB=L2c=Uq8w9dI>zFLM7-$8AYg)-li608(l1#N833}?OOYnBWCx%Hz^)S9@({z znhe!bMq>6sTW74v?8fT+=Xn~kog1PviqlVW4R+@;#(_EpiWLf#191RS`Rtv{z^xvb z6JN0^=}&Q+)5z@xTO1x+$G@R=gV7aR; zq>wRQ3_OUY_STkQEd#=Y%UqbsaCSIHmRW3|^VK=BvQv*{Xl-3N0YH|`0P&AB3(CfQ zzirSR79+pleDuO3m#6JF_PR|(5UGTa;z?`B)qmn|O?e;RE5jVtZJS@tSZ83;AH+b3 z%RsMpBD81HSz*uspjIY%rEysl*)Ac@blT*YN2#gTQJxD)xLs$x`Y~s1 z%d+;v`pZA=Vj#djNu(p9s&A7oE{8;Alo$0_Q*(m0jj)wf)t)YMj6JUBl>|tIBh(ZmpjH zgQm=ga!7((49`q-!}|K&GYs3R6g)T99bV4AV|P11WfRW!D=HC6;0+eAk)Zatk$V|iKTvurnb1-una&K8lle%h)e=QRT*D-D+e ziCbX*0#}@qmnWQw87K)^1-nA$-s&sdcIUzn%ULV#v)r*C#!>P}&qGg|(x$)feK2jQ zT%U$93)`3F!TDx-8g;km!%1g5p+iqT>y2LvhTgo`7_;<1-J|!9r44fOxOo|1IWc*l zBS3x~JqXhom|(%!0P-amG-e!(nzMVP#DC8E6dl2XMGh?>O;AWlF)67@n~CSzg2mhi zYfRVX@;1$nG$zhCB@~%aM=XzA-rH{-AD!*L#P_q zDv-8S%A)RYQf9u>f+~5lWIvN9*E9#T8S6uE`YizuIN0q$(k8CS&)r-%G6O#=f10D# zRHb1XA{Jf7xXSp{D1r{*p=KIH(?KR9-E@2`H~rX|v^6smxd!Xsa_{sSF+HHpm|0pz z0x>i~IfDBPFA($y6l{;mB@xrlG*t@@o3&oL(n4~BeddBqCq0i*0;H>?Josds;h(fL zJP2~t07pl%-D=Z1JhN79V30q2 zGIP)l2u@5vVzV1dy?$D~;py0UIpg+mozhS)$^t^nM8qV3`yAr3!K(R7e|Vop&w|gj zD+~5MbGxdTzFC3sB=9K+pDkqy1`|7J?8aCc2bf-*%#Ntyk$W-6R}a_p!#&OrHPz#~~JOKb8qVRA!mrtE9ttRO_OOrjW$<$S}6x z^{r|RyYn6${T~PipnHgoV^(4d#NRQkPq<`mH|x}{D@(D+kBmo$FOOi0I0pe92O%2R z@Ug?D%!?l`&KXX#IeJ}VUWu4muK1)Y<#>lqC2D=2$}w%uKDgi@2>dsaykj{-W?e}+GnZa zQYSV6Kpv^9CCJivKgZ%F15O5VdIg#;+r8ebDF`~hkP)8gDkTY1IHR-^h*QHLb*F9N zQ4cQRw34Uo%Vz|6ox3`Iz3`F1xuCTkx?0LcajHyK33K&+uHPlgZJfADxtww{6TeET zxJdf}_5(431XW?y)kxiDJmcQqhqnYaD>Zy+yfo(tWBpQM5HEy(C%HYlOFBkJ=4KC^ zU8O0i#Q*qGcD!cK_-H5*=3r{)1T2&x{K$zot^W}s9TFY-;p&E>kg{3VlB#F`33&NZ zQsPq7BPI@kMKj$|A^c8`kMi;*0>01Q>PNSY{TGPR+VPVsH=1!{omJCTp8Gm!+Q;v; zzZ~#CMFSxwiWkd(4>I#WrGMksjF@7gi(WT9ESmSJ`DNJb)N7k307$|@tVv2@wfN7w z$2K<4t#WBiwR2H&%@Ua~nmh<{qvlOrE%I!?4@d2xub(<^MVdJOeo8rM(FcPZ49^A{ zfs;Mg;ueQzx{YX8w{5@gyf)^6T2Q;W+W4=71VH*6Krn%#==k>RB=bBvSsg#`DyJA*^hhX)MS=l9-jmdh^G?P zMnvZj0k++E`1RuFACCwqzGIKPSGC=UkJE4x1SB6MtD)p;tmDT}^P#mbyMBFmp%A-& zpyYX-43)4%tO@UlOGvr6VS?mN((x&WDmsn_Em))%e?h$Whm!Tp39}I1Ok!~8eZA!h z9S$b4TCpo5Qq1_5&uXV#4)_Y{oQW09t|@abx62!J{T&fsl%SY=#*cr(PotW*4CfPG zILQq=wNGWJmi_2ko1*i5QLCdlE(EUboB%>qTnY7n+$V>7qSL&+h3>B@cTGt&by<4S zB2a4_AqTaJAo1Q2fG{=!jhh}p9hV5@{OuJQCVYF zZRn67s2q5VqiS7tT?`ecg605*4q_yT6u2)4N!FOb*Watv_o=tOyD>fdQh~rDwV|O$ z6Xw9}NPxjdTd@5yjbDEJxNDGjP{Q^q`R4GkacVCO)EiG60&^eOu)(oMe7NQ%vCvPq zj~qGgSjMsa&X9kfo5{iPDWp(QMm(6&7MwWvwi z`rVr)igsPOx$*!FBTai6Kp>!v0*O;=Iqn>O@iu={lnB$#ySD=y&L%QsQz>aFP~!18 zVB{$x9H?#>m!D#SSNUAg>nEz@2Xbc%Y&mjc{`geVQpo3nE*ND9CqAm=_jb=MVy!8C zSL#)FtUc=1`ha)!1Qf#!KnPI;YP*Gv-A9GGKVu!5r%eOiyPv#^eVTv*vIX8y_W!v;bm-}zH6Re&ppNv zV5OwtYe)oW0%Rxxfz!4zc*4=Ya!%Cu_zdq0{jAIeE1&(>Ohk|=Ia$h+BTM&pm&xVr zbz0|A%3WWeB7I{5h`82B?;C%dsa6}4??*f2ZJid^sJ>~LQ81rx{{#?{O5EVpk;)>m zJ|UBK@r+wmY!ae-4WIi)t(5#`^KBd@16HHSZ|?Neu@%kHr#JcgyA&Oix|kzdvV$@! z!<&PEVZt&@ev0#j>(1#uXLW5?Qr}{t3D@o@1f?6T&urQAsA>? zC~e*X+Ak6fB1nvQ#b)-CJ|#NoCkADhZcAzitnM8rn$q%csU6AIv~>Efu}bc;oo)Mb z$!&|a%^yt5O>e$MyP=@V6On$F-Zl^%fefFR`Nq2Vy&p{%jjb8#%|3G1H_~aQ*Z5b- z%Taqko+oDK%v7{tgE7G+*)7P-%6$2&8|{1 zVo)vwxf1Xjqk&S5)n zto<%W#@={=uQtpVj$%@N%;T&KV$jEnmZ7gFrr9!J{>%UF9aC1VuGSx_=?@wrR~L*= z0~p4+0KWktnED<+DZ4ql7V@+Q7L~r=GjopjlnoI-Cg7l-2-I`+FoR=p#|`l0BH6C% zv?SaxXP(8?{&dCC>Eld624#KX`8cGBjFH2Uc<8$S*Bi^%E}ydUWax-($d$RA zv~Pm~ffHUrZxYAG`h3CfKQx1js{i`j+PFY<;%MY>grIgy2rWUL1!@P4y~ghCSCO45 zvpOrSF+pt4d%1!KjYnVg50^c|H8@ znslp<`FLO3@kfphmnwejSww-Pk*YQxW)MpQBkTR&);tpI*CNws~zK z?{oePItbTp3Ec!swPCU;<}^61#N*!`jQqK7Yjxu-ioK{U+VRL32FAI@X@Wcrnf80kC$5hy~w5H~Y;hyU;D_9r# zPU*VI;Hfeol>H|t=x6SlZvJ!?EImedtLeQew#<_Z>xv8<(tm>X=oYqU-d%Sa}%1 z*9fX|BabG!K&fsw6rJrAu5RVnsuC0%GZd%d^Y?!vvFK|BvxnkEdFE>Np7@;JE8mcs z&EWL%Ad5MJHNn9aDrVt7KGXd+$JvTulQplUwUd?@s`Rr|F%)y)CF5pzJO*1HD`$_l z+s+nWR%zOJJBZX zEZ!GCtm!skVSLL(IAtq>=MGhX!ExY&)$6+6jhU7CX4T<0g}F?I%EnXl;;D_82*w*K zp$Gt!=}ol$w#4>%S9a^U`zLe>7M=X|r@3I;{8#t>8xF?r@n68gZU_2^u`jvc^xGy% zYwGS=opw*j|He64KrJ__${Lo+JH?1YXj?`__a>v7B=05LQ#UX!A_~l6FaRW`jo1HE z(@N$WJ|Y$)fBlA2>aT`VY4#}$;)%oX;9;URyr9Lo<;(>mtwGzI9KXs7erGwpdMRUR z_8yRTi~H;gU+RcALhyl^O$ z?eF<;9nSZQ-?i=1W+0G79koJr^1@|j$i71H3}eHOSEv~6sFqMNK6+-sh<*3xRaD3r z@*{(H8$fteG7)y|hIz>^?@tX~b9v!%RXu zXBOS0xpuBF?KW}LMW^6@QwW|Tz z$IjgeHkE%k>WyYS9objP+!PQuVK@*u5wLb6Gbb9a6y^CXFnO=Wqb#mW)8gUd3i}%v zmM{G05eLKt2R!tQ^hA)2w~gW!hluHo&Q`WGzt<}M*IO~@9>b#dU*Pc)McAX*ql35a zE!9-a`&}nGC4FJW!v{+yu5+C8GOACIVff{($Nv6yR!n4`8h)GGJbaHdrzyw(!V}li1C=g>My`4=^khj8#+eHZBBVtbHjaBNZzW9yJAa z@hG@1ue@H&aAgx>?}XeJ87Yk2;b%$clj5DJhzK(jG)K3XJT#|iavyy;)HLrwnV~duwn9$X{eISrj6%YNM%9Js3%=-VC(jIuZ zJLWq2p^sO}cmE6bTBeHL*9Qh9J4Yvg;PsPwE(C3Yd&CFx3F9d@>8kw9Ie0BI*}u(w zf9L*-lOaSs$w|N)X5*y=TGS&? zKRW8?J7RSD^PhhvBLr_JSLD$`>6WI>ZkCuuzAzS+^6=JG(VfdW9NY_XT*k&9wgXc{Ul8RaHG022-bCHyk|o#AUy2k0 zH!&jB1!)y1Y!*I?-(o@V`wc5=+Dn(^caJROQ{vuBotK-v1d0)HwDZ7oe@z`xk8*1y zV8CNJy20M{*Bnzrwpr_|PKYfo+@ z^ja3*5Cm7mo-F;Es2)Ju)eF>p4cJS);Cavzx;R5MpUC-P#4i`0(JL&=^ zA)-zn(JF`XM`4jWk7Z@AT6@j4zTCL=Q|i{bpoOIM79e<(94v`Zm;6)(XRRmS=v;%# zcFRLArVC8JcruAx6IfM|Zvyls%47l02M?27YUq6D<=~8I&vy<@6?5`v9cbU5`ws{x z6qqfM9zEgk@E9L4Nl6JSDQwX>CabSzCBf^*lw{rFG*t5T_OBoR9o(jd4jo7evI0{K z!1s6lr)kb*fuFcm6maaUiD>mC8324ADNR7Y0t&AJ1A{AMD!>n5%^J^E#~Nj}ewSju zsM~eqUaemiski|OM05xENC<7%P}A{%?}d|D{2!D3u0z}1e8sa#oe+lEI5{|>V!}{& z7w9iulNwoAur=$ZeDqv&pS{Sj$4+CD@)p-cv&g_W08wUDds8!bo;XDyEV@|2wlzzO zl|?+Q_b!vWGU2+)5e(SNGa8HkkMXD!7v{v=<$myNu&v&Y_iiYroui zr~i1X(-6t)@ZU$@OzbTgu(G+7XZZr|1AII7EZ(uuz{m5p%hKLS6A)aBdc64Yn?px+ zOEYsRtTs-s=I@f4L5;F9!yj?W2cM{z?3)Civ;lQoQ@5m^9r~qxD!a}KItdC45Rs?TM?VO!Hj~&R`^=E@{_(C`A_7i4 z3)Gh^FZvwVCUS=JBlh=M;)Vjp%N4OL0F zJzd?b#MtL`$48qd$3wm|KzMzs@%=;Z4ok8S5Zbx;N8cs>1%dXD-Gdw5s-BDkU?1R6 zp#7{91oqG$G*|84=RQZ;r`-M}%6TK;6u17|xn&F(O3Y!L5|uNBC15#B>!$c`jd}^`veQJ4kQ>VO&_kD0-W@gX=Qs!_$2u4N| zyi&r*VK0H*pD8$1eokc)_f9jJGaD5yRPy?gJ`4h50jZFLm`?=nfDDGhzTL2bP+7hj zfj^%%-8Z)SyQPeI^m&FMZF!~^cEHQQ@(pnZVCRAeh)-dcJ#f^F5>)z$(t3=LtiyxezcgYCnN?*|_L z*tI}2m>gs}aQe(!q528lsshfll zhLz8qcOvhZcJkc^r~N!_ZbkNmW?=NGz{moEFS=sL_UUD5>FkE(t$DWiT|+~Wm8{)P zmAqJw!gBp#ItG6LgrNogg0Zvcw0`8TsG@b*8-6i|^CtT{gvrpyLqi?#wV{w-eoL3FI+}m+`pKp0#hE|qDs(r{a73yVzGDDI$$^&GX3>_T+f2lca254VyK9lo zTE!bo(E)VrNC;jD9wrSZ*EC)o`UFU(z`q3js> ze!f^Je6qKV_|P50b$90T3Mq-sE!A|i4Mc39(pIp2B;l=)P>)@8rZpj>VwT1dX1NM% zDC`y;LDi4}i66|YV4ww#{c2Oj!rQ6$Z*Se=x@Cq8Z~2pNmaF~?gS#r}ROe*iq14&m z?Tu>W`PTD2+@a(D;w>4#hF=FHD1o#>WKR%J5P7Dt`h$*(z26%6cm8;$G^UmRsK+FZ z^dwO*RMrgX+Aw&m`3np4`#rC#-v%l9ss&o#+;i4}zBnqjo3u4k<`xB(_$}drnaRqJ z^+Z0~9B9(*=aQcQ12?h*JO9;1WN)1CW_!e9_6t$f<{xFtN$&=^ z4Gah*dELG9wi%;tJTI5b?=7b<&I39}0U4rpoA^rXOydB5h67v4 zu!B1L)vaE0euTXwy*0#Cc)uM+!z!%e_v5|i@7vtqJ>hX-s??gorEFA}G{$g7Od>(( zA$84Tscr7;`rzHye*C#qw|CAm@MxfXUj|~_q)Un+*WRT6uF$z<^LPK!wO&~Gg8|-M zk7yWjo5)u1#5rMG4pwhT_vh_jtJ~@Dv}8_Rxaj7u6EOHwpq(c9kbWN6d^%2A!H|1? zUW&)yzAqO=TvF*cTUW^39~bN~)`vx2mzj4NPV3-tO<(iTGBJGOcwmJ@d=}0(Ywlie9hBmlbu=meGjoeiO4K7W z!=0&gLp*^U%-~ppp`i8SSw26Oq%U%nyzzN3>bB~Zi5M!^oybtcyxip;nLkdnn8W{e zheyl3o!0Np(03PhifE+^CUcw?leMm}KC$B!#jCm6U0dJg>3vkb6W#oYbZ6kFVg*rr z77#WKQW{7c$X17BN9Pa084L^Z!!p12655p*xJNJ3LVM8FJ~}c znSOU~Tykyr7y75b42bCya@O$~AL`iVo?wf93l`BUym2m$v z5^fOC=Ltf1WJhY-U-#&9s|=bqs@n)_9UEKHJQ0U%dJrK5OdG19TY;>IrJYiEIk-xz zddSb7Z6ljW`KD7Wb^l^W%7MxxK(o}s>C#qW=Wpkj`0Q9&dVbnY*|aZ(|6)+8J0669 zs`p`E)UNX@miiiOGxO&xRbY~gE3nX?fI-SE_&o61GH?r_=q!G4ySuxiIV-0-yZ3G= zjoIxLZ6uw$f{t@?h42Mbq}Cd_?difn_qV*ZW%5oZA8t7rZuWu2v@>b%>Ip~>=+erF za5aVSGh~6(DteN?OfB4|D@SGPL7l_)&ifVz&{4=+iJB-wKsPFPf@yaRE?QRn$gb3F z`kr5|?uYg|J2ueAdmxLJh&MqdFz2hzuk#bfWKX=W#|&8|G)8rzYiXkyQCv8^MFr~I zu=ut=*IRp-&)bji-Qejmp4yyu={yaB&XIK3V|rz}qPfYOrC%2XKMxca7Cl|?!k<1A zWoe-x8EoHeZOiN>!FJkjMfkn4iv70l(IPF#_?;#B3PC;z&lncj$=~@?{oHlo4mdd(85(kVU(Rd@lNGAQAb z3+nK$lK-{w$*6)#@VEIYyE)5^m{xbw=Cel)UclxKPlmzQu_FEFza6Djj&UD5y*oba zj$ilCt4$LzBymS?2RbED)~Gga1Q*Kg z78vXNbXwE+=-2*35jOOpDCiHFnBiW5s2-nExGJY4=bHjE-?!_px7n-T{X~~aAO;b( z44oimn)>utsKvR#$cO7ZeqCD3ZzX)6F4PkveJx#`Fh_xfl8S9A^1cP%x9ylE{$zCI zg(ZCjFgfx{;=g)h(=WaB@bG%upI?V-qZ*%Cb=;tf@3@bYsHB6Z?^1%Ha_YUcI~OT# zf4=6Xrf=?uqGaSJ`jw-?L{Qr{LhgvTBheMHqD@k)K{*k)Pn}%=C-mD$GDXZi5TF#N5&N(Q-8W)kQ5IMyL-zy95 zTv?Q|zS!JTy!dbSSeEnx+I%De@k1lseUyk&&>k2{B#@X9EzOA(a9F-mmq%{R{K%q`m3NtoUcR6M43dA z^u?~44gEU@#RnNg#0{G_#>bo8f5Nu+S(wX@2!EadZo{c`AZ0+qPgS?^CI6j6oBChN zpW7$vvv4%$=2AuaU}8OBRYoyGgm|1k!zaF?dS9upO-Io5BO_P8&NHG*84w2tHxa30 zU|p62m#ife-^dGHz@w{Z@wR+RrFnc+*FgHIHu@|`djZ=%GDnj!P>!aaw#d*2?DlKL zJGu37!NEceF+3*?P9_8;C%mMA8Hq`xGZ^U?=uSw=%1fC+wy}Au%$0phuJPp_oSX7p z+GOmw=)MVPTcEr&c0uaw&u^aCCHhS5j#VKyYqMUg*M&v9N#`3*aKMaj4JKJ2+t@=@ zU(xmHigp~Vubx&&8=eUMtVn+s5Jw7ueJB$5AdR{lxA{I#-(={x(L=5xU2IbXQ!imE!m)vyDR%JU7Y$uZS5|Xh2mSC!(-&F!RP<(k;83S%Ru0UV@^M|Y zA8Uuel?{JhN7J{FGUyQ+2SJ+mcdkvf@vRkm&!H)n_-N0p3l|sd{Vxo%J0XpipdHxh zglDzGc5a6+^xYMHH==)Ct#uFGBm+xyC%o>2I6~DRI%aLVeABZth9^I13k3#$=x>Y* z;+i-c%AyA=3kVqKQHnVCU-ViTaHM3wD&V*IkI|b~X9?2ABl9+5$prZ?$!Ym||46o{ z#7ToZHKX%VDUsVL?+((YNwX5}AjHzxoIX?+hrbt9_}eDT#+!YAR8wuj52Hk6JOmn> zzU0@i-X8^ zx<0b5a?~5R)ZogZRWJbnqz9x~f@)(5#Z8S3EwEJT))MH@ zd30HJ-_&?I3PrpFwIH+_!kL5K^Cg`FiHdtF19ca4oCwRk7O~vVkLN#NBo9ZD5SF#0 zaamXUhjsVN=LtdG)Zx^65okI7e4QWtH>jEgs z01dI^wUirayvm$iMh7^3@-w zIb}Uk-|2Uo#u51YzGYjopR=6qpc{;ZRokF=mA%3_NC|H=f<{8-}5jygfJ?rpyR0BGlm(|4?kGe3oW zRbok=hr`J$YmC#Ze7~%xqllV#xWJhDBz@#u*lb_*_RRDHwVCJphC-GSSieY% z0Iv0(pndp8T64Lfr6fmTnj|ZKWTV~E)FjI zdd{#P{K(1JVagp}? zT2J;FJGM&pDGgM2|CIi;<*l^wA=(tA2@XGROqD(STYHP1XRzN#_pM6U&t-SSH`B%< z^>kcb#zjL=`rP1R46iyZc)IZ7P9H9I1=pUeolGIml>ax75JTKBLH3&Cndh=!rvwa6 z;ospAY~I2XMxq$*crxgQ$Q{JKuAjeKO=yqK+bBW7otb;Qz55POg5p02OIQ3-K`tQ1 zx%1!+P3`pt-q*u#te$hTK!5GARg)(|Y#H4V2yBN;YW%u;*8Xuml2Fe1d~HnkqqePi zw%X#$7%&hcQ2QRDnF|!bCxV5gr7?kCP9dGB8AncCOz<`9mX~kddWSNkK$r}QGD8VT z#3jb1<-L}h|pJ}Z1LEfDeEZq~xcla$5R14$L6l@r1W#wAlmCkqkh*x}8+$IgW2 z^{TNq98zMweQOW3Mg)d?2Zhwp3jje34=Z)UWI_X{>4iS7%=%Ksl^k$Yg73rST@;3> zCjq+v&QfsmK-n%l91l-9LkTn>-HV;hd;7{D_uSsDmd)47ONMPWMei7gqtHid)RG)# zbOc5M?!U)8UmuO$oxvR#qIx)Z(IGG99I5FPz{wrydL(Hj^Cqy6vaJD{Z5?mRt>0o( zwNs|2&q<(c>>dzX4Yenr{}dzT5L@o^J9Fsr9dAu3_J$)FL7q&0cBE_ur9c?9RH0ll zh$+Y!t|^@&va+Z0nRktXqPBkFJlpN6dc=BMrJy;4jL=OFInaW-A!L8 zOdctPE;L@5&&}2iOPH>)?){E5`_)IKE)==XRT(~ThUCKdci_J*1=ax%*eRStQX6pS z@LM&>r#-CG%I@XwQFfD*Z@Vr#c`8)0V0pbb$YP(f75oatM@_7{0y zy||3Si<*fl?A1BWN87mWF0CGSShuF;`m-nb$3F_OKPucnn}HgR7v;d- z&PjUnuDrT^%xv|BKITHfR_&>zW;EfqLApWi!r+?qthrY{E%bdcPu}ZuUEBUrSJEvp zVKkE15c~DYTwJ>E#&?ecz!#3HE?~mSn zcqm}y-=_sRv~@E^<8qxF_DrETO5lb9pT^GXoddBa^BWFw(BC$&1eCdiyyT?AH~G+q zwN#Z_I=V}36h%OtHEL|NOcP0}_ zoCpA(?u4^SoLcT$rXFSVSSfIIEB~(BsxOvRi~Am-t)G$EYYtH`mY7|^o_DL?aJ}-a znytTnO@?Et-3O8b<3A2&V%+FQ7+W#^X_n_Me}Aw-vgQ02IU#vN_6yTQXupkTDUlX9 zN&{4We!=eXp6zc#g5PtnN$zV=Rk7!zK~Nl=xFlw^QFcwR;opz@N(UNEF0x!sOld5d zG)juv5HLyrZ$Sw%(SPG_JaSL=X!xNLa%bA*J1zcybN@l%o#DWb>iZ{mSGXZ&|MpDJ zS{Ch*XI2Y!NhXAUDMT4S(`p(IpOfZemi_ar)+NraR0lVG!vj-)e5d_5nD6mMtYD_K z#6$M6rWZL^n1VmAlT`Lss@StvYAn)mV>6%<0U9|xalyX# zO=ePP&S{&b1o{-+56*zD*Q&cP?<=bp}}diZjfoBP+i^>m6t{yve^)ckws zapRWfKkx3`XQ~+%mc8j)#3|bElVj;`9rJ!!Q0`4wd@|9h-}Er?Sth3DSfvs^1$FWGec z`@<-k39Fa$PS{wu_hjYACzVQT&N<(Gf4`DGlt@E@PlVRiNKF(I$9zv6Tq~w;%pGI2 z)bjV?;UC_8N_4V}gj6ELkiM0l@>7@`D;)b9Yp#pg6mVXQPCns4p9esw$s3p^O%XHe z6Xg8dG-Jz(KiA&PTANYPv1sF_F#8IuvyoD0yTk zK|&oV4C0EI8^$yL$!cw$(e9+2&Vm!ujf?}@lE=9pQ4)wNm;yxAG{6m<>60{P5=>Q>usPR z9Oy@c)QPQ6&1ejdVlUh{BRwKCd~CI%?UQqK5OEnSY&}8AL8<|yu9ArYBLg;vg1K)i z%`_AZf!)HR<%vH6xYu7)$L34!E&@DlKuliEe`Q0 z%+`+ef^+8r6`9Ve=OJ8+7G?Q zotY=UHB15m??#cN(8l2(->kmA;2$?#=NWgd>wdIth`5yTa`xE?XefkiX>J3L7?Aci{7m{!(*6K7uu!yy8$@JTAbkQ}1~6bKpKNfi*d(U&;@G2g zrAbQ@TBFxzXwYV$AqZ#4&l=+?3y$estUXn}tG%Riq>WqP5N$jpox;Z;$|hnCi7wi! z?zG>15P4C3_e-7+hkNQ$x?;D{M%zGMixZxN02!x13cU?(Ikdc!Dro1MeR_J)=iv9o zq_+ZJJ#bMgqz8fi0A0s-bky%ipMAq6R)+Vb*te1*QHLXBb_+h3G&eHN1Dj%Y_B@-o zpk7qzxA}$^Gol|EOk>bl*cx!m;i3Y5FVRfcjNljB{SK-ZmL-m@9_g%pc1woCg|>Dl z7vMj55D&ws8_x8NhbxSUsW^~%t81y;uGUd2RXTzy66h`|BZi%jdAs+k!dtz9mmMKR zIWG10mis)W4Mr{^yjvilDdoQV*7?B<{F@h&DmuQe&J*e|j}uJa>SX^j4O3P)pBcWG>>D3!bYS01`cy=SF~b^3+RaU0 zKAP7VvVYb~%RQsHdYw0C_XvtkM4^2^Hh>Ad{V zhAVNY@EZ$z<8Fhk8w})b5ADtpKId>@hx+}72V3MA5(OYoAO*Ns@fV0Luq9PiT43d` zpN3*Cdn!Yns!uMjSonHczY1-E@PzPSG*}(!UUARs%%1J%md-8bx%&NwAphvwHiZ)b zghh{GntqmCU@7pyT~6W01r7mYw(y~*8#g8Zz+eVmZxrrf?lc~_c{jo5IA`j~kNorU z)pTjpgz4OdwBkY=YKS?f zNFSy?L*CPUfy{fINPp8yMxtF8BzoxA4uQa*jJ%}a{s%V`mg@DZ>hFH56xVIPHYp3# zEakRWSwmYEDFcH|mT|5Gt1;Kcwkw`ce!q0pPNVkDWxsAzNoxIrlS2iNp%5#W67YN% zl!WJlCI04FQK%=_%zwi(OJVIEu^(r8g6L4n!ikd)Mz#ayx8Q?*!0Xp1ezOgTi_ZQy z9B;Ifv~c409Nq&MMv-xdh*<|W3HJV{@2Np~yJ{>3Y8T$sUKz2`lTHy3`-D7o3v^Os zruwzcnan$;r}a9=%Di-c%#$`+8R8*Nd)i+eLZ5 zR|nHjgryL^1O>UH+Q|;E_gHzymKha~ZfxvI99Ym6de*-3`zYyfgYSXd9e73He{!`% z6+N&by{x6#=i=qU^9>|dbX^W-e-!YLF@qeDb%u9f-#A}~V-NTJ9YqDd*Zn;z_j^_K zbA~1Xze@bvxM9o(IDaYuUS~BdSckmnI>gNhk0uNIW5Y;aET4Mla!y*pF#yF0~pnhjrBA zj!8|10RNppGg7_^h`pF~alh>+-kU{gsSVOwyva~n*dJnHzOI(IBN!K+#bvM^7Dt+N zhhzkHUOZE)CZzJ~qP@x#+B9a;Vj!oIH7Ia-TN-;ccjYNP>FTRRSnoDj=jTR42V)q* zCd`6E2-g|ZD2F!+E@ecwL0A`;$37h2`XJZ)w$CkXLBY1Ca(sro@joZeNAxU&i-{t# zP@E4wu?%LoFzdbdVb%Zxo6N-2RjzwXvo*%AGfYfK`Gn8KjJ%x>MwoPKDw|FJI_d84 zIiHodPCjJ^eLj?WAwF)iVPQ!)n0DE7NZ$?2APgE@heQR zESmW&x=7;X^0K8f#;H533H?5*^+%X_F#YTARE$d11&>_e_3}=v{bicDWn5Tb440sW zpNsjO|K=Lgn3Ix{fhXTAy#uDoBNuGtOxM3?+0$OH0Be6Z_V`8Z-~#14ChZ&{RMayUSFPBg=A1Gk3EZH6~v58+An zM5)PB`<&f{i~3zmIV`2E&&QFZI9 z_MaqnDmtG^T1#6S0^-a-#6|+%-FPW+>{IjN`Qv&m!_U7EBRnPK_ zJEw@aj*H#$Aa;|Jz~YdR16P}=ha3FB(~a>g3_Wg>v<8VT%eliO3rJyq(2%QYQJ~ehrk886+uvXEYyKR!)35(KZ0`3ttoB@apbk>6KzpvEjY_CHv+vNhRXrzhT-DU*zmLK z<_^6t91MC7ohfXH_b&HT`DZcGV$h@=1Q?P|c2%+d*(T!axwLOl>nyI510pryLzCB! zXg$TtkR2DzCTWJT2%m~jcs}>%qPoay?9Qc~m9v+;`xgqf5cDl_SZuvWV#BOEj^>Y# zRA(%U%bxbouK1tf;^c4%EP_Q!pV@a;KU-#&)`?4}rHxjYHvThQLJU(&c&D^fNpv>f z)O0Ly@n>dpeNMH1$4L=eB#F5x&5XR9=QmFzM?T`p?gLqCgv7XL!>#S1xq=PEmx0Y1 z+q8~fb6z?3CC!ofar<4~$!G>9(SMpKk${5gPz5GNCkE{6t5xT=z4mGA^;zgA-)P@s zrDsw>n}UpoB@}K_B#_2(FUwqbEvseobQ$;S=}fM#ZpwAn{tIFdTJ|CK4 zk66Q0x8HU7*%FYt_UgErKM_b0Z@c1vSwo3Ec5$Pe-g?(;W151uMbfqyS8>UyNHPrJ zLbzqo#GXrge}kim*2%tu2C6})?=!KJ?o^xw(~*=_9Dk8ASfb~M!Q=WqBgMnKb%Nqb zogI&Q=1-WDQ2NG$s)?f#!^%zsr0G?@EZQaei`hjhRLCczA%X@ZDz@Oei1aa3f0xV_ zUHV3GyYkCuB^&+7G5K}LX@#>ocF}+bi8`3j5E4qMxr1552a_vYQ>quj<+rj-yZ>5! zzOPV+egPdp)LmgrLv_8Vi44&AIoCFr_5FjvSiAaXGyklaL4!?P8<8JKe4ISS*}}if z^;cYz_Mr=T70FxD%#OcsodiY3KX-5fA(aPR6gMm-Q(^u`{Uh)C&S@EVq_~GS77O~) zK-ANKw0N*MLU@3UlM`~R+~QW z9*N+ar-vjzd>Qgwa7ujs`3rV`XKsj6T|OBK6>K~lpfVk&h#IC^^C**ilvD=qf&oG=^@X#nI zQPTpClOmoqeB#aQfHT8)E=#-jiRTsuz5mUlyX!b@oeU;N6ly{9$%$hoNBs>3Oqh?X zF`c=4t>d*t{>6&px~Du|$HC0Q3gj8EtDwH;SZ=OO$@=AQE>vzgP_SHY-aYfh)cHskO7l^ZM z&p++(MOq@2j&l_k6Gv`zs>ck7_4XNnnG#Ku)BX~N< zP5lW+7dgEfXnl7z)}H-X+Zm_n)(n3soE&aCLbsUMM>ovY??>{&kcV9#FV*=l<@}xb z&?cR(1i*L{K0pd{`0WtGRvqK-q3^o zHfcy&a)Q#;uRZ;W=Fgctg8xi)3gB~zad<-mkT;8|YwAEb!nKFo84f6H+$17Kz4&uUg9c?up|C>298roE9#0+Uf>O z8JE;Z%^kbs{r&j6W_gKS*^*W+d%R{_p1R3!v7$Z1?R6l4;Pn~_1)84xCj82CX-e!0 z)l_>Wd5Kh)l=#~Tqx5Csa0!Y31rNd4$I9ir?yNnZ>$~iJdU|_R9-Wu~(?udRjp#8% zQvFJcA2zS1WtIFjh?yF6vwlRV_zQhvM70i*f#yi9MJdP}A6!C@*qb?)Z!Tf~YZE;X z-;>Eg$9R~Di$NbDTW>E&YDI~ixITq{xtFawiamk=hAXW+8Ik@ho(_X90jwP5b&v_W=UAsoSF(w0*^rl3uFsQut*`lR+kfC_5f+$O!b<7sYvl`X zbCrlSu^HE5*eCkgkW<0#K$R`xrb=OT&BN*kJ4QP1j0)|ob?Xvc@vI$uN8pjx#KRy-Hy34t)`fSyr0K^4Bn_>Ti0X z$;uGA{Ra2`0YL)NPTm?ApiGoBk{y;E+e{q2H^>} zF#Sbizb^V%H+Dy;vVFb5A3s$^>dtcK)f3hXMpK9+gIUK{j9oeRuxLf@wyyqpqS^Nr zH%5OI8KtXRxTTc_ZAp(+kMz;Fk&Jch%G%Ty!(b|l1Qn4%Uu}U4Z4gJK z=iBIEBz5i2Q(2Y~^=Tou+#3Ig({L`1P?VcGOF^dm=GnO!tLCqhU-WERyw2+APKJ67 zbKqk^WkD*IGOPC!AHF<=-@hC&l}Fz;L^e(SVJK$;507k}gtbO{21)Z8@^*4N zIUV$idvC?g_KA*w;1vAF#WAhmH&%f^8}hYlPxQ7XsJ+?R@n!d(5W=Z|0==y*p@jxEZ)fu3n7QgT$#t$OcFhKv+~=42XqkOgrPfJsjg;UvcBj9 zR)@Y^@$FI0Gs~^}zE}w`rjv&bBZQ}IJidT*d#4V+&yDk*&o}TzYyq44^?{xC52?eG z6_@&-JtjS07oAUREgnr|23|)RaUJ z;q?>TD@CvQ^|&^rDxV)%XP7CF+Wx!Fg(7drR|J-GMq5vUNF5TsTHf>~sb+iT)1p-` zpD2G!JLhwiiKgpYj;NFpOc?+%g>ZqO28^)Sq~-fAhLk4U^9d# zgJeWkh=~d*fGWXdx6Oii#B3qbU)JvKvO(d%k9ihR`x9r6e;eDv7L6Dh;7jl0+gS z5e=EY=iKpnz4`wB;h+0?&$;KG^PFdX9tJSPnGhKbQ0*Y676gvKhZwn3ypHDF;$s`0 z(J3rq9CgdpUVRJ#h4<7|K&^_EjiofUqOO~(v9LbIJ)ry)JYiAdW)IU2y^fS5S{u*#a+ zpUqu*s=TIpS=bVzLX{-Stqe0l5J)PbG!3d>D~eWL^_w;L$K`yk%7>wQhrHN%8Ze`7 z#<2+BFkU8sMNRVA5!`POVw6KWws))5s&iQdltq9KLXSPcVMlInJR1S~vdAR-@y1=c zlChds47T*t)<)xNT01NQ|3olO#L^D3388PF zEiOvHEohDT2<|=JwE3#*KGrE`9ab%#ow@vs;y4K0n~2(%@IS-pfS4V;GIrUZmTH8H+bdb##2p& zH~sTBLU82wm;=7f-OhG8jr}OO3zFETjF-) z@_CjH$M*ZbOvXGdw7^F$3++HWq@E#KC);zIR!AasI+iwX69 zky8YQPBIe-r|T(A&G?kCfsfN~HhZL|%yo64zQ{mEF!1t&D8kJn`hZt5q>tTgJA7ik zt7?Kh`_o*EZII!>qU0VBsW=A)$QF9muJGV?<;cISl_tNtYGh{I<$ifVuy@=@uD~1% z)1U_;;ce3k3UC z>lrTH$d)7V%D9|k7vr2rlpj-Kx*rtD< zCvH;WW9Plr^b6nBTzFG;QO3o_n6^o&CBy%Ppw#^A8LO51>@_DBo=R(~I<0piOHGkV zjle$?u0=r_D+;Ng#0%6;P(i$u<=a3&&?{S_w7tL8pAjaW$i(30M7rDC*M`o zyX>u=w#%;Kq&eFUc9)M(z6^W}@_GDR&;>A&QYDEE=z zZYa_hQBNeXop7EmFH{+$)mosxQinyK1TP!El#hd;HDgM~rl~FE5(^XHQqe zfb^APlwSs4S_(sKd}~s&VX3I@)doMg2rw33dz*mgh7aKpFjA%^mj)_=(M_$eRf%KvyQ>e%QzKlda4cOSY z?utC&Wb&& zk({2-3ufBKJP9Fy%4hE5yO>Fjr zKf4+hj0!7DbM9ATy>za6=d>x~$3YP4_w9d|WUUE)c^&p%cKCL={hc=M_bII# zIx65o6t^tM+?Oq#o{AN0-7Ln(&YkV9HTm>%weEaIu(zxnnCi%&qsnv=OA=Mil^CA4 zQLjor67(gQbM`a3HH(y2gn+u6{ZQ3Sc!8+2w%I%M&X)+kmCmkx9*~uIV-Vwx9jCk_ zAgOwIp-V2yyQB8)-TdUUnMWXDR8u_cq@{aVm7#{Yrsv=apWTO8LdIns>kFmK;xfd#}{AR&3TK=22*N_HJ%)e5myuG1k9Rtr-0*ZPt~}m~`XW zI`?Oe(_zpH(Li8<0HMomU)h^It^uqZQ9riI*?suD`BD1{bLMdfO%ts&wz$ap@A2?F z+YZg*p*`u=*F-++@{T>ODDDN0Eh@^&7!q&_p1Da)`=ZL4&Kp+^?#G(H&fUf!QgIxi zjS)oGs5vaAsCCQxMq0JNXvLJ^FuCT$$2a5Jn8qRsrRdi@o5YTH*Vs4B@3ooh@lads z>qvzpgN+L-g=gV|6dmhz-I2v@8*ui)U{WNfhInwYG!d|ed|?@qwy31DW9OuBXSN{WPDy2XCv#$&Z`&P!&)!vHmv`6m?T23KZ`$Wa{4{PpL){Xobs4zOb zgz0fYC#8A05ub_hEC|n7Eung^ao|#^V5{|C-ch-ux8<2|c*7sYJPwE)@*E7Db~tY3 z?A{)=2Rc$yj(4uk^k9O4Acb6VIC+rJV2#cD%yp;ltdD<|sIiWDU_qGpiq9LE01zKQ z{fwY71Ek2K=#E>by-H)!o>j3gp2h7NRV~%ysawv3K}`uDkp*0WxCe}`pPOOJc$aG{ zL_8cm%D3#KSNrYMB$&%rW?uTz2?|P3APqbEoMG?gOqpFUYt8rcZSL5JF+ejjh%fqr>*u zh8*xcsy`yL!2K@WMrHs|+%2T{<6@P$aLFoxm<`*zSRNJoI`aQ9si0=%15+m{RgiZJ z%nLL@8fJFv_*#zZF<&NIOI|Ehj>f#DB*aL}KU@TO(gD5%ax&P0S7~t^TWE1l72O^45yw5V(r5(Rt!4*q*X)YgikDp$;-sX#5Uh>LxAHxnMZupU1 z5tO+$(2@yJd=lG3y>i<1x?PQtbBx&+akIFOuJ{zp^AC``nqbf4jdy66 z#(BwwmVX_~+^Q1dZ#MlN)!Xzw`5zS8;M5H19uDkrslm)0Zn5?!XB#Q79p#_e(CJBK zDp*4qoV_#QSRGd@8>4XU$~XDvcGHTMAK5F-`PR=hl)4EJ29i^db^;a*Q074{H={hu zapvz_Chc?g@!r#u7mE9QxOO_-kUmogA=-K&pC3h_N6}tjrACGuZ*-iYwGVp6P1+Sz zvisTjv3-U5RDm6XTc*f62_ar69z*$_)>alu=F&3Q8h(pgNkNV0Kk?ig^7+!!$@1Nb zit!O`t^iJsNtYe3m-${QV|}4s7{`-Xzmexek>g?LO(M$NEo0GfXfhM+@SIoFB(=5#CCqos*duD zT9(?pGDU)X0U8UbHzIm5;g>6A4#D<9*`nBr%JL@kec&F3oq^YNfe~Z_YAuKn zqRlyWN<(RDzwE2ulF|>SxMUZY{3?u-rpCl`pU4zgT-*~U=K-5oh~B+7OFjzDpMEDI z=55M?TmBRT^b!dCL)HvY1urY@ClFpyx%B3-IXV4eH+6c1S=`1wYVU&h8!f>oL0)om zpdc`cER=u$dF0i>+}hc`=`8~s4|69#;LNR1t_D=o;DFy2Yp49hX4|gS!S+RK*&4)@ z?zVDF0HXOh!{d(RNQeK{)UGJh_X=LQyj1V!vecKOlj&cUsOF+lFme4_dsF3xGm6+M z?`d|!YIaX=Twa&`dTb0-{DoS+!9@hhGF$LNufwWyQfAzb2s_r0KC>n*?SNBI{8+Q=FWO=>znudV$WKeoXnxFH|Qo|4)F>6IzT2CYL7~fJy@#$ zVL3T?^JY&V$H%kg#(T9=9>q~ZQMF}AI5SlGRF%lpuZ$iHd~Gk-yRB%wLsY!2IUPc< z#UKQs$b#5K%-m4er#b)0uyv2f&dM#^Q_EBp7e3I4aFvg|)8^U|34!gyO8LwXoB|Uk zbSE&@g@8^gGuQd8&Etzuin91X<&7pzvgL)E)A18+}iu9!8ogJdE#k_@KDdCQg;2KdW$_LGs=6tA6|LFALWlJRkO$8Rdbv z;(;FlHiMTN=JWIVEzyU!7CRr0R-5zY!=A&p2Gf`jDB^?^P$yKwOqrymTl@qHeq*0g zoKt!%4Z?jBHb|j>=Kz3Eu zEqbi3TPty_wfSIY<)M&(m=i}SKR({P1S&L;3}OtQ6N_+r%NntM*7u82+?^D=HvdV_ zXnQC@pBjE{K*>PtPE>b#kec6a+!^69tGLAB>?~*4vF&re)|**$4BkBt#v%&9A&d=6 z0Rm&kYtF3Ubx~q>hZnUf$qjzLDs!ERwnN(&oCFk)=Rck! z8m_|Ug%@8os5uSG99$PHO8FCbjd?i>7~+f6-hYv(DBVz;0{fLD;9xb)~+iG9*sDjo9Zw>357nj^RkF3v-{YbK^_0J*$$2 zboV{>9|M7GS3D;ekg&EW!U$}BmSpaOWoPSmS$v++{zPd?(hY;m2~b4Q9xleAV>Jz{ zs);TWJR4oIq4~p3^G_dd<%Hgs`%f5sIoEwWlG(?5?{l)&k4Lix?Vp{_+D56$jPK?) zMxcw69y(p;x>9sECz*Y5pV8qCckTr#pPVNc3|A0fvtTR|nLMpLoIg9Z{`jhWaK?{r zmPX32z&H&4Jh%+7f<*TFDnF;SC&bzNh?Jch)bCWZ`j6iy_9AZPVxL~8J5E#a=jqPM z>Ur~05jz%jcE$uSNG!F-mk$$UZ83Kn4sO-b`>bbrJ)-^Z-y%xWVVoD)b`REhY$G1* zy)*Km(c_#$QkY_Gc!0XN?4)}WjD;K^ppoJG8P6_5N}YJa#=>-&pSOLRZq5|fOsuc} zCLBUyQH?e3WFhPmR4|LH(qJ4f3~rwpE7dP6jP+=V?)>GL=e<{p0R@7F$>9IY{O|o)mpDu)1vuv z*XY_(2!c$O&ew-qu0X%)iAB$Oz4znJNp^>d^&wMAT*cQo z9!AJ@Jnw3(hk;gQzQF6#IUY~bTpvD7u#6DZakx*xd_X<}ks3}>f}|-8li;xx6HVE- zt>=>B^NyE~7OsA$RX{vVgBI|V5k3>tS zCuQ%q`KZz{QZ`7R9#!!~-1hX2?b(~FW3>mKe~Z5GT4k!b&&Iqp2_<6~FiovcpAgbY z#JvN^frdSAaLB6BQes;@JdnI2s(RhCgIP{=7{jUc_4CEzD)dgxH5E4LcWAB^5Knu^ z{kE4>)@ia(m4Q+gi0})232+luT0s&U@rtTuy=@;G6KnQFa&73Ao1c70K@L!&Ou`do zW{7*@QUh0H$j;tJ`d#l;rk<2lef?$ap7a^dUU24rA!kTIz5mbfl9pB$7P8nc6PCqh zwQkX$)arFE_^(&_5EDQO4444Wj1X5PI$iin6MClyQHf?Qtzdy2^Ah@f@2y^NT|56R zey!@;F8QkD27@1!lVR+IWevzoq@y}wWdb?7m%Tg15cffNN^Ue%{O_HvC#cWkK8*_4j?p0 zU9i-g?Y*EEEsRNL#*mB=J?tGiIcoYQ%ROsmSv-#}Xe94DCKT0Um4<~Ee^cjiFCNa} z+1u^^!uH(Eh2o3pZ-xc}xr-`riA6_yM&4RZS`M>oS`hQXG&*?dna#X=`t}^^(fCcO z4Kz6vaR5aR>h-~QG6s~Bwy=?wlCs2p%;ie|Y%P^j$M$fLUHR*iC5IR8BgZrcwF_d3 z;L32d@`FDlH!0SaokaY)(GUfT2oVLGy>QS93hPC5qz2u5RUUx34oooEyrRAG4Y24EU(-ZR`vz2C^R1fO&ixM0)_vq89 zf5F2zr!*%pGr`4jBJ(7dKITu}J9j8;g~< z71yWiA_LphBDg|J({W2M(?Fp$_~Nc0zDE(^NlVvpxLoJ68$S?&(7Y^BV^{DosGbyy zeV%!D(#DR$eTH3gSDxIsq<8%Dq|Hp_Es)M!8vh+f^NnA57HwCF*S;B{WLzbDn!=&| z3=KlS9I=A(CuGBjK6Pvexw5*}f5(EfC4n3Vc!c695s&YFlF<&2&4F7R+Ei?aUq^fP z>`lw2>BC+TE2gtu)YwI)0T5f6l5;4UO>~#jczEdopYIyWq32ciPma{`XZ{wr%Qz!E zfPhR!B=9^S>pwf}_&V=^w4|@kyo_^it}?0XeR^UXfV7a1u|!uce+<3u%I(zX^{hMT z`f@{O+}^}Hl&Htw1i8s@4H0E++3Lg%{MA)@boG+&jB6qcuZDZSF+*>%qNX6 zVzodZg69LVh~c+8-qwSL9lTf3CVh3#=K8@Xj*u>+1WmO`nv4TEn>&DK2IWeV+M(tV zy#_be6>L5N9fp}tBXhAoJ??38PeFVD{5dqt@;1BN z_q3HAWtr_?4*8dAvp%>k%J@7H=N;=gIy9(QkPuusPcy;Au=abF$sb#{X2$1Er;YOaVQN zSFXv)%3_LLp?ZqR-6z)NZ5J_&yFI**{Z$e5EEK57fM*Lt6_t}^1LZtWe#{=2nAa`F-vqz(<{KsQnw1P7IUM8xMCjn^B(4?6e01EpF*iB{z%w z4hxQ~ZCNnXta&}VYYZ(78NYCOIa&L{#u`7#ta?@5c6O|^Zn90?i-6|5J;CiC$AG}9 z{6|K78$Pc42ac*# z$Xsg+BG(M#dOwGKtKQz!k0Ng^I|84tv#vD#IUx=aWD>?2U3=6OP}q6A)4S(R%JcWd z>MDob%oRzaaLgEjy9=+3f%l|_O!nGxec!bUOYZWWWlQ8q3iMMerY?QD4FxbFH-G{y zIwEUjHXEF zzX;qRM}-)0wZ>dVRvLROw)!y3wv9^lMvZsZdG?05+3%nI4;V@nK;cA;y7&+HVO@Qu zyXMK}d&s>INe+sW;{GbtMkbBX7lbTuz>_thyoDg>!pBvTx0bcE#G)_x{`HQ^c|KUl zSN~Hi<+Zk168*%G`v?8T7&E91>>{*E*denfqsqW9Yb}P^MYjZJ9+nW^%s#=K(XKuIcYvCPERxFi6CL6i}Rw4wIEE7T(ZfW}^N^wcb?w z%>7AeN2tq^`i^L(x_DZ(9|y(yE*b0bTup1)Fh`+kBksW(GX5ywqi zCb!x6!M9>jZcK|vE8I^Y1|GVyp?zhaI)Xqyi*6fe>Eul&ip9pe?+H-rE_FXak~2YMomfF z{ia9c+rkOP0R0iE_@JlZE!xi{1RUYJtUvF!kMq;@H;-iPTp>gmZj2+)FBd|pVLY|7 zH~c=hFm-qj&r0d|{VW>4>(nL~%pH}*5vKtY>XKWSbHY^+`rcm*>TM zr8A?Di4B)D*a%~Wb}V~p$*j!uYY5s59AP5u740ef8lnne zvA1i?60{l;m;MyKK9j}J`pJo9BmWFc{Q$8v#62x3FxAn&_qxsY^r80^1CH)&Vl!F) z69`^il&cDk6lZHJ0`u6sHZ!l9&#|&vOc|r zC;|413)TvE$LTqj`IBLE`Y|OoC5Qu}%nCVPAR`WQx8CW#Me?fF=B?JxnnHSiK8$i= zK1O856ul=0uKpqqilmf{rG*sMtkU;gDmZD?13#9nHxC#t^>ErmxelnMCVzr#Xh>?_ z$Uk(1CVJRd^SbEMnIVe@|Eh+KOp|eCer2SHz_-Dx(nwMUq`%T2U85# zJ^iEXh=`oCScaw{+pQBup;soJCvlg7bcIe+h+OBg{IQ~UhOsjm*H*k+GJNIC!Ac!6 zn`3Ng@DxsRUm=wb-^67DdPb9_PHpgVSwGMA)P1v}FR{#;8^JV=bUu`@MuaG_^d-hE z>A&=5c?S+}>W$0HJK^U~rqD1AIFXup?B}xN>{WJxh5^QE#v_ZKt7Uz(Wqwb5w)EFT zVNuM)`uE1TLi9#f@b z8zl3XwHe4hKu$wKA`v=??Hm&}!H+T-;-Ntr9iLaY zOn|gU3P07R0`EGCUB4D*BDL*gXS|Zwa9>~GA#CN9e*^=3K^%z(sEO1ILIx_mc3*g= z|Mjc&g|fUy7x7o!;#o|2-RL5LQu*nQm#r#2#sw@3*BR41*I<_p)ekjp%ObjzKS zs~(425Rl|2HC> z5)YJ1Wu76n^P$ML)EAcrKdorijUNt;c`yMEtZEP&kbeXUHO?Q;xl-(LbFkJ&$7`zb zDMn`^*xv3)`VSnD=s{)FoZ0v~PGUf#c%xvwdZpg?eG;#YD38q8Muqza1|+X)RH9tt zrma#Uzf2>FpOts{9{D*z+;e*V8IC9dc7tZx_Tn~hZQ#aGy4hak=l52h7Tl^Ov2MZR z2vx(aHvb?|P#6pv8c;sjTR;E;`{FiII{k)jpg2p91jn)VaFyR?%$5SGVnPmdB83ZF z5Gbh$YbxEH@+z_Q(wg#_)@|!`tHspgsE8uKLE&3_AM6OJ5%tsk7Yv>ablt$q z?w7?juH=(0Qe3skxa{76UE3VdFhOu%ATr#L%}?#ot*MiX6S(VN9erhRh_7dT z{@UB$rZM5@_L`G9gr)&Y>S=3yzW$umJ?XY$mHl-^aW6Oa@Xbq_yZI8orEO(7g72r=w70SkhnjS|Qyu9Jd2D3_M{IZ-y+6bJ$_KhH1L`nY}75Nh8=?<&W==ii;j$ z8WRQch^DtFogA0r)>hb*djelXLTA>xzSBHG#}`wlr$Ab^8bhbV8x_%<%zyjggb`|QU~Tqmo` zua$oPR7}78@?S7&`GXq_GK$#E;wjvzZ_Hw_Q0`-F`-^AZ&o!mub_`RbtU<;Cb=U6P zOqSf+{*wh|CcCXwJ5#ME&TPoSM7><#L*q_*_=2!XG%US=w$f@N=g|_{n{7H%b5lBI zynDzrM^I=$*B2kJP~%Fxkh2B10bhpjl9oqH+XWZ1>=vI9$PBi0CVdEqvm3J1anC@? z!>><=#J)`FZXPj~e9Mw#T4;2P8Hf}Uq!N)$eXs#Zi;vj%+Zx$?d!a;Kwn)e`^(6+gbnIwH*15|sJI9P9IXVeSb-2hCm1MBAGy9W#i+$dNNB0I@pKTrW ze#<)MbBL365tkJu85aiB9$*&{IxD07xyMiUhr9N7xoga$A*wHA*Nb~2B2jB>%h%QS zs?KO=?b3a>Fe2#9X6f|h%nm<-9t`ir!LTT!IrVECwb?F=yqs+sqVh29g{CyKPhjlJ zBj1`ieN|j-*96j<4o{t1R->nHcR5eW{MrGgd7|hq@?{d0RPa3^G8DWmPc{F-+$ZU= z;ft)I&8|PwQDL@?Q2iO6k_FopcjJBaIsD~jgGbx^eBXdK-|xRU`69TUc_=Taml$*H z;2iO=->`_$@S2=&E83Fw>db$oC1*Xkf^Mf!&6({;^@R<~ujIo=jF}X`bo${iw_G!|_@Zp`5|1M9OSD zaGi0%a{BHX6Q_d1QVrVehB5+^rZH=9crU9Rks|~fJ*s`o@en4Ypb>PtK?L?)Ha@=C;a;*vaY*me$c@Z=|kBs=eSbGF4+t1YoC6Ox_zj5qn_X#1m!r>Al;v*~PL2DqL#SqE z8S^zts)sgEw1d_Xi|q7u-tWr#RVY4MLg?h^?sY9A%+4?p;t8!wP)GshY7PE+Oj!QL z3Y#{TNk$7~;-$SFyf}B&pII)!c_sQCG0LWomb+IDHl(-ezSaFQ^XbLMQrYRP%&!JF z%y@y;WYc(N-6WNP<1d>`FU(qdTsc|Yl^FyYJ`yc>r66(3VAjiq77Ll$==X0340?U< zf#AjUmCSOGW^L;XDjuA8CaWuCPwcYdIl4VhChh*nwz)ROZs{izrXk_7b~XpK1c;RA zyUga(8e@!Xt z>z^1%oL?HYWZ>X@_FTiMOZ}tgtT(*zVfh}FC}sq)Jt$L>x*r7C7r$SkysT?^nXk>S zWl!&J{Zqg!K;inq+cbGwJ3%>_xU+%`*28zE^@2;Qk9xdqeR*fu!w1-RD$jw^M+g+C zcJ63n!n$I&u{^=$SGV`R^IUxR%9aj8CzT}T*a-s&__m2)DJHsXrhv$?l;A3d7z2%@ zj%RTie4flNN8DZjA^kF&3Y*__h59DS@#!7i9DX{n^8H(8MS>WMpvN;8M?Ksy`TVvS z`Li8cYdYua8=cK+Nb7a9oNy$9Y7!lBU0t-HBUug&Z+jbpka8hcESSRlXzd*Q~tfEAwxV^*oTcjcP{BZCy}k&k}Q9(dxJ% zWL^LK!NhN&CQYkfIv+U21oZ^QJ2>PZkz8;-VQkT;{gOJKB=QINy#&*#d%le+ST_h+$!xR#Pbs(UpomI=(>7+1hnEY=S%W+f;%v~JS3Ytpdmf!l(3J~#Wt_XC z(_ZfUZbK$8p5#ti-H<~Hyq;J}=IM7|ce6>pKK<;WS3t@1(Ugj~iBPzd_e4~QbSr(p z?Lt{>;_6>3VmZ1vy=;;aigqMS1SQjGJn*s}$d$Nx|7`NYZx`Jb2yNQg({(%kXhzK; zCLE+q*#lJ@67pjkf$jqj=x$wK>OK;9@kjL|9s5;rzpTzHGyMQjLQR9q39@mh3t!1x z`JwKt_r9Adj$PWjdBL2w`(862Fg)(#VT~&L7)z;^3c2(8?+|)d9wDQ*L%yV(jlYpO z4}r*cwuCzoihB;}Z`?h)W7hh(<6IZLpRwO6oLu{nd4{A~kB$m*CAaGH$cN7hGi7P9 zpLJ}{zUhsXRa3@8AbCX^c{;3-uLLd(P+-vtDJf!7CiYpUlV%^{n_7H7RzSLEhl-0L zGge8K6u)>n2PU;Y>8c1@zBixUIcMkJo5h!0e9sgNlad4o?i4~b+mJkK?L;u(%L8A# zP)ANllc?qSYkvnXw(ttgnt5h$f&p<_6*$;nBirJ<6qxI={6%mPkN;+lD#c_UfpmS9EBYMT6|CFb^bTOF9< z#Q0n(^jNZHM2=&SfZ`JKnsY91pGYYluRnH0Z^B_A?ndf*#E3o9=IO|vQ7agYH<$0Z za$s?-&LgG~<)!6GXBVyrS%UuwKPK2}{-v#-O(m*&7mwNpn1zjSvHu!pq$87u9=;WK z1e4MnJ7ea`D!A+I9S84~yv;0Z);o`zMl;THJO*hRc$Ww$9mI6kpJLHH=@wV{xv_!0 zw#Pt@drdnt)J+Nqicvug(rF;q>8nlGZPD<{Q`zLgFE_iy76&!=jC1Iq;iv|Q;<%v31t;=*xi6l9yyOO0Lm z{&)$zinSroBk!$!rUSwYHA1q(FAarffvIG zTnyO3i<;{dT(#^Ke5d+o?z~uCQJCZO@6*1p$i(xVRtMVW^lGM0J+b}%u!;Nwx9$FP zO&I+;`O;GI1jiJZ2qgC~nw`0Vm9?BTwp3m6VB3L}BY*0>hq=2KYG)ekpUF5T^&5&z zzkzWM)|HhOXYEm))@&n@q&B&({1IJLG7e4xVH4tH#AFQpC@r=7cbZ5SOLwNs>r)GY z)}QC4pA-f(3Pe*@u;HAUdk6Nt8Sr$NVG{8zyv8VQIo|{`#jj-i8iy?Dtt-~1sSoRN z-@+>HG$?jx{+0JxkZ+k`jTEdbWF*Zow#wA$8GmC`)_l5&bzP_sDJoc1 z`JcanZU+=$CO*-<&*wLrIy9)LIFY%t2xU3~OJa!*lI;GwIt(}H@c*vYpcpGM{k>@m2Z>`C9FJ!g^QXNzsU zYx{0H+!78iFWh6E_zwo;wjxJ$LbrUmlMnqq7`&jAGy;RlQ}C)lnz*7n*1*3-iTg@skoZ^S)tP>l z(Xne|7mb?@QC>pse{6BYf%uayO2XRv_qp7BSZBU8teo07#IKVn?4-2AY&>VFNZIJO z-fp6$U7Qztcv(fX@wlI-Kabi@LxmN372>`LFL>hBlCmsmPt(ZzA7)pRIur_OCW3-V zOo&#j=}XM@IL?F{T4n;9S9o9}sN8L;maitNZ5p zIAwa@IVIgy>s;4N`6pl`H{5%I${~rAc7mfDO9(AVsWYDyx;RQ&7QUaoIMhl`ZE9&gwG0T0r`Qut8&uOk=qm

;*pK>j@WS;=JGOvh~O2X76OMNq=dkY2?{G_XxI^0@&0hG#`?P>S3Nrx zcj>56{(U+3;*KPARRjt$*KOP;1t2jV$2+kM~ zZ345ClkJ|=cF^wZZ46u5^16A$*Vz96Qu+YVn*oG>S$l`i!z+`YnN-?MxfOr5ZT+U! z?r~Tu3XPN16WZ9DX+O?z%v}^P^~2$Fg1qcC9P>-2jmMDXQOF1*IUD@zURJ#cYga4P z*;(hFT6kbdhNb&>j31uZi6Z6bgGD`(EZ-(MN80k_aG_4@p~+7=XRjUiJeU_~@zD^( zj(XUURop$lt7q3HTiV|bHzX{j-y9!@z;_0fpBAnE`NIv7eD`0|Hg_*+ieY&!)L1g^ zX*)3efTs}!BoH?Uo?a%0$tkz+={cG;;8CfZ z6S7}`?St67)4h(xI65ufKc&?;DC_hM!A(M1)D=m93FjDSah@omGFD;3*_~XyXs-F! z?x_01xoTTQ9fgiiw-E`%{r&WN8A~~NT@yfBx8_qFLis16LRvWuc7;vDmYwl-%4P8ugjOMq-P#t@a(A zpkbkj0hsfBZ++~uY1k?4CAn|Zxq~%Co1Zg13T}L)LBnPye?I4nc;~D3xE;%%c#g)N z=l(jYt&zHoi236YJYtdQUW`V*QHz%wGw$VAEcRaKM2}l zf7ov}+w;B4innC1^{F#?b3dvrlzJW&Js@fuqNI?jxOLlh;c?hEtJohcy0dEH^G#dL zH`3?`=uQW0-mYFW5J4yihCpZ-kFcPaIF?JYPmimm&RJK_!7=4<2n8bBWl`!BBHCk+ z2>7Oxmy@xulEVVBempCSuH#<0##7o<*y8QYsZ&>u`xX4gAW46~A%)u{*uzkBX;02A z-cv)WV>LYXa13;A|MA}_s&0<_2u)m?*`YV=d4H>xJM1!FF54R7XEhE?)%cFd_OTtM zcy!V!_j`W&B_7OcEn5tjqF0*O)hgpN-h-TRH})i(jv zg+0&Ka*L|PjDbL^xPl%<7UNKc0&y7EtsnK0E?Fe};lXw_<^8*x3i$OYACA2*B&p$t zmo6OeT_vrAZLQTjQGRB(ZDBu`lJ_lxT)7$+N&-3p4-Ob=C_+QB^x=D&hE0`sKEsvU z!8$v~ev88TSEnX#3%yIu5$8j80yYsEmUU~Ee%n(gp*d@{s->1snYry!f&{};C>joQ z+KbF)mE=~MhPs$YOo{)!v2{tZqZi{-(9saGpk3-SwpAWaRdPB|y}+U@Y=x+Zsw?@F zleCQtus-4Zg^;mCnKQL7SfyUO^UX6%uT{Ozb@8+}t92100v5u-3qPW09_W~Z8Y8D9 zZG#<7eEjj(3b{n1d2!ZPpFfq5;JLJh5lPg4<9+1SI_OEtTtQt<_gvtZ`%R}C@vGIb}}TH6}L;v_glMMzp>vhN)M7%6kEIF zN(%)cD31u&7z~5g`D5R2$oO>lCkA7trHugoaMhYrD%9 zKANRv>l}#<9&-I+BDlneKJRM zDCL7dqi;{@v496e^P4#3h>cgw(&n$Y+`p;UMpMn5vNH+9Sk#0Dd{n?_4sj2xbd%WW z>gOdZ*IK6XuXFq%k*qz7XWaWB4F!U);7%k`%W2r{SI;6N_m`>jc6gMf*zVe)dl^1(TErl)tSQ@S-VF=_~Ubd#dCq+yS_Ei%|9Ee!kJS5W;a z?YEM{5|`ldV*!n(7h=ny>xTA`w{Aprf3n?Ub~MwrnzjB%HW#IN5yKHaCP>nQU^%4A zp#EHhY_0eek^BB?OHgB1Qe*r^KGpvAB1(H9ko1jeW$lYOfx7|VIe4kdNi@0?8jvI#fvV@3$3#QF- z&xy7-`9KYQ3gM`1aS4ENHxyOO$aP&;1k7Om#Fy~r1KWG*v$GJG*6PR z^O`Uvlih&%61UFLxyI9)vD-Z&wUc(vvSe+@k85;22t>fiTJ+z?c{jXphA*Oe8Z;`L zT?`p$X3Fn-j^~$uDpNji+IF9}aiBSu_68MclJ`9d_FhiAHTTHTUg;#n#{7S%XEqzH4Fj}G6NJuCszxIW<_Ll zsyt0|_M0YmB1U?Fz@fbF%9O!}|32Jkkg`o|L_!yo!8UB4^>|tI`j)fHi>6(88h2A^ z+uI?=ArM66HRt8a>`oEwjPCfsnE%jE^I-e@rwgflY)>_qA2P zvcbcfXvrrWpEi*Xp{f;YJc2vEvl>xefUW8-Vkt`5Htp+9Tm5@0_bPsA8>Li41|&5n z2!P3w{usrJpx*|4BzXk>wx*fWjm{|-uC(a@IxVhEVcWA{|4A2aO}4;tit zldEt`6}d%SXhcHoesBPgI{<8RPfTyt%hMMU-(}tP{$jb^USoiBFKrV!2;Nx%*V(|q zfOjQ;?T^VEx_I+=n5ga1=!IR_jQK-K+*c_D2M6G~B*nTUD}}ZB@1ERmYFqF$P{T>D zbxz3blV+6ChCh#D-yl@UtDP>70(&1F*tGV^qxqU%CmSwZ`1d|EGg%+&$6PGA281P@apnbUl!_!vc^0Knx^74{!A&)r( z2ni`X$(47{9=8a;QvF_ooXbxlLsRo6gp!GVRPq&pF1dO@qxEOxpDCOceZQ9}6)FAg z7afO2Ixm!z5z-u%1Y9*V%zZb$$BAkQ&v$CyF9m~ z!pjhkFnI%h-d_AoW zIM(?6gGCWPdb?Bd`qf+*^T}|}Ojj18J3{kX!3Vc0`qhL$ypI+gjrn1ZR=M+E67_m9 z??6|G)YaWfN5*YRe6rFI>NR%*`^Xyac8e{FHe$Q#%2jZ2t=hV(X~%>%NZRdT9?TNF zk>JsRZ%Ji5W0uduW42#E^?k~|>F#-Z$`Xue`&Xnz@ zi#kTI+lQGEM1X`)e^8nhS;SXoCpx#iho{W$LcqL~T&eSFm@DJ4wn8sP_>ko#C85~{ zBsvof-f5WhxuaJarFhzQg`A&u{;$jO7K_K>%%kF71k^#o8hEih#=?h=XRS5Q8<&?a z&*)z}StDq{!Q*G^nXyEX5kvm?m=k-JyF913fRy28Zq9(IrYqw%O&_8B5cobrvnJq# zPX~DxK$*DgUgY1jx-r^#TTRE}_D^TdT=J#-Ep!-B8IO3xP!qbPUeyb>9$of*Kks+{ zcFV_=agS>$w;=-p^&kN~%mci>R?=ACrsK0;AHNu*FSDvI%IL^WzsFR!JHjWACP$Rf zlgAgA7MS?bkKUhjO4@@i`g@p8nH=SrxwV6NNeCF3%YXzQ=I1dan0dmLKjK=z0+!8= zS|^7rDO-U)L1)nRLH|T~yx>#7Vt!AR=^ae`Jw;0UsaSh z)0(!&>EHN%?1Q1sv+#L?v+}95Yx>dyy9_i6wQ{y6!rR0uwyIWU*ctqa(~l@9J|g$v z)RvIGCCq~n>D>%c!FY0@K~C16%QZhjYG*9x{ovgBcs?@-IlD>HQPge#CW>nKgIWG$ z8i@Z16nwR6K|Jf)>Vb*@vwx7Nu_PJm$L?<3t!jC6^6yJWN+o{Ha}#WTAS3+`fUt*< zLjr9o8kRlfie{32SghH3&4~JwOJc$l?~l6^(XRKDQIx}MIkd2IoUA5}?wq?>ZmIk- zjvuB>Z~C&~7X;f#=61ycTq2j`?UbKhQPD`^r^sN(&JhGlK&xeRZd0AQVm=&yaP)vI zc5T_=`Y7%-&(FO+`i1!==xAUZgYygY87_xsroQUnz8~oD&LC1ksKm$az~lc!5uQ4- z)SdXW<(G>2^_1#{zWCPE4ts1o)IqEH6Gk&v5cTQ-)*Zf~sL5 zV-AthdZV%kL1|ZvXnu zhMniU;PD;0IX52Lj=>-l2#1U8%0#RXqu*)n!Hsv9J{YO6e4&um85(NeU|>{52ZLdT zJbvPkFoIHNaBml)w*dk!Ju{Cb;dwG8N6SK8RvRDt#XW6cOb|n~40adkq^2M2vCKWp zG|ZW!Ws+9j@n@smQqpJnmL6J7g%r^~o&b#{B{-c3;NRoPBjHQ?tK!#N(Zj1lpC|$G zK=BI(9RuUqK=-&;nQF!VGbafa!Q#!l6G+_!#x-sx!DpHm+n z*4Pm_cD9MJ=s1kW@!E_n7Foj!zo!nltlqY~N>YIGD&iVAW3IkA6f=Q&zg5BMWN88C z`3p+f?^&{*#hv;pO@9|$k6@@sckyz9j;(F4uXshid@x5={$Tc2TX)lg--{2mmrj ztuc++dPeh4A5badVo!e*V0;!vB^%3sCOYg6xf2NzTCjYCL|fw8PT%xOmL$HOIliw#c8|GcpK@ZsKy z#<@%oqWp@X0u#v{*p04`fA{cP;pL}aKQFvITK7S2~9@sX-M`+ynQE7O8S&S5>KFQGIZtE=dkUPKIJ*%icb= zEh~ktG;DACIfaMX-y{%%M;@}kEyp0645W5se~Joy^1$$iS8Gtf*Xtqu@5yb?e86a*lkrs{)fOF4fIa-A>s|@Td*Q zZM1u-a9os4(6{M>t-GB&?%35zp3E4%BA_((!{o*62E{jc(1r1fXRWxi=&9so=a#Gh z?t_Qs&r$Hs6Zmf=mRq%C(FYQ??$AKs;3eWeALg` z0=AqbC9KFi55oWbJ$vqhus50xg_D0aechU3ZB;dwa!&d=J6nTS(h{r$2XM6$>qJyG zVD*9AMyHj}8ShESc$;{(E#QI#@} zi=H(41j&&|uQ32{wOIxWFzj(W|2 zgUJu)^d=(w;Ck*Xydh8!(xAz8eT8G)kb*HUUzHvOcJZ_W!XS7-P%P~CgEU73&Sgw3Pv61oaj^4AyXE(QaHj$-SpN+Bu+Y}6_>F5G;1!`s8YC8J&sPDQnCqcXnfAnGP1r3fZv@%V122-lhSocC9| zObafc&3T#2JUQNwr?||gUS8w0;O9TDu+ZM?;{)px!?oG9$x?YeeO{g;^$F44{lFD8#hP-fulq6QeeG%7N(-+3P2=kxpP{^z{z>zwmG=Q`KE?)Yd-S1x2wAtYYlet4b{ z4eOVFnZ2PUa!=Tgd6yS1tvAmIa<*n34M{?K;d2u!Qk20$H>(PWRUXO=UasXl-Rb&@ zBkvW(nZ_gcBsiRq6BcjRM2YoGG4BF2eBs1C@sNDaYew>WyV7u?=g zFE`1#vd!h@bKhJ`1~pPRA!?Iin!&jb#1n#Nj=Hp8R^(wFzoDAf`p>bH8IE!+VX9Gyvl_?i=AX+pcu+zW%^Pmt`_~S(lrcN8{QZ!9tJ< zMQElv{xQlKnI@IX>vhJ~s?NQ#fGddYt=yuCuu5*^zG#qDA=ZN&ZVr z?t*Xa>Rv;|V1w9U%Os2Ll=cldq;QV_9;8Ld#{*AIDm?~a7b4b29-vBA2V zL5zt(_XUtJ=*<)Vm>ZTGreOgxLk)k9$%ib`0)!+J~C zZvE~Vy{T>Dr#}6j+0{=PYtYo7(wsMxWFV}ucp;wV{IJfkdGnt78bn)8fB(f&i6xKZ zglIhS_b4I%=3d}}=%zAE%sbGm|_*eS-$$m;rV>#Tk7+*c&} z6Y3YA&opD>>Hb`5*Pb5bk>|X_*K(5#e8DL~$$Y}FL*Vew1O=*P`}=0T&m7;b zp_|rs&cT*JjYyiLM+H&#E36@-b5~g|>qb_g#)J^vlsnhkzg}mcpidKND~5A~t}T}5 z`))+HU=NrBsS3(|Bl9i}V&Z5ckM3M#n7NCF+-rh1qV^dZ-jq)nV_w zo>be=T96F{50@d25Df$XOxo;I+_4WfZ#VMYYf07}pD|`f)U<#aN;ZeyV7S!>_p~Hlr)BhZShic7S-WJ+^qR0^ z+7{}H$;zNmA)<-~alMopV>^64=Y<^6D`k!E=diZ>X|$gFa~MoFt5c>knb31Tw%fX; z$F6&;JrvMsx_|4`cxpIwgGUZgV%;Pg!)^_{eyx$*XR4q5ee2M)qN)PP#5)u~1qBaS zLw`Do5%DOc4z8IKq1Sri`ncCQo#E{DoYWI0%QP4cA4+{hOQzxou}O#AmMI)B4cQ?T zoLiupo$Ru466ta91}MRjVCf71NA?^)!^uCQJ8!NUmO8RGHJgJ6WX75agt8XW9l{mh$2LT4@&o`Vr{%K4t5E8x;73GA{9MX4z{+J zk+C<35cPHu9cPHcGP+W=LDYVy=*Xpc0p*Ja+0{26qD~ftfYZzPp4O5VJ~*3gkC?M> zRGdT4%*9qEgY@|!3XoM!mtJtyL|GAgT2t}UX_2FFgxV$E-`%(L+K->sW9%G})dBZ{ zslthHZm+h~X@~xqM;b=@5?!p*cs{2yA&BAz1ZyDO!Po+}D#MB*CEJ{V&@ZRA_MPw) z_aU_Yop+!9JuARxi(5rVO=FGelG&um7(r+t+~c+%sQ5v{ zqK7P5+Ew)VwPe!7SB%H&+{*fD#F!D)P@L%{QN-fo-0KdULFWSd_cAvAl3T^;qH zqQ575kmI)z^lzx;oi8QSwQ4b|apD55JdMoiqjUTz3cwL?&jPd&r>@mHHnoP4)t0{+ z-pmz>dDNk7%h^rZ5WVFUq!B|#9Y)|=Al-Xor;YiE@`$Oc#-42c`Eq>6*>|Ed$o~e{ zEL7S;vJa#zlbs+b5e%_K{|}w=9@SHI!+9$Y&gy@9d&*MdSxiu-7flk3A>K})b0FCt z&zx_o<8v$u65xHLu|E67A>XKN*@dt5|Z9ST@bV^{B@@}Iis8v!UEp|F0x3DJv%{3(^W$k#H{}4YQH3Qe5RND(%`Rm~rLC_gPz&+kBaZ z%gZU?UIgX~2yZlWr^L2hSKHFLr?PR!gVX*T+h28^+HFe7`iKxhQqKV)gTNufjQg#3 zU44Fy<>xK^HToM3FMOZ!_7@X51vzlY5@#5NCwaI9&&(-|f#=T^IAYxJ3q zVKuT$I3)!cl2>~B+Cz>Hx!39i#{*1e3N9!+uDWeY5p7551#=|^N={k^&K!Pgz&;PE zCW(6M`a)7Mc68lgWiJ;_9@@QI0i~r3l(IB%3TR(PtO@sZsD%V;ru&w9+)nwfQ~ZJF zeS)yF4g&zn4(OMl(}R_eYEwhxC1d?I)e%-7o>lCyvvuS=+}H4(uj)JlNCr9*atBm< zW3zQ1>>2U1saz9t{^+|HwhdiVs3!?FoER-H_b*?na!6UGD$di?;zLz`;Rl|s;;-(M zoD4vs2{@JcPMW3*XS8+Ia+qJK8B}>=Iwr6rWdof%;SgvA4WW>vriHwZ$QUA1t*e-=bNarE1~~-}NV}dl>;_H>D1s#HjOR`O zQ>9^{CROo$JZY2aG|vWd&g*=-@ogW|iKSzx`eVc~U!1<6?wRGw^6Y`sjNY6pcRa>K zEEwyu-)n74Rx9Pvn^LvzS+9PEwht=(c3-e6 z*)Qx*49Ta^a|G6TC9Hg2?9v0eihYe2-%i(V>@hydJ4NE(F_`;Nwq=S!!w%Q4t$Xck zKiHRe=@AQKsH=j4JShb-bt@i|{;|#Fw8Eg){Vz|_w!YK9J9!-$t%}YFj=@tPzzjwf z>|C0^I;whPN7j>y(P!~1FF3KjYP!OpLWr4Uhj3T~oM&{VjMa=1xQAGsX9>>dnIyt) zc6aj0)65`Wu$Up{NiZwKGv+2Qo~v}5eNm0&g=CTM))sdxG$;QXf>6uRYn^6V>CkSz zZi#zLib~I~V_V#PynZkcWRwT0D~0ivdWCH(N?#lDWx1J%=A?kv8LWehk@(qTl1rIn zv&}q{nwomE`V&u#I<8r+ZF$OWoKmP@w+J8}4+(|9z-*4Wyi6asns2VYZ`X=#4Kg#9 zdZaB8WFmz34rkJFk$snjUG0+@xN=*wWkZPGt)+FB3hk8M9sLtD(de(@D3SG;*4T_7O&rbBG7|Gy}QUDsi!)>=!blq#if`{r@s!b%U0=Hna99*p~HeApy1du zu~}@#&q=kqv)gXWO0g8oNeN%mbj96;2}Sih!i!2{9>e=)i1WVcX*T(ET4dVpeCIJA zO2&lU!dvetC@M-4+0NK8k(Tw6Gqhu*b-!MoDmwDKZ%fiXroV=`J@9*znbAy=7k2W; zfgxMnQO}>bm)b(+g{(h+T`z!vLysix=E6UYtc*0a#IC6AX0-e4k=9iIRcy5ibpcIG zOJG_oJb-X%DS61UGj@Bj$k)>>o%67W#)r2L+Y~e1cj~&rBMX58$dX3#mM=M0?T57| zD_w1hF_?2VS$(dAJ7qzo`#B2UEi)<$p_ED35;B*YAr#OHAFVM>&otxVem`zg*qXF?t$iY^JsEF; zSQVvHFdvP=_ZmD|ylU++jiJg$f+q`{=8iKx&&Z;Jia-&Zhq*ebeZr+Vzx>+uHa>M< zET)yI*S*lIjIk~}mm76#B~#jg^+e8YX(?!JaUEB(kZFH#;M=yC9Lk;rawYNxpuP8o ztW@ZjidqVjCPeIh-=pK^sdA>u7grq|PM12b_U+ImIwb(2jB0oWz*@V<*#@sW1mSev z?#!8vSoM;!XW=V@J{j-lls>S8Ep0~jQ%$D-KpWx)jF@aFg@oSJxxg$9*CA^S`iAgA;OxWR2<=q42W1_ zJz(+D7g8U!?nH#MmmZ%%X{d-0;c9}-BAjl-nr6-8%6Yu$ik-@ByUJS0l_n)WS}9{R z!qC9)i`*Ry3znQTc0apl)#Q)^3OjwK=S=O%HWGZ3mB2K!f59kVcl;xA#5R4mT^1)? zoqLmOFx8udy8qC`4L7UWK?0d1ZWF9KnQ-h|{OgM`ABvJwrVpIf2s~j)5}*eEs||L+ zG41H2ijYehG!M6HE1n)Xo>#&72M*aF5e*tv6B7Qm&?7*(sZ35UH#RqKTdf*pVIVrt z;!(gz+Cxb|;An-i_m&cGQonJF4O$9R>8}^twdoWs*O(;0jKTW|Fu61DrhNA@+#<}% z@l%Mm^tjyx?9}FEsiHdTh6W`+DdjATAom+0Lt5(|bD@tjY(>-^>V01O% z!NF~vM9?sktTE-3uEF*!`R^AizG&T>JVjN8-{JcNv^|OzhlvsLsG(cZ$&B#JNvu)& zpQ{!H?!9cBuJPw^6!l25?svD}MjTR*u-=s%P@-fo8awhUhI;5%)*s6+G`^Xjv?6j~->SgGPt zUTyBmQadS$Gc03W1}z4w-}j|cMh9X&Xc+ECfP@mTv!a_#1{FFadYn}IB_UxaD>mQD zMycy)%Na`Enh3Rbx3R|?kbrOqiB*`uiHga>T{-MmXBOE@9{av$`bg)-2~#A531E)I z$3@Hw8*;5J?-KoVN{uyVh2Vy@Li~J(1t<_1-wDss9#22GM7Twm_`FZIcTK%;|MBz9 zOSUJ@EV0 zv6p^A2pX{KDBhHjArA)KghPgcIO_AJwi~N`;r3FQ7i=|=-fm@Z+>udO_=0ZK zvOP=JA3r%f=6maUUId4)x!?!|0Ye8366_!`0jlVO7=iqdG;IB(W3Oj@yE4rv{d@Wj z#jG3lzCFSe0@?f|?ZJ5sJ^~cyg^KjF(2~1un+*${Xt-FoVVSqpwP}*si zQT_;QO>Y2=GgQ*(@RE>qTjHLK-*cSvks1zO1R{r%$W$f{oPTX!{fkE}4`v4HEnC|8 zsCKW~r6CG{Tv<>%#}%fIOv|vvJ|3`aJFG+?plRjDw81lJ?~Z9*T-G1Ub(3o%2$cfH zeGh;ocDMBBm;C!Fhq*6jC;Dy7iMu0&B~scq?lXg?)cBdi^>5T3tKZuR#Nau$Kw<$>#CqiJr7Xe2G zqK(n@MoQ=#g&r1#@M*=Lm8O>d-0bjy|Nb^ge`A6nftX4udi<@+W%{+(oE+;bT%)x% z9GQRN5OvCM1cYf>0}J*;o+bF4*!1ejai-ZqTfeYNHF}R-J@UD7YdP~`?Cjk=5gVXE zKsideX82HThw}7o9?F;8o8LOU>PEag&$=0u5{pwJ?f~*`!uLT^pTyAOm^E_Cm;0M} ze0FTtZ91Us^o5xe(pZVZMHFMb#pk@|b!VpHz!;y8*m;+iS_d%t5)5jikpNoANsH3=T&ISz^N?O2o0V-XfsA?3L3ZeGOc{w{uS0Oe42QUd5xUV0p zD4bTj=t-TW<5`86Exk@BZ>qhd^imv#_tzzh@Bo)WPqTwFxRld=y}QNFy4%jqcGRwU zdoLCf(n4w5OgJ*%n1($KeC=a3^sw(sKC9;pffaY_R9Ux@%W0 z2>_7Z)nf=2w$y|tV^ULJZMC85>Z+KDS&Vj zA#6%gX*cE)cQg5t)ZNjs7n`Ll3ixVbj~i2)0<3)k5Z+^WA|a>&;iTh!UTr=o#4#n(~fCNAfyC}OTOk*@BK<8JSNq!@|>cO`^Y zfBV2RU4(|crQTV*Su*Yl!k{;Rf9XEu*acUwWUNVQj5{Od`R<=UUsN9rN7FD4g{8ZC zpO@GOE#I-WjxDUy%y`Od3gL`f#(<-vdx_U7MF-N(Mp{KqT2>LO)NBxHS6nvf;I`#_ z;#Y33z8dl1G98LnxdOQlU1c~uP=W(7>2Jf?&%Iq7WTuU^re@U1DLOs4NNJkT)g5&_ zC0;lDVdk%5ZQA=FoMx|HJf8n}d+Aqxp-GJY$7>2v#W_fRwq-SY&(zu9f`wc3SHIZ3 zYrV;`&~9b~QCtW4|NI%Aa2ip8W!Jgfw>_hhBN0}0Cw}o|nMMs?H~Jga&K?Riq5=x= z!XwKYmb*b){Ghk*lsVH2IMj9-xmYMpV*M{LGH~Ny*UZ7xy6nU&z9+>-3gc{=tyMWz z{RbFVMG@h?*$VSbnsU|FP799+fAfA({BmtAgE!iwiXEr+1o#xqh~hje2wTZ&-Yzkh{bm^Q+FR ze9zY|8ZhaXLQC=jw$FU&GJl16?t!BUrO9v+zI;WX{wM6p$yZuf>+r7g-!0*Pnago|La1;Q09McTpiN?-><00XvHLGH zhMMeeOR1AB)k@#_H>`&;#$$ig^i}}hto`3jSR8bwmpgW8&j0IhN(QB9#eQWo2(@+* zxfX4d`_)rsPTkhY_J0FIco+0{fWt?EA^!D`1KF(n_EZ74*-xhhEVKvPh3h|;+z9^v z{Wls)uqTda!eG#>7eAstKa+Ua9g{DpmsGLnuN(2V$T`^_UNB z(!9Ed^WjFt3z8iEAFm&&pY}ih6@Hxt@-99rNNHPDlKtXtRc!5Yg%l0!um6C|2Yy(! ziGRlnYo6|J=^?~AKtNqHUJzx==cV&aF)Wqq+n|3lZ$EH1_T@%F;AJVNW~ zkKms?ky;4-7!c?E#cz{gvukb|Kbmz?=9}Dl`D>+0%709PhG|ac=5sJKANl&LqI>r3 z;-|)+7n}SIMC?1k5+5xWT^7ytGDqcXo;AzSotF-%TlW4H2do$58ykDfFoM?hs#@_J5&3V8Hv1I$?6RW^bQ<`^Bf3UR)B;RN9wC;D_3OAekAs_2bZe zSFFnSvc3-G4poypl)I(lzt9YBY$G<6Q;0kM*6ulNuebHN^64dNQd-(S4jH;rFl*+m zYU{U_zI;De_*vu|E^gUMjpg&Qvi^fOI-A5kOa0!nDkLQS*UF?lT*ieZ=ZXszQ~wU8 zP~(N?&I@>ptx;R5y0=2UeBEV;3;i1k!js$>CJC(bNZO*g@4CHc$Eubb;Ip`WD`~d% zU!k~2PJAJ#Vene$!s719ZHwKX@(3RJ*u=|qw)#Ji`0HAuqkNBNi$-0K=nkX4QBCt% z#}{+|4M&D;BMUgn#{uo=d&r{E*_yQe@*N-FAQ$p%QLIhr!P+k!; z{-W5b{`kpvZzq}4*VOgya%6~7`U$-i2RN6JrIKDsmWGLZ%{Iz5?&T8t(f@KslINM+ zhkI{Q^za5AD8!N^Mv2Urdg|hj$D)rf-T`_#;^wTxXCC30cI$ zR)zoD_@RHpDN^8fLnxKK;TvdJrx#K^` zu|y~mp{$@|1o{`9*0uVH*wG%Wp(zh?GvIKt$>zW!Iqj+S_|!XN;pW z@4aX$&2|!O(>vPunWJ<^$;9!_3u_Q3fdM zJ?=EjB;S-fs=`KXFx22&_1w_KpV$^r4<6`igyRNpUxsYGkiJU8n%<@@h!(kVuI{8} zU}o0?E8RowOBiH`cpW#G64B+9o*iOzYSGp8^5WCg7Jd&jH7Tfb)#;>CJ%AAWJ6UEO zKmDYlh(fOk;}g<36qGTVe@FZ)E@8>l(X&~M_lI&SK1-$KqyOtq=m!I`jA;BGtH(-oF zNjqduaio)VXek7$pY2$udOk}-*wAm#D_*pKi45fL!IV&$J!EZ$+(Ihk8+&Dcdb(Fd z`kJpMwhqB#U8^&er&BsEqJ@Cekzn4%TLaPG4*N)KR^)ufam;t$Glz7?*MHC>Y}IfT z$Rb*X8Rp*M^FLnkbGd)7UiD<7X#CaMKOjWqA22+6LI@CCRNORx=~sv&}T;c{RF=-8JqAO+f|_SbA{R1Les!Nc6pZan==^%@hB3orQ!ApWJyP<)5in$ zHHbGKSW>lB!-4Y(-}FyriA>u}*g2V8XDLFGGkIE1Tds;8pMGtL-B_;DUZ#`46r4|m zA`o#ju;oRDh3WzoKJQ;xJ4Tr2s0zM|x*Qt z_VOl;&EgK9>lo{z8&?U<8j9gyEInV(r48}ys6Tows8B9^nFc2ZWx51nV3Z>KMG!;; zY9>5eOq@;@i~n#;;;|S@hJ4BaT|Q0217#0a9b=+~9BHIzM4u}5sN-7(CZ%W=*b!H+ z>^74nhBy2qGsYK!83mT@K7M@`^z=4I(zR!lPXcDhFvT*JZJ=S( z+9iE$yHD2WWy{-NwriI7ke64(pn~F7=+}r*w;b!QDtvnDXNSnEGchmtlImG61uq)^ z6NPegaQ`jg(U>&p<FV7Nd{? z!nW#!9knzbnNqV`GuOB|Z(7e2EK{l}h@8?thtsXtPT0M9XPcf%Ut6s7$@$dCbK~+L zjp|v2Q{{@4>%8CA# z#A)H$P#rg=IfQq^{-j4wu$o!=Q6~oon2)lg4V)A(t-6s{4&7-vSuFI-(Y&b7>|z3% z3A?7+Dv0?zJCeEpK)_ppheks+5m!&Btr;Nc=0zm1Ly*Xn=AR`C--n)~8M4)E#}tQdY2#7c5s7|87R^#ef;V)5sjHQ(3E z;_h-kpsf?P?0m+WwKp!(S3!nMA+I-a!EHP#pkUzp0ex8CzdaKtwFyXoJX>Q=W`VxEN4>g3Y-oYP%*k;@`#F_Q_jP(n(Qs!++0nT{RR z;c^g6(-BB4S2JC^Onyn+5eE0#_^l?mQp0pCqlt4 zNR-2Uvovf~fTP6~?&2uU!>dvk9Nou%YTsS*@=z40e+1 zm(2IgRtnDB{6U325|lddyCG>3!jwI6&+UcKjl0F?jYJ2{$=NtO?vl4vsxXW`-pdok zB@aJKNzfXNG3Sc%jv->hL*TbeXv={06vO^U3rR1!g#Q&A8k4L{2Y3fQK@_AQkS z?pw32Y-saSE^cs~+amlYE%<04Q8Q3VScI1jt?{i!k#MmBCVavBOEULP(v8iahvGxw zDaU07In1ifb|gq3|Bb%LE8pHxtOGN0A+0ljKnE8tG9jyx?=ky>FP%!g4Iv)a(;QiZ zj*L5)<;c?~MwFbw)6S`M9QwsWBK#rWW|ud+9bNSc%DB1ro}Q~W^FEpDhN$6fUqEU{ zop#}{xWiY)tHBg*Roj)()hdv7^+c0Q(ac#Ne=a&sCyAs&!k0)YXOuvNol(u$Vpf$| zUcW$6Y|RnH!=|pHmVbxgra|0$hnehA-l@d@;5p0qxPNjpdmabZBHKTK#GWvf%%EZR z!sm?Q;zVX|8)0{fxIDH(@bn$Me}@r)fMgv9XK+ro+Z#p|y`L+%Es$Mld#VhrUy6-% z%fP;nD|CPyH`qf6yM&|Z21RB_VT`zrAZVa3>R_iLr|baS-*fk@#H;-dEFLPPIc2epp`bBlJQHl21p%l+m5{0D@#QC3h< zkWsS1Cf%L8PA`}x>!xn)KJ_IoZ10o2V=45XLLtN2f;aBLKF*g|c$V+C`o|^R@3%Cw ztPmXTB%_XffT!WMHo8EGI2W{AMnV$`tGTrMjq0F1SKHU0T&)J!+t~1@@2KNU7e-NS z3)n+@sufPlH7k3^4~Moat7z`KBlxklx4G*hIaP0Hu0|SDV4LwG=3tsYZ=xTz!(Xz+ zMD6QvV_60VtL?pM52cDi{|O@tCNn*wnB}P#Z+`7vbNAu{IT10vtjO4se9|H1gXl5n zAP+AkvqL-XUthG|cgkycVEJsEpI#)&f9a$i#fdNqLUOrLy`>(P6&r2^We)Y_wKYAT zHYtwc&NvR0mmotl$Vw(1M->+qhu3l$F8%R*RIvWq>1nemJ_iT~dHS9pZI3v1wvd#o zU@eQq&UTsIo!9YF#(s|A$_<#}W7Fx|7@Go6dS)&CPe?1(iA9z{b_eRDWp?oXDm&#@ zV8Y7PH312AWJr!lPSfCe>eQD?F7pypBjZQRzaJGYDx1ywI}P(kXv=mw zkdic_LqAO@f{Hp)xAj>jC-KKhb0ya8NU-IbH^g>`H2)z8E~Vn3N4S{|DF_fm(z8*0 zd}Nk(p!&(|UX`1V*WL`JST{iMKgT&6l6#192{`Oc%!(96-NpGqF+XIaGn9=o8mfmF z+lFK%Vl~iv)dQL~LLFC#tOoUfMdT!QFwL?4zN`8Dq1}Gc$!54fJR^}RhRsH2f=Z9N-&-E>DruIe z+dp7Plci3>vid7pyJ}?Sv%D+20QI^A-MOf+9mdp%){N*&A%`$Bk$HP)>As%%%tn3TIlDcYN5i4Qh8rbb=T#!~u!Cb!e~VO4y>mNS&A6nb5GaVSsmx z*JF|P5rH5Z27+;#s1J?tg?dj7QPxugo*%S~mu-%*oHzJDXa(<_x75Ewf-&;(5JfPY{ooVf@xExQ?PaZ%F}(}5J9f@t z?Hl-{d*Zdzvaqztebl4pjq-QNS|B*ci8KSl9V2_qDq-tdN|uWMtV>GBv9GV{ADeOF zwIzA+_sT1PEqsq71k$*Hx(>GRRX433UrH`+T4>Fs$8L9shm|FOq=m-P9}aX~QIIBN zym1sf-IUt=e(Lk`bi0#V&Ts{m9wGxx@JJbYcr>H^Yr(o1U5c+0p7qU>G&oW6qVM@p zd2?bf5JDPvIN8vJ62^G~pYR4}w_a0tN4#t-XyM-Gw;KGtYjVSR1 zo=vjYw0v>#Dz;qQ?tB*irPePDjJp}Hd_@5;z3K{B?AyoxLq9C}mh z$gvS?wjrVZz)#<3W0LY4|C|FZUot19Mz3}5O1Qy2qi3peXkd%h$2&4+V}F3qXGaz8 zzzqRpF?aUD@4D4|DWi_r8fTPC4&;7Xv*8Z}o~&Zy>4!;prsiA@+#|KFv}5~B(G5zi zm-{*Y7>hrIkk|qb0MNk_d5>b3d?tSpUBAuCGO{{-ijXk*D6;~jT%!0PRGnTs-Iq&tO9 z=pOJu^c7Zl!}*dBSWY`f8xNj-lMq|$}qtHDDBfu+)Nt@E}GhdTn*PlD`YsHF4&K2(^4^_{J?9z{T**^h*SL>l7>_~A>Px5rib(_+%E!)(u zdBiSE=;$P6Fscv@U5fy%e-AnV*tT#3iBnMl=iW(=KMIdBjT(Q;wws~@MF1eY7e!ve zhxCM3c|d<}gqpir-^`=8l}?@EQ#;b!LmE-=Ch>ILO+gNOdqsWLxvtT}a$l5+$Jowj z_aE~otyK6>l=?)uPO!^Czsx3;EqJbdtbXbqe_i%>%M}h0bMPY`Q71AhiR!Y0OIctJ zy71cS#8O4~UtNkX<}D1W6u-61jWkyvAYyG~1R{i}f~N)hvC1f}@zmJ*l`XTHX6J34 zBdEnqS`A>lBZ}$+UPM~|$hTLqsKcSA@m~I3m)Y~yYUb28zHwPdpBs@YMf^EFCum$Y zU!hW8=I*Aj)XvsJCj$0KR9Dl;JpvkNhbYqv0g%Ovdd*pSO9u)=R<)aRHs0Y2C>|W7 zQ(zeL=w-jLY3f(lzC_7@l)8*x5n;JtUx#A|3=j6Ba!hwkdLGL3rKIrI}lP-`e4xtZM1Bj(lBF*J`pi zwl#`d0-Fkzrg%0a?w3#TnW>Fz;wMV%w&Vs}F?dN50T7iu4pIXuYiGyKZ6Ui$SAFZ* zl_$QP^?AGe@t!w~!8qS=gK+&^?=suy#6cUABs~GkPN^romWl@$!(b;-5m3n5gHpG+ zV2d>B`omMFK2JL{sBlfBtK#9@)VPZSq-_LE{vRC^-y{p#AAY>|b%oT>vT&ybbqBw% zsbr9#hLd^Cgs((nQ_)(>FBt}>ow!@x6fV%nbD9612?9k-A-EB2Bv97E1C_(Y%W^K* ztJWX8=b)UN5og?N25PB^-@;cy5 zPXTMKiS=767yYF-XXBz(&AS`a1|A2{F_7Yby2GIJgeM~4@)vZ_z{=g^I1ZJZeY&b~ z{a4;i&QeX<9K(O09PNo#lXQ(p&QA&3y;-@m;2S1b;O2Od`CenaU7fcZV#x;qfk7rff;=2YVi&2{a_oV? zjNL4sviY9tRqo2nAMFY#VPT=ql?g_lsDct!Jab6Q^}+Hk-8P3aKW7}jm??Ifh1{EM6uSYTH18IB>$TD8?-QdiPA5PM&vVYiRBC`ZWcl7C}dnjF^6zC0%V~ zY%${_SFMF>LuCZw)npo~ZZFswmb92YO@br|q$0Qp=Ai&F(lj>C-&Kz;z5I!7^!^>` zx-^^zYbCL$5FfIKK)F#onU-i%lx4m2S;K=*Yd?N5G`>|mNppX$=kc8b z5eK?&?u%j`PS(dIPcmUl#{Bh6szuJYoj-Q#wA%hLevd^{PH8ZaKo^)W)?sEm_Yb^y U*DJKmaDk5a)4+`Fl1~c%AHX)j-~a#s literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/c211d4eb07730865bffd69a35a85a0642acc333d b/research/owned-relation-independent-validation/git-evidence/tree/c211d4eb07730865bffd69a35a85a0642acc333d new file mode 100644 index 0000000000000000000000000000000000000000..f799f732a4dccf01bd588bcf5b26a17e3d472531 GIT binary patch literal 219618 zcma%kc_5Ts`~O{vBBg|o5?aWVb&Mp^hLj>p*&4Gjj2X?0tyJ15X;BnfP*U1ZDT+#> zB+8O3?UokHLmP_vopUcUL-l@t?;p?GANOajvs~v|KG$^)eLX$0k&*fwAC`bB5b#*u zK>`LJ$%$Ya$1rF8F7fv3c=t=&*zj8$$4C$SPo1hyF{Y6CK{OhJ&*$<;Odd6WL87r) z0p5J%%IFmpkAJV-y+u9Z$p;Ch+qN+6$2iP@#2}M6EDnRj;qn5gY!Z{r=*9ec0sROx%i~xy> zUgzZq$;XVd?JBc8@vn_YG;TmZ5LhEPXKoOW#N)CVBtC;dC(&u%Ol0!4#^=!!=2mo^ z3RT&*PRaa%)h?b8OK0%}VWbc)&z~Pir7=hWEDkFmC;)L@`rp;iQ@3yAz3D{CYn!&; znfFBm;xmF791@MnW|MeSIt%;*{6EJZF=J=lJ?bv8bjygBZ^-qEHhpGN#NHT_s7xkY zV=A4_1N$Qs-O_t|bB4@aldmf#5Wc1T}VjSr&Kq@DU#AEod_yPu4^=-*Nn^r8FSgQ4I?2Ioj zd^Wdbblnny7%U%O0m+*s08``fSPULwQ<|jRJ;s+atkWX*lR0To&+N7={Bsi$Re#7P zO-(;UHjke0*0nA(AXWdllHsjcOT@qCa5-$S1XLcFS6~>fW?OCqZ)=)+-OQ!d?rcBR zrg^L6LlbdOU=W8U2;wnF+&}@kGmf2G5Ah?1-|Z!-dxZOaEIntnBozlxNL;YOfm9Zu z{Fo-^9xm(h_Ppu&>)DyQfzfLy4P#pDg@{0XeFNb<_%t4a!9g~huC$+IHB7)*z3f<0 z9qHTGd2bsA1DI3}7e8Q_jK-wo9k-Y-%9ILwWoO66G`I|08YYDBSpk7;MyOB>2ATh% z$aU}8;oQ=PS;NkMG3X{w+A|%8cr(~6D%7wrHY1D_zyPP8M&g52V<0y3!u+Ox7;ZId z?5?_!ai65yYRB%vQDB{bCVF$}U~S6=_IwJaNo;IZgna()aN7%&T1 z2yB!E&kVobRC#HBKlX=BLui;>Ylq(4AxM7)kHcVttq$PARY97|w_fzKY?nN-fEwbq za%JtIO(s)^Km=44n*=ujoC?I`;JUeJlehWO+Xz(x0k#rda9})u1_7M~7KH;Q1x#fymCd4~TYymJ z*p`)PXe6$Pe|ElTI!6%qJ*4&j{sm;#!{~TBa>XR_J#~qU2~jghZ6DNxFx1Eah2^1k z8JOrmE*}gAtjME?Bl|8CnLk_q?d#6nlQQ)#eq}!=U;!*XALSi#sR zuNzsrHe@`PsTsVr7>y{4AXxS74@6QzUdchm$ce@e*GNTGgry8G&B0c>Or3awH2_yIr&r4 z!pO0wZV$|kx%l?B-@>A&8{e15C=Y@LutI@TLVc8g%JX3e_^6vQCL2kDC437 zJRP{hiZ?!Y@0%`HfP;O2Zjkg$NML3xCWGUHf+!SZ-!A$Q)!k;?iqo&#kY|1gKA9{Q z0r3GgANq|z;BUYwAql8~Ab5x#e)&p7ypiIlPnt{tX?xhPWpxj51n^}{7K076o({x8 zmFLrZgLuf>MQyJ$TcZ=4kkaKDSN30>QPlZ)D1>iF;`?%WAUqL}cq|_l(7G^0=H0ET z#+zPSx~=<|oa)?ci|l2t1Q7Tl4%k#U6<_EN7@;&@D#wR`xCjauYx=I8p4_lN?RMo0{97;q8Y>WLUKk1U@ZMY= zj~fE*h5F|?2V;M~R=!o&le?#U#k|u~)EoZ-V>37~S^-X%$_WZYXy#3yZA&j1-D~aC zi_Du_r1!{vg9wGX1AdS<7DHgRf-QJ>T;L%yr?WVhk+-0Dl*XIP>LCaL3#dZ?3#vO` z0NfCaSqu!Q41K1lF+%PLeLL;4{nS$x>NOiaG22eprS^#Mfm}MU_545 zAFO)OcwU72bjRN>e!KDN8V;_`$5Da4RB$lBxn$9UfDINqk@AxJPDa)qO!_Eyv_^kQ z&8`Nyu@yLo2f_g!6)a;QE0`<5bV3-r^pEd9JlXQ;(TNo2S4-YF6qSD8!zFOQI17NG zfu0-2mPqJhPDhmW+pnLFYnUp;H{_Z*O&%}yE$|8krY5Ffcr*qpP=NR@-TTqs>!Qz8 za%TJhPg_N+|H*$tKd0yc3`Jjv8Dn*H%1HOSYrL&<6=gP4-8MwVYU3C_m;@<^4gc#4 z)*5P_ft~?bUr*l<$taz?h{qazra-#;2+Osr;b8IY$pkDc0C&E=VZfBpg1i}o6Gy)L z=fo`fwXNH$SF@`!S1U))_2y3@j6*~10|(VWFefgD#sV%KwSQx0*SbxP11l zk_V3Ne?BP+2MX9!J_swgK!1VmQ3C^k)kZ;lMB{Y&vJCsy1Q+!Y?j5xGn+mN$=MX4v z05I+#Mi4Xa$c6el^-RhddXMTAbE!z5Zs&VD2s;KHJP8D^G%h&qOe#3EFdjqdC{K@a z-X6_6a)2^(4Jo49miur&E&)Xl@s`^_YH@ zWd^AmC)J2!eHm=9ej*r)1HxutkR&9ZFAbme^W5GYd%o}eV4rR1s=G!U=MUC^ibaa3 zD6$D+d2M@g`@9D@7O)-9ALgnq6Ni9|1e^>I{E%?N?h{1i(UC2NvVJtS^|xsn zcB+@}$GNn#rVkLXP`Ech$HDRCkoc@n5)8J%lEP>exs+0O!A7xSZp`HH+i#a&`DJ}Q z?&Cj!Og7aAxwEikg#Xk6>bfw?_a+YhTO;f3rr`)+!l^#s&_e-S0lII#SlBJ*j@8Py zP?-Z9m8So?g4cPT;ppcscmBWdi0g92*^%8DW_Mf5e2?*L-r1Z}AV47SArWCT9b`w~ z9K%!$55TJ*S{HvdsLY!DvE^Wv^U6lvFXwrfG;ae^0MJJU-3NRN!aQ^b49R+?21cfI zkpY0v1Yc+mqHv+#y~0$xDf^hr-9fI7=1=46-L5{!BXw0u^)NI z?vCo2er(qPf&5}82OLXf!{88GA#@9v0z~Pg>5&OfwdNfTGcn&fF~!_2k9~j0=X3^$ z-GSi%)({->U{Bzs)O>n)fwtkCDlEW(Jhqa-& zW(fsxg4k^6QoTWz$S3KO4Uv=48VMm|I6luiOs;=bQC2Uj?8Og^H^MC6MT1~c2#YT8g;o$QGLkU=Ks24D|WXI(R*PRqXW&0y%o;|!c_3%xf%sEk-MgQ@<=(PcO zHjIBy2T>xlLc$r*_%C-aG`Ub|TNC?zjlD%OKi}AD(9jql=mS~{7X$bm;ES<I zr^GyF;o<62>tLaNE=yTl4#l@U*y^JtW(bS=SK6m zC){@1B*&&LgMooyfWqX8%|K&|uFx6@9oKiy4vb&quT>wpX3^?PgU1MTl|c;vUY{lK zWd^a)iCw;0V61(2&iv&!WPCs0_qmPOz4$&zl+aRu6akzy5V8Zs;3K-WGUuyP%kMl_ zJ3^k_bkzPt^IAN$^%h!xj3%H_0l5Z~0?Yde=Vw3EzSz?nP-tDAE^~XdJsvbc+KJ%C z1R)?*2P%lMR=A%Uaq(q^V$sBW-4pAFXN6L3-h^=GcBQAa+tfj)kYHaKoXE>tuAYx5|vq%yQhNbamv80u!0ocYnaJ zj1EiYU<3x78)^h7`V=~#9+MAvywi88Y1-Z+(9v5U%erhcT}$*EC}D!e)?hUWa^lVH z-8R7niI#g+DVwgepJ#l~$q`yTaAJ%w!wL;CDu_lkB74)2B`!-0;%^vOC|#d%a#Z2W zRBK)bVZq@!!{|H`Hv~))tTLWuBRkv|-nG}e>gh5}Y5C)Q>a~aE&bEt&ho(Lx;Eh>; zsuAu6A1PnFE`=)B{(5)8s%G2y?^6w)4tq2d#R!F=HnD@qr;?dx7F9i+=bD;WZc!f} zdL^p{&t*`y5$0H894t&tAbkL{_qOnRW~U!%_-aNkC|8`gp!a^L7oK+skwJkt6DMYg zk*n`DZ&#}3+g$b<5xeZ1PW-wQrR!pY1QLLq6D|y3Qh*DB_66BcRqEt8-fT^MTYu}X zR8QBZS@(|r2?X|m4sAXpvp}>C7-u%nH07Y2$5M~4y<{J6a5y+S=|7)<13`na;Ftmj z>`kTlg9sV~_$(yy+d-tfqv_qn4PHr+&nC1v&5FR&QFMZ$r2v!$7tqcyIzq^yIY+e) zrX@Un(yS)cWClX07YuPhfL&#yUQs~x2C?l%Ft&ntrXMLepSGXpk;K2ZcD*f~Ejt7P z5@uh7Id1=ax!qr?<<7rsujEIymvC}o4e7))Ag}lXA(~Q54 z`ZVv6oEQL$q)|`ljkC(!lMAJpo73*a-*0`^E%iy=VWsv95rVEy#v*rMNKq;mrWpE6 ziZ@dBc){JO{o|j%Gbng}k}-J=Q}dJ1r9-BOO$~#ABd+XXd-{8S{Fz&ISIST1?6&&g zd7e^ZJ)HbK<@qWhbD_*P4jBGq1(~l?aa7XB12YJwq0Q*h@ zJ4qLs!+XP%u2Mb~PD~C|rcJu=NLQ=hQ|O8Sj)f-`bQaYIjdb9=$Od{eDq@?Ey?vz# z?V56G(5-7PHjON>dLSvbAS@8H@zBtSsB<8OZM*9ZsXnb*&R{RiemQ;5bNX*ZaRe-C zP=koPhB$|Oq{4Guo~Hfon3t!Yy#6d>YV;|4teAGw!(cUo1SW_E5g_%XvcvcSL~ah< zjntuEczDc|^i%uhtMC>aG!aPy1P&+#iIyAYUdSlj+QmPkoM((*@P3nEL~Y-hXm2q? z59sXxlD?4<68PlIxj?FuI zT`~D-|B*Gjzg@lb7YG~FXm}*=AdtKW_{fg>-3ii?%fPyBkJ;It9}+aJutN+K3W#Bp zcZ4wl4=56Jrl@_@H$jYecdHuZCvt{;SKII3R33AkoLDNt5}p*eMh;AOa36+j9j{n2 zrnc_Jp}n2!Z`sOs_IX6siKEc^nJCPlvV9odz+|Gzu7_|Ec3*b*REmtBUYk>Fd{Ux| zEUh7i2G-vfH+qCVLb6oc0D79u%9CmOM3J5_Z`76C@jE>)O(c>Apv6q|7XUYl1>M;C zqM0u&YQaJ1(M>573YCnkBtP2`wU0g_a%^vQh;+2?j&r#rX=S-OO^;z=a0PWXEITI3cz&2qL~p?H*lV)Y(BDao$LE;>nl$=ZyFJ& zeK=<2`sPhMaR_8jMdlW46toX~8k-n0^bHuuRJDF> z(|2R%8?c)5&+Zs$|H^o0v)BNHHAz7T7nn2wJYRg|>zHRvvtJk~+4XpwY^b%C0Yv~wjqdh z;XV=sIN(`*1it!uNZa==-nExqY8^`w)~ub8oa?>Fj^H7n&_96aNueOuLM*L|BmByJ zAO5m>n7^s9lTkZKB+r)uv;;7U&=vqXh!1Mjo<~;byi%!*UwQqc$CxU1(VN${PYL@4v9?ew~sjCJtmkU@<^C1i5p_#i34E@r|70zR#=soyKXf z=jLz!Y`kxzm_xuAddPCYz?>mmN|fnFG%EGi&+#ypi2u5KYedQf0p+vdNRdDm2OXif zxkeXKABjz+-CQ+#(uU#sr8O6u7^O$w*!hZZeukow3N|%;#Bxj4#*^<;vlTQJCsH1V zOo%a86FWqHC_jj?@9>-=(hn|~L|!}GS-!vhWv0_|rF5OgsUiV*-3)|az$$?93ckG! z8`=||RhBOFYPBWNWT$T0(7r&-`miB4MHG9XHNgrhOoq1s@_f;EWR7NCUA64IA3qi~ zZ@FOm!$u?y4Uf<=w6I2nrj;P|05LMMslk_f^|M@#od?Y#qq0WdrAAFGL}7!ChG7PX zvbZ6jC2>4R^VD|)@jvqC#j@nu8$KXXqsMK6YHVByjye2Lia3sZV1x;;NYv^!|?t>!) zJM5;5CI}&b_W^_^I5r?_7S2&*E%nJXQzJ6cG5l<3--Ns~Q(vhbk$+-ptyJ%g_kEzE z#r^N#)&mbY%VMPzI$__cICS`r?ch)G0n{xe~=Z+;Si46~& zGyuW*b{xq9VN>6o;o3hJ-Sx=kTS@-z*u~Z@ke)9NLoIj^hlLWoxN$}vksI9I%$ZKM zWz(jFKDJ&|ZM}HRAdr9stPrYRCc+XF`)g9#@-d6Pw@mPv^K`NLDBYL|r^G;L9Vw6t z_;sQMB!8hvTBAmvNu`29bXhoa-uYHi&JX~Y5)(uwFmXcSxzd-bq8bR#@4t$-PB+cxXFHE9YQe* zjasxq%xZ6-;O1I*Hefh_HW6XA&Xh_wF+vJ=zAqb?W3ODTpz5a^g;;8Kv=hWIP@xT= zmI1UM15*D;Fsa7e*Sj);YhjZd z)s;LxrM_#HXm04|&<+D@1M)l`1J=wCD=&+{i&958zv2$PAK4U>S{|cOB!(ekNoa=A z@(XS_?v8tQ=EXO^-ksU4HVxec9>Y6`1(@ud3$JFh+jmGF3hxas`=R_n(8?+l7ZwDV zX?-ITWRF&X?E~irO0*MGwBP@JuB&soG+g|PSQG}#-qd&UkEM})vS95)0_ z>Yw+9Y>i((@uPo9{O~c1Sz050UB?^lpz#3JYoKdbF+b2Zj1QY&5YrcXcB>Q@llLuY zJ6cbM2SYv`(C~X0Sft0DRDjv z3z*Q;U`RIB(?@iSV-|m3({@(V_DsOhD^>eWcP2Hp05H%8bRC>1JPZ^j#S}?iv;4dE!-CjyZqrM@ z|K1OC9p5SzIYF8Z$Py}bKp+V3FnM2#{InhEwyG9A_a<8!E*QV;(Q;$4IpRA+)PYf> zD&h6kVCu0YD`QVk?%$QMv$`^Diukf%CkHDJ!raIJ*(QC=YEILDmgey4c#ZGB-7a6B zb5l$P4gehipavEs$|m&@yDga;Ba#!mCXtVphRof;G*8%BAO-{#NF%Y#9V;!sjO9hj zoA;9kz85~LUo_^Ei_h4@ALj>(;RK+phlw3ij0tx) ztvM+UCVR{`?|$tlcbgAM_3{1My#LMo1BeD1sc;l(t2=C$+l z4ce$faYDn1MqRjVcceV;-aB=(8)wna%Vx`TDb5w{6=FchBm*^Jf?b2o15F=6?Bn{)C?=elL-WPzb+r#XWE>NzCSkfTACCT!4fG#|>x> zRFnr6b0rkBlODZ%6%_K>Y8t1=P>C)Y5vEjF-zyQ0AlVaxw@5BFlltcUZEk)JJAY4Z zZl4GONJn9dB(eI2p+?BT#O2Zfi!OQA9&s!zr0h(gdR2`6-zX!1iU?fpk~BhQ32*pb zog#&kA0OM!u=?L90ha`mKce&X9WvqJ6t8M-+9ZbHi(%ZQpXpDQiZGmf9uzbZuN;T9e(k8P1(HucT8pQoiyZeFib{zg|?B6o-IO9KN#Be3zH zDU&aNrwxl0l*6_Ubl1;q(_LnA;6RD;g3+>w+h7Qc3_x-RyNU=Kf{a`h{=vVjMn5uP zU(vkTcR2@0%d7{ZFd4#v4YHy=L0++=KGpqQ%gtqXl3q{eS#=8$#uQVbN&?~v@6P0r zjZIN2tY?h)&T8^0jc|^rj~cTj#>c1GFnz2jt$}b*PzGuQY<^%MiRcG0H9#KpEoHA7 zC9yb6-K5RgZA{umj_>C|Vworj0DF32w;zuS+8JRag}GXNGLo*nM~~BAtGVU_>#L!1 zqJl>951+w5fD$A`Q?PbQgX{PkN3INP3}I(CB?tX9ye~S0aGX9HS%E+sKy(;}n4fe! zdGmMwXAMrfQ-EULq=~9sq6iv(EXQdoGkPwvMiNP?GXkTXxWB zfC*&<5*-!cBgZb;^VM*c{GA)LI|nQDqwFFEj~(}2gmQ`(j=-9){g@`G)J?qmK4DH} z*XRsog}q002MGffjm7b1@O(f_jIoq@WMr?A%-(9FQ`_C*4OZ0)3_Jm%*w#V&X1Q5UF;C~2DlD`UCHf75u+zB?ej17cvm`V+vB!K2aL-=77wMVe5iU?+u>5CO;25&+;07fST`um2v~27+yr416W$O2 z!4V6zRX0^B?Rs~ibgpIg7aLqYWHp1|W!iHr8H-mOtLbCw* z93Ta70w6#^$eN$p$7xcQu6VKQZe!WK%`@{eei0I2e9&vWiz3FrlSgs+>0&_&TSKwNFx=N6ncEeQFTf9x_ndu=R##)Kgf#J)E~-YA{D=yuI7W8mXNYS5?TGYVvV zf?I;W57xj3cAtaD9pwms0>ZYQtVhRF_CN1(xKVlIZU2|?qqfD+iM$X;p$s=5b79j4 z4RE?hO7M=;iFu|;ZCA`Jr@e{mIDWs8;OB4%h?&vuV6lZWHbi`07;c%mW6k^7SsyAl zkFnqKFs9Q;Y(j98AOYsf1ucBYna(>&mjev7@7PV&D_ir+vMaH<4gZ)2`3_v4u}Pds zef9HX7wMQ%C@pfaWv)N{(sm;F1ycqQtT$>BAP0d=FxWdeo8%uGaeUbh^=q-y?&sy+ zCVm+G7KHynG%#1#pu)6JRu*X16nuNKdf`0T{U%3mSe+$4=7Jg>*82)C9RM!{Q#v3D zt^u;xks4>bBcb2t+qD_@Ptcj|``U;MDg+iH*(}h(AnZ>DT7q4SA+txVl>VjZC3_)u zb2opX=XTF5GfW;0-1OlK+eXn27mQTjK6-phUUrH=D|5+em8~v)RBCGf-ylTHhwdRC z*?ou1Q`*s*7JbKN*{-TX{!X)8LWHnE7b#FNd?d!a=dHP%H1esNzOPwwlm$iy)Vx7ROBw!P zcjwo#o#o`Tw@1b*va~1c!+9kzv7sRG+S#@zoKCmKccItIuG*g|w@y&&Vd4xR1cJZ= zwNhY%fF>b3vj(huPFNPVhI@O;vzEOwFX^KQhX##4I4^j84TQlYx~ZWF!`R3ep-Rqm zH+<4~XX&~8;3sS0r@i6TJnV~Mm0F}xjcVEiXWrDQnt%Kb<~6z4@Sh@sCM%RjPP-9?V6!%pf=bt_}J{ypf32HoS7j zutt|_FV5Fje~Kh0-I(4gCJNu35VUs{%nDnIsZL&TwYR2po=IQ+?a86`5%E_dgqj3c zQ|REmVS@~o9SidaM)+*oO->t{UX?!0HET0>m5utShRXtXR6tb}W^lreW6*#J421yv z1|M10Fn1EGGU>?a_4EmcC6m@`eDlW3x2(SH=>O0PTS;0%Vs!f=D!o8yF%p*pK6moe!OoyCbXn)W;D0iEkx62vlGo+}RHI3iY-OvwndduLimM( z+Vf);(gKRePPlUf?Nd+;X2dXI$jkgQax+_M(pG3~S!5wUZTd%*r-b^THi`~9@pwdM z3|iU%9maelq$@oADC<_FbNQ5sr825zzbbqaiJ|d;?qKa`LT5-6&9d2@cMR4fcdcpI zK5@sPbCy?D9~y_lu){_I+l1zm&>COlyR6a=Q%Q4fa6Be8FQu?=j7RL?uR$Rem=;(E zMBB&_d969|@BQ3qCMk{yefbnW|&+sV68_0?!*BetL(;;Aj=yj5ALr^ zcPG)zcBOcD<6J8N07nSu3F;(Zl7UElzTsd!8!_j&k&D8nt9;=$Mw5v_!NMSj`oV1~ zLOH>WJwQ_+!(Lr(5%?|>dvXh$0m**eLNzLTWqF!Xydw&%bU+Iu{s(LEMLQ33fvI%Lxvl3y@sNO!fd>VsmBY-Gz5Z+g1= zrB0{bj(dxFw z_iz2~ubkYI-(Fi^{%+=goI}zSc|2+#1i?BBfX<Mt{c4N zh3Jk{>%ViiB|AaM=5(CqJ+0wOJ(CB2&*H&*z(Q+?iJ3LEsXEome)dmKLEK5V_PnoU zF?dLcPYdn$=QDW0=&g%~H@kw;B|?uD)_yOQQrjixeem#}!BV*Fpa2dyJXj|TqPk-F z>~Yyu=hT-xk2$mDL#yJ-G&~{{{yy9nw4DIo9LY`o%gK%AArZT2!Ra&4QH)-n7`&nI zh6Z$xXooFy*L1B(Idi4X&wSSPL9Kqed*2DSM7*a77Xo|y!6E@W4R{f3;TFPT8SmfOC{M z2oHy`b`5x&6LQj~WCKG${HE`1PE>r$w{j|co_2|Iw;@MOQ) zerF0W%J9ZNA6cWjHs#pd*R%GNlXdk|UUF;OhTRwhzXcvPri@PDfV{j4jJ9e#^hwq zkLl+I$pb~tFjyi7=bc6c#2M((3}AtlnWtvuoz?f`njTH6zhqWrF-`kJJYLzxHyL!p z0%u92w_=ehs+a~8JwtC3M0)zhpgD)=5)yYFZM;Qy_LN8nT`@>J#@=G1hZ+ua0A%yP zl0d`b#yZdBlw9$8b2#@vpzNrd-LkiE8XX^lI9kju;)~WPQER8)1 z@224S7Xio0HU5}}quB!}-hg98);BiNH%4Za)LmPzxiP9B_IM~+Q|I^dt>5t^dhic` z=nNDLNZ6gO`zhO^b#F=ub{1QxT#Jhz!8V?lKX}SO5Dew8{s|ba!`^kok0tpcSMi72 z)rOU4+8nksG7(EW=@SzMaRh=W=Pl>BIFrtPV(y!F{?^fH&zhwiKOY(*kU?dF$i^F_ z-%nrX)UzMRr(WyHCJU<0CqJ&)RW|5jp~B(;@rEF9WgKqC{b#>A?Z&qo-RT(hIyBX$ zv1NoLNgSyMU3vf@PKB*$fU$)A$RtL9Hv_E^BKD~{TrLG&>2G-OBI0kxAh>VE= zE@pvv81M|lT_!+Z!l{NKrKPXVMz)^lS7Zg+=;*CDE;ro^r*vqHP<>O72!peQnr&#Y zOO8pY)J3?+yyZ{d5PFP}^u1zg2{BIiH5e7qt^#x(cMJhLhSfZ1*&E~PJ!17(p7F#m z`6Ob~&{#@zl?2Te_!z~Ey#4w;j_vG1qQp3#n8@Q~zwU^_`%kbC4BcmZS-^81;2{G4 z&VuS!{n9zU2Sy%ztku<^I#5N#(^$}k5qVorgfh?4BQ*?b4%APT8`apgxPu7sfc6-W z{9ym+ljDV%NdZ#ntCXu3`!_Yo+e9C7z-NknBqH3ie#KC(&XCyT<;rgQ6?Sv@$J*IA zpNJ*D7{f)PqpdO^qeea*UN(G>-p%%@-f^d9ceQxuPy2C^_-O{XwGESDDjo7#CL0Fj z3wszVVii8eEx41P_HoCvZ_Ehy;O_*G1wwzU_Z7Xt3<516DbP*v`Tlsp-CyZaqe{tj zQa4y7&&2`Q{cnr}tMF3D9@S>y+i9?BUgt04Rp)z)2xsgIe;f-BfgXawA>J;Fd1TWR zKS@cy$!FG1jY;a^(XAgJyo9r7;6^Y2Vksx21Q~%yl=siMd%mCXub;79C#^e2;eI)t zh{@59`M_L&>*0X1LAj>nd}i9k-c!`M0{X8_m>#Y=`96;FKs$6FE@orhH2LdHbaxygIXtLC3_TiUutHgCb-FfevC z0L_e4KQ5285i2~)Ie7QHFbt~tN-I;h->?|3js^aPJI`G6x_0HPUCa^I z7p<(9^HsD*{Tt&0m^aX*AJ>wQ;$~Q|W$j)$!#C^+Y~6uJ1PH{3L2%8mM2^a%At68S z>fGw4D<+h#w#r(%YDPyg^8zk`_!u3K0SSIRvdMKpUtM*lGLJeuwqWDRP2?PN{A*CV z0{j_HA%Vykwk$#u4pQW^W9INjTaMLnJ#}VOi`{wMdjrYyg{Z$E3=oRq3fhwlWQ)PT6AnDby_(+&DH~HaE$aTu0!5?J8)eBo|1LRiElv%w= znOBW&rE@dO+|}gNn}`(7pA=+70;wy!DFSb^5S?j;NJw&E*JsJORUeF$mhZgOt@bO0 zC}z^YopWGhMHUGJCjlTZ_u(MsJ+n+QTWqS_1{_b)tM^i$el*s{2M9qZy&^CKMu5X) zfu|hM$8*q8g0^UVBsKR?(g=@3IW4Oe_KuDS>?>RFfZ#~c`UqM&#M1vfLxYf$Uuw2y zx6R+5bhAowjKXeK7$~z&5A)nE7&l327O*UB&F!ymPo_6 z-%;^?bqPHmz8u&`aTf!DTS$1A1}BGnO8Pkbni~?7I5qqjZ+FbZibuq~B|s@Nff@kj zgBrwU!TVL<=?vs<+0_q03u2D1TeEGE>91FB&!$Ka0Tl5)T4Us)x7)Eh!eW6SVy3cD zA@gbJmFX8!&CKo|4OH0W)If|5mnSsTVmLm+3bR_;bGhAj!f4g;w9!^;zfFjZ8Ulo+ zvp~$$W7k}v?L(?;oxL77-7Ik!T`eX5Janw9;OF+CKyW`1G#ZFqu%3K(mWi**DCfMw z?dkQ&GU>JB3QYbA;xRz07E)3lpC92)>e|^!?r1G~9Nz3!dtCTA40T9G6lB`ijiX#j zZ!X-iT9wy(^>Kd7o6m$FWCOYY5Mgk&h2<11bku*E=+@=w)o9c3#W85@J5O$1ArJp$ zE|m=uO&I>c+B-;VF~^p#Z!@v@cvwqOUvBbzB=J>*tinP90gE;uFoNW(FiUb!@GF@n zQT^TC*ku-l6=K?5xE(Lpz^q94J$6A7GYI_0je3Ti=lqu>Ww!2+^Tb&UXLFgjz z>DV=f{o4IBBASdHCn95-^%kCwu1GwAlu2k7cV1W5IlK9`xSUd23e)L$Z+U5lM!)CQDS^L+XcQ?HEH;AyDf^rRzomA+_nGwI164g2T^@LNy zx;D5(j0zATVPiPRk8uVFPjin^-&rO+VNsJ zwvoSUw#qu!DSefml*Mq@dTe1k+Iu*G@CDBxfX}g#0Bq<3Y6I!Qw#)YxxE1X)DG$3j zRZ$T8=z9I@nL{vW2_LWoXww7-a_^wr2dd$8Bwb2jgT@jgi!~}PGtJ+8ty;S14&kx5 zzMQ{gj>!164y(S%KZ-H%<;u^by;RkPv#)``UQRVIc~pWmG^0 zf~q48KCMCo@6cZvQH>3d9?1*t>CfaQdhieb4x5r5^ixBb;L@<94xTDd!wE($5bW#Y zBb_%NuPmQAW4(WW_Y5*++v)#0_7d4KfdT#sB=vxchJs8Djg9q~rc8t~Q%dRS?$3L5 z60f$rpO+KZwN}Y~&`@FChw{DHrEXZ1KrD?Wohi!gh{Oo~E zht0N~6GHxqF*O7cG%DthI&1Qx7mW}8>s+*L_n8p}c17E({thuFAf>*gW`*k?1_rS8 zm2?cUq$jQF?EgCi+&93aC~cHRmMq=6uIKs2#Z#J3tXMIFNo2%e;jjgu!3ZC4Ol0s( z5{9z+_1kA;=YpdllU{qO|2W>1?^)h5R1nm8vOckBQ4eOnre!b8(Ol5<)3)WY>x`Po zMA1wrM`#B1^@!nxpZnUHUy3X*eJ#=8KB{@GS#ICyp@PI=1n!%)qWLp}ZOr*A=H+xv zxpiXqqy(ZA^cQg=c}v~xT%;9_OtshHziVysa8fkmX#HEBfpDB1=}{@eWMU)^ej292 z=uZs08M=aqy#6B3P>8z~CA~|p{#ZR#b>`yaa6P-)wT?tp@Gm$p5_|&!+%z9mpWNFM zYFyoU+gQu#=vz60eEJK{ScnU~ntt<6=j5p2$JBm$PCI8FdUm&%)xow~w4P)kt|zR1 z#DR(Cohx!bR`2I-RlVGS5Y)wAQ z*XfN>IM074aq^+ls>N})hZj5l8)quS`7c~Zp-0<{@-1oBqxD~!W#paw?|m0--;THE zFE1ip*jg{Su1K1%D|4u8-I{-j12AG69#vfa{#(_&w_EkpjjIRy?AP!X6I{Zd%VHo> zGb9x;&5%E6TUN+&t%@_zX;}B4Fsvg^op2irMB{WHw&UFE7)zN0XWLg-B&V*jys$?Y zaQ=xCsacdW^K59%mTsrunSzl|?ky`ikb%Dk0m-f*+ioCIv%<|$)8@3QS!^_ui8w2_ z=HV`;M&-ZPMWkkJvn*vU9=bfUI9juEp2VZ4nPYzwtl3}WiPY@%>jhQ8AzC%J_q4nv z750ZO`SnrvpYlZ0`|s#;i!!wb_c`q~KdQ5|u5_5Jq5Tsknw{G3umik@J^L(MWxAgX zj7$?;A9>)PFwx|uZT@bj%GfP6LT0*+7u2Fd$!rw&=9vp?w^8prp{So zZ>N$~U7+)Y)7BeSKU5Tsp-^y)%jSU<6XUY%&rXq8H>dBYt*z97KMnv|HU)Qzu_yKj z9~ZJDiEm_|u`n}{BR9KzFLd_y z1tpJIy5*lJVT@oNbL_g-{`u2&%C>f&T-dDsY(3ip547;e7KY6ClY z_XEWMQkN^y_afRcd_7Es%Q3%CC70^T(DtaVc+zU8Ynqd*FnOpftjdS-Gw6#wn7nZF zca#G!Tj$lMZ4bZI7kzI(w}Sl#625bYhVaJ1*|`g-XPFrzGBq_3#uYIdA*;Oozw z8DD8z#@p@{3&L~F}ht|ou}TawR61m z(D49*0CXSvo~ z_HcJ=3xDd}l>5?BZlC`n zhDXUB!eDt(Pjn~ojBEU#jCOsS8UHQ)e%AOuMhlxk2`w4%NdI~6IjOSrFZQHce4We{ ziY^2j3H2R)Jruv!4mmmWoubLX?{|eS5g1EcyO|L5AYzeBdKvzD0qUkv4AF&!Z~mR( z{R*ewJ8`CK8;scZ@WNcXq)2g7gF?_AE}|n1>A3oJO#C(5=BY2NLNdAqWYvp4lY}#Y z{YoS%Yy?1=U+gj+ruI8R5)W>DcXsRo-ATWcx84t47VZ1?UpPp3p`^YkVq%#T+_vnO zY?5_E`=Y={{rqzq?FPe8wgWaq4{8pDaASRBqJNCumxfT*nX0!74w=f$%N;%c$zV8k zhaRU|u%U)5_Bt|fx9`h}Ei+thlsR1ca(Kp^`it6y>b*TfxtTt~{xAd20Ox@m)v_zIv{ zKsmr_KL>k_>b9-1p}O9&UQKny#I?PYS1Tk8jsA+oUfYD1Y0z~v-S*x*Rb*h7d}p<&869|egI^;1q)U#U27tmfe&aU4)HSXIMcfd!A$gKD$3 z!|POzOtS2kj7{`WDoY>SMKeU640H?Z{OwB)RygeZ)(N8ENICjHzXu!42US(@Ry^$1pdbT? z>sa-#Y{@K*+oyYXnlJrWZ6YFUz%mXJ#?VLl1#*JJGOLa%9|@6tHG0Rp(skGN{!pn^c*;CHw#Ry`MgkH>!2*EahH`$F~=ZN$pqC3b#*N^Y8Bi zDG1do!uY@Cw~crgE^h4FGWx&sjBTO}b?5}pzy=;rc+HJ$V1x`D%UjzRP2cac!&QvOd1k6`Ob%; z(=R-~$=KwvU+q5fE=^IC@eh^4(??FuyB_?u2(gp2k6JOWPwnRB$`K+4?vL-$B@`{f zrO^YQs9y$H?yBGSL>SX*%DSys{~90SG<-%UD|#lkbkXx(epY^-gVkjr3oM#H=;C4+ zF%heR`xm#C$shb~5V+Fag{zyRUDfsHFJm9mkoWJLsYVJLc^SKAmTu3i*uAoInwU=| zmKOh-f@CK2X?}`$-#>5ki|^?Y>g!#Kf~5ZZao<3O5n22%ELg7zl9yYzVjEdGYpvIB z%l%r?+P?pQA)~LkmKBggNiX*!2Re#%ks5&uVQp(5Az&p&+lx)%jDE zovL5GH+YO>Kl^y`aiy?0AyN|T$s|}I2hS)06R(fFl`bsH1%u#G3icbswkI5HwjpEw00o=uy>1N|EwCr?&AD%Eei9C z#AwSgqNrCKgp7;N;Vyr?=IvcurKBpQD{|X14-E1Eq4-THScw%ryt3Cia$39E?=^DA z$TD`)w^kgA+9Ap((Vxefs6lH8xH<)Ul!=!>al_PjG12VZ)f%HMJ_RNjJq^dhYYvHW z3$Y)---o~-_*ieXv#if;lkMFDIzPAd6`b=N&*~k#eyCVO&=v>kqo6_oFVMplS!DIA zCXX}r^jPb8d|LyS+clLn$G#3h4!z|F?uTK$Hr8h>E@%oex@EoA?JcNCOrFpjBcgK9 zv4ZFgB$@E3Zmi2g)Sh6hN2W57`5&V8p0c;wCbfMYvUd0i3#-KV_k*PqR|!C~7VPrJ z0zqYp<@wF>1H*Q!l*U?AYi7uF`Q$fpu1$Yn@V{t*Us^$)@0`ecDrH|3(R;Wic;xEcb&`{Z zuA{K6274eA{4p_3`Um@nU79bJj%(bpZ(l+;_rwrA0rz@|J{k1sx(VjvNmRR07ZXn| zdr~@cjO`&WM)4mbgWX=xK``N)e%zaC-?nIWfFs+}cBoFXs+Nomi%6*}puWD>-q< z=UAT#+N+C})#ywU@G!}K$2sdxyG%G-{Nv8^*YbzHAI_G_`wI|sguwPV79IS#Gc2W| zAU*zlmDkj=Xdt}jL)&OVtA;IDvRN?9e5fPtvwChs9tbtFyHq4r@?c7STJxd+*lqKF+KV zgCQvN#RbeAK$D7ISlW8Z*epRtW~~4B#XDl=7b~6{Ybat&(XA%#jbfdmfD?i_9LPE0 z;Q+6>z6@Kdkglw}ay!|Dv?XHLiON%sT7%_+w|24qiU9EU4ZzELAYBFT9|4mNTA(cR zCC@Gzr7}X=krVSQV*Px1i|_Y`poyn*K`SZH1N5&S;O%#&#&jxjrbW;HXVS34^9w0I z?>Id^5MR|F{*PZkd&qoO5xmdAl_DMyn>qS-0`Ut~0tPrA z=wHPFc_Pul)vkWr&E`qRC|&m>)2-!uE`7GCOBy1a8w9UE0>y=Y)&)~zzIc>)6Zx8M zX>GevPI_YM&ssTCxwK(x|37{L89SRzKcbSlT_NMemQ9k;^plI1d;SeKG#<&y9rkJZ zy{vm-D^Hj`+WzeB)aE#^f8mg*mm~A+w!fc~FgdcNNJ{?0vY*di4*3{+K3LSO2i3w* z54rlQMi4#L*Wl&e1@mXVpsbpy`;+L{1ZN9+OuR!>_?qHo?v7^xn!^r$x}y`lwsb0U z?Z&r5WMQ|?z_U7d8)g_{J1qWp$|^m#`JbbE65{;W^(F0N2ak`yfE$#6Wr2eOovVv= z(gfKXTO@i7OfLA0$aW7kd?zCA(7}np;61`76{T6b8eSh-dE=$_o(1g^1-5xZjwAs< zZ=Qm_(AjDdh2IMH{w&qjTmIB1TOoJvu$6xw88n`tj|1oY4NQ>WSur0y1Pu+<1(7ma z4+k|)Sa<)$U!mw-UZRf`xikKJxl#6urc`r|<+a|*)~z-{BHkLG6!;4!q2RSCl)W^q zkgd*+w_Q{`_n_kjUq$uW=&T_g4Sng)f1|er}{Wr?ff?uN>Wg0TK4*Y!jV z3z!J>g%;5B0WP9kum3^-Mg``JPd*Vn>=*UQE6E75x9wm-Pxj1^^9mV0=xw*dSw%L+$M;k!<`%z?+)k5Y5Ol$J{h@Uso~ZkM+Mxa2d!P8 zu?U(bI9U@anU0XH8#g&WnmK<%oJU;aq7x0NRpW*nP3(TMn9Id9(*Qv>pO<^DUe@B> z@v>cN8P(~zT6+#vnMsOot7aFfA;S>SKcfMzy6;ID8`0pjHA0q0xI zKllWftz-7A(tAm9=@KUnp+Um}Hg z$mf9+;_uTD(frwC753}x4rx`LN!#n4UMO9iVV(FVNcaRjs(XlkW84htNUQ5}yIx(9 zOk+IJOV!c&6NGk`Ay;|t<`)UV&i&9?LdBU0@ui5$CVBbGH zJ-hAPrI-^ZVqbl2Z2t@7Ur`;&?eXc##%-=wVy50--QZN4S2S;k_dq3z!;!KvWqW*N zX6=2J9e-B-eWL!;ix)-h0jP2E2k&8mTm!sz0Kyk+v|yJJh1jcSN@kn(OFb=52}$~0 zysjxZbnsZ&2FBo7NCRUdTu1O&0JArAKz9bsnCY=9NIm!gV!6xGLNKzpPj}~#pFn%K z(XM2o0d`Jx<6ctq^cAmjN1YvgZPX&FZ2iDs5DZvgZ2t4Jp2a?G3L}e%-uSc z_vz?*M*2eEw7iC{V}JV=Mi=;1Q8BGoecqf?5T?vb`?64ddSs%;FO9w-*)MiEPlQHR z-+yv^l1-HBN82Q&w3h;&yie>9whx1#dfCZ*7n{#hmJJyx#KLt& zwy~eaItHqq^UJs)vwNbw`Bm0yu>u)1c&HrWF->8@OZ6s`$==2YeZst@K?`JFhfg&a zeL8rlc^|tYcCaiCY+40RZV(n4yRdcV2US*aRYg&WoJLi_(_wVCChs96FCI~2w;<4~ z;6TZV+l=V0(2S`dSr3PwaRN3(_3Z1?*KR9>v%l{+n%j2o)zW+}}$>h-+#`|f@A*=Oyw-fJ3DTC3H6tvL0TO7a2zF_kime}vG+N<)<#^+zJO$5OK03kr9 za#8o$EnTzhLu7=S@dN3H(yO*fO_?)6#vv67ju})j!qse?2zcSu(ad&OQ|!Lu$9L?z zU%ot^G}~$7M0k8UnP|(jmD1bq^YncF?*mOnm0R)Fsz!~yGqWc_QPeFiPRXn&CG7Yz z4vjFqIhEZKbBc#QI^R{l*f4Bdr#<~9PKD=g<5wX( zBw^`bZxp1T@X6Mi#`Eb_-MCLHxxYu6<)1h*xdJ^Z9a9;e7y4%O{v!^IXWE^DLn8}U zJfHMn&W_HgW}O2~MV|S=%%)^5qkUy}@n$iT7fi!SKS!NpesDeSO&>ZktWBh+2LIE!AWa~ zd)?2=+6FhbjGvGo$)UCj!FLb>6q~bSQPE(IM(WmgUh`)5w*NUF@A=C*8na2hc zw)MD%3MwjQ!ZY+{1WS1 zfh9Q^3x8Lai_h%PouHx+NK|r|ZV#0}@ls0W#5F7jg#s%gW8Izp8OeHH5#9+um%Q9kZP94SRy-M} z3daT|kwE4+)r|Yxu!J3Jr1;8$-R6(wQ+#TL4TB~STxf$-rQkADAzvltb6P@;mw#GH zhiB>QuH~k?dV=yB{xumMJp%RA+{c`|5+Vg7!Lv+Hv&f&#^t~?r;Ly&78UKV*+AM=g z#AYPDN~|B@@D5oo_RZT_%b&MP%;f)s;`cXsZ2-N7Dc`k!^80B3Yh5_|yrvP&eRC7v zOpqkRqf&c=o>>XIHf8a(9kZ-CPGZl4F3d=JD^^`P{r@+uGIp!&6l;@~viST*=U#Ng zDQx!3DEIyUp;WO|?@XGS{bj6bzv%G>yDtqY4UM1RKAF5iHOx@DIix7&-GVZkjDSd) zf!DQ5u1_E_CZXhHQ7;dS^JAWV^UhnR*>#>>E3>?v`Sw!e=Ks$sp;{ZhuR!W*9{VMJ zbj$gmJw_E_9v5bO|Gm$gDar=_DnX}Zlt{#A8?A2EEnR5a_$BXDsQyuz(%)U)6J~?c z2^pDYj&P|_sq?Kr+kCTk2vzSjS&dD@43DcX{xjjeL5b6lJ&oF7kflONz5{i)sI(Hf z6LQI@-qXur&pz>oRtjg=IZm9EgcC}xyc(9fE{4tH*C*}`qQ*{VTBGcPy7Nv>z<~FW zYUstRR1Vs&FGzUf;|At^|Gk>3*Gs68&|C`gf#E%%?%23QmdE9&g{7H=nJUI+P$d*|Oa8RpoVCx? zFV&i}UX=`(Fe3q{lzgVHnM!6Vs@UCE{TYGJgX`8Cs&F>XuHS&E=e(cr1CX1JR4LR$ z7MnKf@g@GP*5-{-1H%QTVKvWe0&o0t_&COD#qrMRW`jKq6_MfTXA@Plew~e1n1FIb zVOfquhaX}~p^aRa%(@Df<|4B{ar#%MU1aYNRx_LcBWfEGi~?Cl3cW`Q1z9z$a#wk> zeekOtA9x-LU9PtEJJb1U0yTiDu|tb_%FjVmdmESkuZZzK=f0L9T>D_#gL`%bmOQ_l zeCZ!2EW*thFBk~Xsi-6*FdV23DR#;%f95NTpo?CE{X?;ay8rFlad*N;Libc8wD)oM zc(9_|=*UrPp8JlcivxI*a$axxJVAFH!(r>=58M&C?O3+NCD*}h>Fw^edna@ztj-hY zG=}l4pn?s5@Lb$hwB`Ggo%Yo_Q72M_&MQpdNZp_mtEGpTg*)!e1o{ws`RLSQWzDOq zR~|gYcR%{%^G`u-F0;v)cHx zrDDbz3H7^$tFBMLpgtW$3nRRKuFfBa#tJ~bQdmoKor68Aq4<6K=@8zKc} zv#2<*B!y->%o1FF=orVW|AoW$oPOZMT`-ia@Yx32n$?ohD|u;xsp|&)m{5`~bRj~E zqhp;hQfpRa?iyNXKWp#obdTLT1`pkw@cRH^s(?i(%4*o+>-G8hNk4e*R;7!7-x2N` zyy4;m?i|fUaJ*i?0+RC?OY6q<&i&lw)S1zzCe`X=d#WU(?3$>?cr>HjFXMv3H%AWZ z+8G-(nEZB~%{##@_kPb{Q@(j(f^73bqy$q;1UhJRtWQw+!hYFp`#+|8JNIny_5AqF zX#!UUxXI;%6yz`qbNd?~+i5 zL@j8P*+!fV70fMRrb6Sx#a5SN`;Xn!YWI3p*<&<@19cg{`N=*B&?3QgF8j^k%7HDy zO-4CT@**|SXEl>054D+brIS!rrGQAY#J(4Q(2lbDzVv$VEq&tyrk7<>9z;_!K*=8> zM}eS@QAh)d=J)!sKD2R-@N|w#bN{@XdoIAj(&H@yLY_CISi!zQSsF&@;-KKQ7jacs zU}cl()%R}Gt|*y#icEx=OF2VG6S%D5x`M0)%!fz$U)`BI@-{fWsg*2=Fn<(X?@k{MqAF)RdqBR&&e82XDq zF1++6`uzMt?nB2$^Ijd|Z|pXnZ834BsL~spK2%PU(i}A#RZ>37$E-B3oSAy)f#-%d zuK6?nFBns$13K36`JFBHD>0cx@vKfli{E^{Y_22<}>b?AN-92u1`Cs-i)) zUpbm$SAC+mB}`p-5$9W>a!gUWyk#;F(S#(cq_M1|qM^`uX|TGuo#Dg1m-%-ub)EzO z_8L-}&@03O-hHneGJSH(`IqRYD{aU9OimtJIB7f)rAd z6|zP%rnc0tV3^v}dnTlWiUQKr90*g*TJFv9#K$>nT^1&8TI$)TuO%c)pEw->qgVti zD6i-+OWvxw)}pFDe&JsI*3MvtgJNtZRJfL@)3b^i=KfZ70+MRr%gjIPSR6-n8!VTz-WwzVO5df>i8_a`oqxXlTR1of50C5OBP z%^Vx-3VHK#T~zGtJf3~ZrQ24o%g@Z2j0OZ;&@N^W+JKA*;sdz(u5>}w?$u}da;?JE z19eA=ibMZSgragR;9mt(5v~@RrGk~JBDQ_Xrwx~;7Oz)t{NjE7?s?bDDH04H67`_S zJ4OUxSix6I$O!1iQR8=%tIv6b%e}e{l1*$5(JcZKC!|A(BQSp_edh~v^;wPi_^lW3 z&(n6y6?M#Avpab*)&t_uNZ%LD-5Hy2_HBmm%Jo=4hLC3Ras@6YuRVW^H}vgTQ#U8uqct%dY2XOOZaV+`y7ybElIcM8{Vvb{`AS>~>y29>FGTxkr> zi3A|oh&L-4i|5!YwP@%2^KqfZJHBiG?O*g?{VrPW*y8YMz;{YmIb@TEKbZG{A_>2b z&!6c@_n)p59{g1@ab<9lY@psT`g*9Y4hKojLxA|ZbiEKUy|2-j zyUDV*;Y`1R`rASJB4k-J=qtQa5*}xHrMOyY@Yd*;A6J6bE=V4hKX6~X@ZVSmGjmk@ znvo%hsT^=v_2_V#mHXQCT|0v-RM<^z8ALZcKGU>}-d4oE4SR*%|NESG?IVwP8MUa_ zbFT1rIZT`r{M#rh6$v{yfT(hYhdjpdy>w;a!vkfDABCLA-E-BZQfi37cvCY@0%E%k z(mb2L{72S*9&E`h?nz(hc8`si5O+D9pFwAP4}gace( zikAFbxKkyN!n>f#xkPz1vMd=5J9I(+NXq#?gKzRzWzA;U9K1BeghA|#jmOfIv()ml zqP4tEo6y|Pw=L;*oy+hR;=>p}809zXY9%Oyu}?#4!}e53rCeUmxE1h`M7vaU-D7s? z{PR|4%!rhp6Qt&3?9OVhCSk}}EGaFZw5P3`4bu z!@UiiUs13gRfCOV#*BlWJfGA}u0OIHaPeO7=e;Dur4F1G>gvSkh7MIH-7sm*ye+}P z!@27UXYQ&SY~{Uv&t?zPOmwmo9YjvynljeDfHPRYp`}0bNZ_@W0?p9ssfDSG@p%17 z_;%b~P%0_-sEAN-Ohk13S6YkV=oS{I_`3f#|7dVpe57KcfrnKg6 zK!DLC-To;?qNy zugX-I4*wheTL!(j#sQcfh1`Nywz5}T|LF7<#mBzbS>JRf;(;r}2}feVmjS59M`t!DBrL#YfxlgH6laQ>pPWPj-G0|FF)-yp&-td%&8Y?jXEUJj@C|#BW_< z7rSSq(vAFfq_608-lXE1xrUmA8jqwu-s~FQE}_88Ef}6BGxWjC@#cevBgWohb8c*8 zP#SPUp>Jy};{ut85J`y5aCu>Ij9$vMPqKG!pme^D^C5qR0p*3f*6@wNolGjWv+TH~ zYjRC3r4*0MxOzcm=#g*kCURj=cifz;r-G}BidKpWN@h^ye=xQB;Kegp?0jt7FQ%^E ztXJ>nL`6e_gvTqs;8Wo7TzH-VQr)q$(XDvzEF=1)Dlt8PT*V#I|%Gm)VhIeeUn&JW@ok`?{I~1 z?L5|>G0S~A6euMVPdu?g9}$Cp0#2R=9Sos1snCV^|F{)wZgDwn%6pM+Df92V@UzJ#pKyv(oKz zLKdr_6w?IA(xl2>(kvaJ7(eWsh}jyJ_Kk8!9n}x7t6S=9`&g%yaz~+Aa16md6B+~^ zYxcf%-B;Kk)cuo(y$r5=224ZJsYv2OUUkmSx zXNIcQ%lY;iP?1syNTVT62ObCxw<8^Euia!GrOXxHOv@hPD-8NxaIs|v^)N6R_0lF% zR0t~t`4fN?pygIgO|a+G=V;(}s%STs+&M5x(O_r}2>pWMmAET$tfaj_2Mf;}FXy2F zR)LRC%I`cK+VSi%^GpbXA38HHTRIk2b6j|Fx^-n&MbC_gCkgsdPxtGMjRpybN-Wr0 z0<8k>UySGb>Q$F9qkDT6Z^_N(?lPOQ;4T%P2kRk6g8~e;BpevLECcrQ>Dfg+VKI`4 zRiO*#yP$dqEvT4p=uOx zTSDDu5CGs3!Oj`f+&;hNuk^zBM~80Zu>01_sJ$3_45GCO+^mRZfQNTPCKKL{5c?1w zCocR#LhHl@zm)GEG6F~lr&i34ru+!c5F{)d>o%l)lSjFySb z)zhZbtZ_(SuYoXT-0F7hR`+i{3<)dvC=tA!wka{CoxN;qrKDa)_VdA2rZIa#PL4UiBp+6Oj^lJscYr{jMAF9Nj^$I_KHrcSn*nLH zRB>ax`wF&K+2ox>S)rK3vAF3kOLI17s6;Lr8xK20!;dN1H3{>W-yfN2${TQZzu&2F zzi;LTN?EGLh7(Uo8t9~=@*~YqyF7mIu!PSOBe$WPxejNz4>BXrFFQj6B-CRV&x7+s zCJ6RC)%~)B;hoT#-Ghm9THbOS9#Nz2D|m2_0Tc`xSvr8eMjkyks5a&M{^FgmmnExw z+mdv?>(XL2DF16d=J$#hIPSF^`8nU#xA%hA@|`CAe80aNaPI#X(81El8io47hX^@6 zZW!mzl~Z+(>Rc;)ZJ^JeHKoVJ`4YvVj$0{-gYv-6M4^4`XNF`?>hLXz;DF~(O6Pm> zDz3E9{nw1(sj(nDy-F>K@Akx*hBx1d5oZ{HBBg7V*ZCCvTSTy7fK0`dQH!kXd6u(hQZD z!8TnMZ`9E-F^Cp@Q6@2K?vB!H`AlzMtaJ?sagZRk4%kg0b9cS_$hfDM$p3kMO;!H_hV#OL$v@uJI| zwHtQNxOsRu{}Pwq$*~8ao*M};ODQi9 zUU1xz5AB<~Q}*jm%W{+pO43&DlgPGWt)}<@G!ieMk94qceM_=be|@Yg(eBl1c94kP zXeLcBlk#Euc^pJkTObnYu*PYII!olHxp~gG8Sqqgt;UQks&g0sC^3yVHTaAAx|#f+ z*Mx1_MH=O063SWXUu$!SKd`HyNK$w6Nl0u{rr^`A4gS-4KNWB-Z#QBhtg2vS+({f&{3#Tj@L_?B2LU0lvR1%zw!ya8Q z50RKR`-r$^wf@q!U$?3n)!J)hJZbz#I^ zE$#*tQ$f5SC}9ZN4r(kRIjh!0HFBNAz8vR5v2SKshwgNxlRH2RMGYuXV_%?U9YEX0 zWM%lAD{R;$bQgB1#jn_asp{p+j04~|DBes0K428CS65Ym(I(*V7O@L&)b z;j5MHk6Bbr4?J+3YcT)hyN$cXp8%pM4c;I_AbeGSx9s0zsq+kWduERa-*|SgaQv^6 zdMh%RAau{d9`laSOpe^6etj1gS5Z>!*Xn11G89`&yc=?Fp^yP0CV){Q!l#)8f~1jM z&&ENA!a38l_N8L?^K>KUnT?;7cs&z-0+Ud9@uNJ;dc9?JZxrYH+7Z#2_bAnT+|*1; z9d=Fo=A(jmUV?|Z<%E9Ml*(0d z8gWLGZx%`?g3PsYAPE=r2_iZh@yccjG)pU0%=(_!_uzy_qDH5N)3-)*Us)UG@RWEm z8U(4JOnX$#4xL9N z-^#a*uRp|bqt#+npO(#5^1#DP%fUY$k(w8}XJ6w`1>YPumjTynvW3b*!($C7~ ztTSc(nlIqLEJST>$G$5hfQ<8oHt49O8`Mz%)}Qcg&@nlKmKM&)cut{bDrKO^a^X~R|u2oe>= zmXh^P5Pzp+G&FdGRfwb4Zs_aAwfw#Qb-iuWXjJVIzb4>jf-4hg&nq4JqpY7VcpH(r zxqPO!+7&;ilZUC{c(OCj4UnDS8T}7QIhiqKy721GDUwURCKktt+i~!oxlb|>WTx~O zn3Dh4f1?^cMSCu7Xu- zpGU6AQq&@Wcd%4eP?Cb6K5V`Je*Wfw>TC^_9HF7tuX#fQq)8Q&uvgIm#;FwWzo9M; z*m6Z$ta^r-qGS_ogeCv2nQ)E}V{5_v4)Mj~d+cG^v*#;Y>z67`m-GpGXz6Gm)GC`z ztporNwKD;*yvh0NugW#zsVo`sVpB6qc3&DKFIHUGQUKtR9U-K^0sCROq#<`}>^G5Z zdK>uvi+?0^{p|2Z!vi2@n1yqNqQ)sv5KV#pb_fYTgZ*a29)}SpdKww3u!IDRV12_Gm!E z|ID9=uct?hr!45!zB+Z&A%p(`g@&Mx*oOO|pQeT%%)a=EtMGi?!oNk__2U0yJSYaX zG*j*X74>WE}dMuIB?)ulO+=d5?u-A1%E88Cnet3X!$nLUux}dqU7nWgObK=4~{ij{&ks94W^A;JU-MKmeLOlmC5>)p!V4*Nh?inT5 ztrQ;Ub~}qj)UkYxoukzk*w(mmX4wGMf{CnhP)Nk8(kker2WDuT) z;c4bzk9FO=Ywh51;mfDiAB`oVX2+J4sbBlYcxMO|fN}tO@q%COZTh|oGmv$C@#F%1 z%{;3=lSh**6fTPr9)xEG?Vn+AJD_Ftph@ham&L4(a$fC3Guk(ad_&N;Nkw3>`Ome0|*AA<^%yRNnJ^m1!-J5$!Icx}j2-c{n;0 zM1nsQ<3?uvxQK55E#a3-zdX&m^dGTkDNzM-HCc&S4G8%g^A{!?1)wy?b8(ZWh6EYeMtUCBinWw@6ck*!w1V7=) zaTL7L;VE)Gynw!M+$5@SXEEw}Gb9C`UW&>07TptlrQUTUDZzwGqwLtLxy5nJVAM*R zVt$eQ!`qZ@aJ0LZrygba=ww_%U#`VQ`|78h3=j$=Br-E`+K;&R=-BH;CUwiEMWlKP z(+ByDDxKnLS*e>IuRKL!-~*>wB45e#Bj4K$&fP6~yfSC*^DkUIZ5!5&9R!%e+#QS{ zSNs%68>SpRE-1uu_(HMQ%V!nsegc=t#4*YSrox5bdjtXr7a}-09~AXx)!aLV+JzlW+9W z3A}nwRfdOO&bW?0@#Z%38_eTT>nP-w!0i|Enjuomp~mu2#bI}yU*C1Ov4u{`a_fS> zKka$R47P+8i@4bX-O};Pf8&&guT+XxSQS)m#^&u$*|w~v;m#z0BN#xC1SG|1;ohH? zbkps14@;szLD8Q-?1xtvau!TN!7_n@A9q>NAAJ@R0%Va?OUTh~87q!izgEi;{W+!RhUg5&_34-Pse{xU&mM<~a~w=wCn zIK*$#3~zT*Iyio8;ASSq6JfyPY64nhcKz{c6WVi2Nl<*@7yE~U%b!vj5RN6Ym+(6p z`(Aw+bF%#_Ai2DqrR~QuzIU#h_A@Vx9E`VC8#6{Q#qt>f0c{Jbn!4@8PZ-}gET-N5 z^B*t}ho~7Ko(cZy$m;$(eRV}N+1IyEXfJ!klaNf=d-$^OD;(xQRtve$w>8(((gs$W zeO@SJbn>|A0} zf0}l3iowz4`KhpN;jyr-R@k4(1Xt`1}GdW8O1uI!>b#$slw?Ikunqh~h z7R4K;M3w53jw0fDNi1Q1;81fl$j*cQeFt8A&`Hv5DA0YrtM%Zz?q`a78QPUAEY}6~ zBLq#3N|a(;>)7h>9aWW&c#AK6x^Y~u^mLN*qj_Y^3Na-aBdt2VMfLLlu~wPy9-^nW zNuF!(JyPZ6S~HJ%bIF`MT$RInP0p?G);;z`$uTG)>*MeDZWa1z^1uE8fF^rH4HjZA z+aveL(SB?aG3hB+kl$i)Qc=F9J!WF))uH}Aab<}Vfs-8kBH#cq>Z<+x=Li`SyO|tR>N-QQs0i`R`1ezly@piNqR$+6Bh| zIC`)m+4r-iC2d;t-ukxh^Rw?WruBG}bUnyqVm$FD^sc94(VpJdzRq3@wo)tlypuAv4axkY`#>U^D)nu(GtsYpclfNTk3&IP2i zE3g-$Sz=D!C4ax(2xw|6HI}~ik(YEp9!D(WT^gyE7 zv!J|_#k8QqTpZgxbngYck*tY%!Z&U_B1J(LA;mL6e{W7aCpLZI9l0w9hnClz|K9&t zHc<9oAYz+{Fe8t-*6T$-uDg2gPQk}=mBy7C%FTNJ!XRsoKs+*=UKYZh)qdjf@in6k z6}snUXGo1hz&C<_SMWk`nOgGD@Zu)d*M~k1s^8)`&c?Z1x0|}7h`oh&uZW`rAx4)0}_hzI(&oo^i=e_sXFN+xZ#ps?tp-a!S(WlNQ`wSF=n&QKF9=4n9?gjdL<{@P>dloV`}YPCi?xz`tV$ zU)RmGrSm>K*yCe(h@=@U@!`Z31&QO}d;^*oia>h&F|4?9`Mt*S|6J{iTUc0}L~Kb* zoj`yRh3bTpzh4=3adbdKa?2m@7OSvB>CWY%y<`j&F&d;S3OFT-fYPziEY|y(ya}Q< zPHWz~dd$AHTPTN&ErH?0_fP3q*rH2|hP*3kwa==G&*)rq^+>t0N;Tt2ksPBOH&6f& zuUCj+Zbs5dA#?nn3=dpsSWuuQrgw#OpQ2w!8J==bz{AZQVsNlaRwWfdTH&gB3k=_1 z+%KO#ur7(zZ<)qo7R%eN8Owz%3d2rJ{XJmkbH3@C;J7uoD#DgEFZ=F%sq^EjM>3sH z!!`6{*_QONFh(KSiK>ARdN#omVC{=OndrBAto}Nyf3@}54En2(5t34X*-63_Z+{J% zGWlx8bj}N>=T6rODYm=VCpFEe=HSBgj%B2?4hK_#sEo^(xYs0omIwR%$P3%|wnUNp z2791zfbDz6B5B}8!ySs?jHhE-%f198_-s?jzFpO|E+H~3JMLA`*ih29g8wR!C4kCm zK?5DUc^%d+`*G=WllBF2;V*xEI;&ypnazE73`~$cgyMyX82uI3TqBcOUl}y>;QZ}M z?CLF9jG^%DJD`5!C}f-5wJ#?Ig{SHJY*0;|| zDG57l1sS?zMj;KX7c9SHxlGROdv`Yeuq|EldfmIbxg$wq(*Wy;NMlEHxJj7YQP{$H z*K94{F11a2@10(HfFp>*!di%dg0liys^CSofXHA=FSxg`!*g@(W?vp!yXI-yV50Qx z6ANg?4vg_k4aOa9ozQK8&GCHxS67#FkA$OA%L1W-UCDp+y&2<)ubvDBCNAmddmE-b z51OqK6EV-rechLkeV0W@M?E|;k?=xkSh$6Ws)FXk{knC1jcoNtwG*8B4L+V%e@kp( z%mJ;R9L=ERH}2JT4Dsn|O400RThl1KF+0iY>(wu0E(ZE_e55roa!MwaG+OfNgbw9vJFh0<#;XXjQY2>GcU7u+rdiHhIqYY>6ekkvGGKy`Y!i(Y89nD-( zflxT%6c6P&cuH0O+>ZyP$}R`OGtXW;x>cSe;L&hfC!F0N$VHs)sk2Z^EH@6xqE9hZ z!o(Y%`8f-bZU}vt?St{#RW!-aJQ#>B7zn|D(+nI1 zBn5-G^~U0>*i-%HPQ5tDEh#B+V5aX9k->Pz4vt+(V=BmoCB~kPmp2&pMSAZPeEY-b zz#@54Re&jQ@kYHR;;Yy6$#Kxq`+dvyZARLsGvyJvZ^f1}CLqmB<{*kxEli%bU}ki8 z>DS)J9|SwC*W8^wHXf?WL02?O8WN+3o4}@|-AUmIb=%#M^>icG{FQ?Z-?qPF44-s) zp%8o`AwsI;K1?Pqmp@gw~v@EER&sBC0|uvbl`d6z!XcCRim%|O#S<;Z}Zp( zh{l319R9+iS<$E{oq9ezr$p<}m)EaLQ8r}(Np)EhX;cj=cx|ApscR7|X(H zj>`5P+CFr`F6Z_8;Of-;Su5LDFd<;=DB73qZjO_0bnJOluffmUx%2#5-cA2;*mfz$ zkEstCj@8gLG%yf@TIp+n*6cOg+hHo?to0q4tYj#pw4=f{)>6ygM5BA$Hkcxt}* z+3F(?XH}mXJukj$OVMNRk+EMU1`@{;)7NkNk(c!!ThPUOZI%j;{ZEZJogNzsOeCrp zKm)B6j1F(Cw!%HEZP&^7HJN!mOYXc~_jZbo(%5LQVc`LZ&yb`RT}6)BX$G&^%)`&x z&9U!|sm|`L9Af}Pz@Zta5DtP{RaCDn`hKTJ?`P+^YvV-dGviaKl%H3kpvRJRNfgS z;$xq+XJrM3KHnJcG9bH?(?;!t-r1S|fDtt=@E%2kHm)cO+Pu7Y_)Op8R9D++YDxDG z>{zLH+J;OBx3r}LZ|P)|YSoO1A^Z_6GT0qd9vF|r8aDmy z{nInHD?cSP zMh??z5vyqp_dJpY*Z?N`Ye~$CdHY(K`~qF<)pe6D`)_h6k#P@GeP z2|brCPnBSi9ghWH20Ah8BBw@x2!NYR#v!f=9 zb>Dbd`qEuS)+JRJ14tCKl^56oXi9W_@hv6t~ZjVmU!|!w!`S`PJWB(@B6eio(ss{d8Q1uM2VQc{jCcRUNWUPdquI6*eII__#{`SW=lIOzq5-wlk~=jmUTre)_$FjAFKX_12<2qO zDNmFs?}|lpO0kxTbA|h!>xx**9-8Zc{iZ}c`3Mws+gk`L=RB**deI$@=UdbQ}GQxVeXKGgXDoex4bhyW8BnhZXBl)Q*nk-|8t zd)Ui(9!0&kjTDn}ou}d&)TvHRjHEU=s@+|kz?MKM8FcI=P1XGX{}B$mnD|8xrWSUv zX0lT{6<*x}R2`&|6NDdOX40|E+bZ){pL6VexPUhDAW!w-A@7uOrYS%+S)((A$_S9o zx#T^kTf!H$iRDLbpH&&tA><;b_>mc5>58W;Q2aZp!9v^;X2C~4ONyUW#IEo0+UU*m zQ({Q(APGcfALv!6Z3@F(MyLi$I;74;q^z-#ENYrp^~7Q2%d%-($AO%2HHS(Nwl#CW zYB=V;+IRD5+o;CrHzg{6FT~B&sbYq}*m1#_+m0{UC1bFxsb+~$I(=Vpuz#$p^<}FqJg&1&MnF+C2YaYzshUtaw|tvjYFLA4oBrMOOFDmTDG`Kk6f&0Z zns7MHox$o}cwYR2!6_UFAg%8YzWm&X{y^dIZLE3t?J>?4W9rArN;y)NVDJ+@L&CSB z_0w&5fyZl|MHPk3$Ygm(KBOTySQ`&zj!(vJMr!) zUCk8I?&Qha#Y!HLr8ZO?;pBVwuTyeDkf_RxXp!W73wFnD5{GF#jBwD zILfxb**t9c%xZ7z&E|D(+@C)uHWb_3&h{WbB`YY!4LgL#qmSvna$a&+WUqLmKku-B zhW%hpzwmVigi*wXF&;T` z;S34)Fg5|)lA%Y%W%Hp|Ni zeUkjJG0SPDSyIN&-?!_|iBCc?&x@%XTUTN4qYagWL{{?VJ1XB>mq7YLV1?8?W2Jg9 z4_fVqoKpV#;$?G&nj2P0J}h|?Le8KF<`0g*^B{0Rgtr)ysoFo)|Amz2jFz?Uv|bwa z9n~5kDKaY+DLEA?T3KQ*={sE2Ha*=Lvt9pvLSy~ZA6G3lkNt`&u?8~_$giZm&0;-&IHG3tuUZBcw1Qqq*U#`7`gZ#2#`@k;~H5xSt$8vWro?z{}t==rbJIN zPi8J!w&Bv|@X%VCUtxOLiPLUH4^( zqQ1t(2J@7IiEp#5MTV0fXD`tAfPS#HaUT`jh5$!#`U5f+d?d zDO$)`s+dEMxsimxE59;ca!AIqFJ<}G{!-<_sg;xP9%fFqbX;jcOSZCrZssar^Ej4g zaR%7R(u%HltZ!{dvY76-WFZ3!bh<3u0uHG2891>lvFRyqUWM0+N6eIZ8=$_8(*~#J-=uhFr_*W-Eaot}*%+BFuXKsA)w&r6;na3js$mc)svR3X_HvmY zh=@ebc|WJ)cyF|4dhhNJ`Ky$B?RTbiFp$i{@rV~PiBe`}Q=YnUU)+(+f(7Y)%J!#O zr;-E#?74%yJo#>rr_tOJn<8(&Huk$18~a(hw}<`gHwmjRJ!DLQk9Hm_%}8u>ed&ja z`B_ht;+55^!!|Ss9|?)58wa6TT0*8BY!^sl;v6XZADDem!k)|W)+u%6O!^9c*X<|A zLBLgvf_9{T6*eR-09iSNH}TfBR!EZ6M12?YQxDs71jT&9Oh;c>PI>k#n0& z4N`ghSRJOOhK(By?*YtFaxE1OXT;WSbcuBd`Lg&mdtvnAC#s~%0{ep^fuMyKSQEtg zpYXw{h4go>(+Td+l0H;3EBwz5-f3lI6DGU4Qo%HvOdLtYF6K&{TxHMf@`?5xH-zG4-k=dvD5ldkg$YnaaN_BALy9^dbX8 z#zs*&?kI6Kwt+)L&95?5c*XkDcCEW>?j%1H7#ok8?m)c*l0*gr81x=XEN6$2x$W9( zcNd9xaeh3`_kb<^Sm;Cy!z!b|Sk?FH+3Lwc?=F8|niu=B@#wXNgm(-SvI+1$WYibN z2yCOP@ZI%2X!K^}-O^}zr^JR2&CgDa!Kg0_6!wWJG(COk!>?3t`fIHA=if^+*?QQ) zcm@MVyjM#9BTlCn|3w%3=i;`PH<_6auH3+}$x?ue0U&KMatDb60U86C_qc?`7Cg;< z*w;Psrk(Zu(--^|zm)j~&XZt5aR-eM>?DX`Lyf&E-`mh^h0Svf zchxqH$QAknx`&HLqrPvuNnN8P3Km93sbrw6BI5!FLL;c(3#D|d3@cBbw`x?}ekbhe ziUl#NnAhe_70{tm%|0ol+EJG~9L66NSN2$$=r-)NahM{fNFf~@%u#U{!pMTO0be{>MMyUE7ZT5>nVjN!KVM1t=8C4RS*X*Wd}L-Q)2pr~K%f)fV6Gy5E2O zv{aTd8W3R2OO4Y6bj)VusiW0Osr9GwoI|2nq|>w#bVkW#fr>%wI`RxcGw?C>P(>bl zZunMpYSP&nE4lSs9Hz0p>c#Ja; zjq2}dqXtzwB24Wfs!U`zJY-=TY?=r`$#^9uL0Zm7Hz_7uef4fjwf~GI@rTJc0kje# zlo^k)#zHuDtewxHrlBCx{)Xdz*Xyku%_K{YMnYR8LFTaD zs5*EjEaK#nvFQm31^InABSV}iIwt$l>7g1Q|LhWu0l7B2uG<3Ubw@~ytvM)P78bU6 zB^Q#2U8Fx_%OAth2=NiEsxE$$;T;>dP?EwHDgN-$6SN4b&IGiF9K<^WzWyO8Y9{k3 z&o;%rEjVz9@5=zmqFYfIB+H=ZHmZn#GD9K7hnstE!J5v?Rr+0aZ(|?V7KGae%Tnud z02dW5i9F3bEb+8R%z3rS`5+5F-!kv5uHp5YO}}k7CnH55;LXfIQ5iCS$4Ob5qb=}D zz$`7!%c{5O5>mT!`f1irZzKI8^(VH}L~u({q2CHnNYPCNGB=?9B*xNsr7dtdA8$=? zaY1rm&maCyZPK}ihu66v^BL#`5EgQ>vY=K!nk|%7|4ql2f3=RF;QqrG>Sg#%ndV>` zucnO2-RQb7#V^Ntk$Ip-+3bR4ZPGi)_*kYNhp0%JH6ptS>Hm1(tz$fI!-)AwTZQ

MHsGQJFWQ331XUGGsZHhL&~DL~{+k2J!Xblm?>!ce83zNx15fNn z?iiB)V^P|1jMXD2ek5auq*L1?q4j?i|BS=XY{?WX6va;XQ49)fFMQ=ImpV=lHj&L*yX_ol_Y+ouznC_TvY$8y|wB07|?nu*@D@G9w; zLv{pzk}yw8M)9#%*N1Bl?GyDNX)D+|v<=|$MdT@nIgpKT*x)P1s%C2n9Xj}FOWaP* z8m(x)O)?HOY~v;yE02Q`rO`6s{1N#hGp~DCT1w~~V-5YZ^;ztqk+y&ck`{*v-5h}+ zfq-!vyaqvhk5oba)kaTwh1_$bEAk%`ZVgY(DQirgYH*)`* zF<9sjskJ^vcU$PedS{Q_lV*q6P=FWZGyskauDTSC*aRNak0z0#J49E;$rXN%c}a3o zOj8qL(bbYl^CMa=*x0&Y2k*U_l6zpTZ*!xW)&5md5${VHtxtq|QK=2%|_B(hae6n#5bd(zhHO%2MwI&zuUv-|CY?dfN$z?oB&$Fz1xtUN%19u}UZ!y=_^h(7x-EVtr6g72f zjef~;`60dAWN;R~?ci@kyosA7aN&4uYdmokTd>)Ct?pS-o07w&3)q%E^tYm=GTt@p zAu|e9uLNqBkVAHY_Z zQj;PT=drjc!mqESreujVcg7r?cEES-k7rMBmKPd&?mMzdlld3$GRqLesffD?LAJFS zUwrsOV>$2oxH)^D33sfJO{OeQbUg8>6!NQAl2;)?`8uVKg4x&X+VEjOEplG+%8uvW z3CxoaehDP4;pqtO96z0^=9u4qu6xBl3Lfv*u}EudUK;!Q$j$!AP!}6-Iw3K}`W-@K z+d{kc_Rl{Hd;jWRjM&R};9PQ|C1ot(izVhILpyNULrjbHxnpNq#qt&>l}5bF9FD#F zA<;vAY*t*e1)@+6GU*vPgQR;|#Bol7?K0PSX+sBmM1<5XEPT`CO(DHNcH_=g(CJW1 zCiH?q=_D(c?biLYt(vp3A}X^wLMGJtB&Uik<5osU#z7~<44%m9@%P6`j&kqQY?h&N zUtzbw$LL<5w>ot9xnl)bzNPrqVu5 zxkVazK9TGOh0IV?aZ8HI3&4wx+YTobe_p)BvVVBj@mo`Nh*wq9q$eTpGDonfL^OS4 z>fsCjqmS)XA~E`8Te)DMTsFJkotd>3GP`>47c> zn5V#XRU!ly6?Oq_+@JeZvHH^WxAR+l!lycBmEG9gyN5(Lm_Zf6$oPRG6DD(Z-NYdU0+mHA9m%Ktr&cNw6 zI?K}Sw;lOeP^9q>1g7eCrHr0aa>n8Eebol#KIiQlUQ=clu?9jjA#|*8)incoorTZ& z_)@!+pDwQdUK+WH@uQxIl)}|Vs2qpaQ-NcKRA|JyxO@CAbX5=tXkO19V77Sr+UX^{ zf#Z?LM~d_woU+0G&R#{oP})5FNz}RP?y1b}YNhgI6c75sz)*k~Rx0b0xVw&2I6PE3 zd+*G&U)GoNww$x$^Abv=W7XI;Q&UArkUJ~;ZR;TC%(}e#hXE2Q? zt`X#10L=uLcRbAui(ykqGFcPCaV%>NfA6n$bDniqpH2edIxr2~+E|>W?(qXgd*na= zewz~W{!?7o-k6t6!|`)Xu>|BNOvkn^J?W}##&ys2Sl;LBwi1Smn{DPWgUEa(@~gN| zeIe>&Sa{ngr``5Ba#32k>76;uqY*J+4z4s%XZ`^wE-$WEnd@}mDKp$fD>dh*LKZt7g4@f@h7aeu_F?S*aTB#rxG?xGVo0EY(zYtBI};WdlNnSh6Ign0x%Q7pVzd&`5k(p}WIkIEDQ+d(wSKwJS{J@HH6lavKU zMfJC(-*80R3nq05YKu~90swBv;Ejh+HI*}o3BO(`+v;A)STnfe2G3I6`!^^)1^qgH z?~t)1DDae2YePORt#i+zo!NTe?#YmF=~M5cUt)|Y=r&ZHCF;Y$l#H)w1r_dN3v#eL zZ2CQ)`?ujk$A63`Bh1N3JbCNFEYlLaL!*pOs%m^zYEQV^{SOe{gaa;-R`<*+{M?<- zUel*MHM{=4;DXF_O2cx6J%SHeP8M95z+lteL5-kJDS8)>>!0gBJGRtWKxoCAf{OV$ z7N57+@_(QvV?vKxA;B8RVa+!#ON_p~(RIbKYwre~Pk9&igtPtw3$>I`L2ocYp?*8cVu2I5k!U#4KhZscAE&xPJs(qJfR1En|*ZQTl?e8 zvWYXP0q+R{6p==#I1eK&U0Ds2Tpz}IVqWQkFN^Q+rTqT-WBn-iiGRSE@+=s?Kqvvr z+E3m-RXqzQ|98n24OCPVDIt3m4O+^Ij6~UcKlUn=ts#Umq9H12lhDu-l0sG~r6i?9 zH2kh}kHY+~x+i zE?)D=TUO0@=g8&!XtgWMyE5afbv- zM)UWE22SAf$M>R=95&T4@=UE>pGUv_{nXWML&=VBwNLzI+T;ZQy%Q)>PxZWQfe$>S z2963m#rUoY@PA(?X7@KBx}(Vmn!B-rMy5=B{kf7oE8IO(Z$8;mLIt>~=aiRGq|{In zWH_>Ur_p-D=g&1i@^>Y()F!STreA`@hlZNj!P?+)K-^P}GJJ{s$IE;;TI`ehNWY8K zd{bZJwd&fNxyebAFApqf(r1qrR8CdJ)?OYy?-QR}qiX63GgYuJlOD(Z5?=lD#6?CR zkrR$`f=R!ws9LwgXzx!R$@-PYPMvqGjJjK(G7dl_IWr(~E^iYwQMdK-OSX6YcF$n6 zg7cWvI0T^-pvXNqkP*Q$nxT@st)jiEsw&nhnSWDI!P>KY+pTO_pRKdJ-)8VK!tpXt zIysfb)5$E++a+_^%eI_f);RxjQJyWOtl5jzPlRy-HwivPY;Xo&{zZAmrWdj{X2;xJ zYLqz=D7PUl0_EB;NQhy%{;D{4!D#rFm&)Z~a$n8!-y}0i@bR|;dRGF$X#Ff5*!E&1 zVDX-2$rp$3JXvJanYxJzkK$td6p^`U2dtL3vk&}DkQdOO7Qb@oWBulwz3P@;-Gezz z@8qdG1RNCTE9K!xEE}|rhR@Lv(>qt#UboCawWjxd5c6ZFl(`#rKOpDl3&jwOlpkYh zO20X5x;mW>>Q;3#xp}qj*{L%lgo8&Te&$w`5@{G=i>-= zxRfon)=-s2XZeMjA051~A3R|v>r)yP7!kP2f~rJGnh+wd;O^*rlaCfJhJMGM;MfvZ zH!0Za{xJp=!HiEfu^~5V#tjSFN*bnSnX)sjg*oc!Zt46B3=m{N!KZ_6Qk1DqrlJ-7 zN=;3Soj$sDAl0b;bWPd9wjNCe5Lr7zV8DqF?0sbFroKxrmmk>P>kwp<;k zVL0AL2eRA7e*a^+qQtbyt;V~4Exd4|{)PRm`MXKG9G?;eK*_Ag%Lq(*&`y(ScH0~K zN9k)XS|*u=i@Wf|E{Y~K&v78q&4;U)u=lXj?+smoqa^&l@^Pg;jdtYT;J{9r)PIBF zm5Uk@8EJ(A8x6#MFq=H)E}#Ce`3~v5BD@(;`|9fkIT<+1nN>_vfMtM0hhL6}R>h^l zPE`xZCDg;|e>8XT?vF2*%nheKP{_+s> z>R?&3VC8SpJ2r8sivrCbW8P>{dtqy2P>0dt(+g&*y|S2Q=Qw`ysI3Ape40fh#l1+s zaB|lU#Z_Fq1G`II64J*HL@Ciwr0s1338?-U?}MniJuJOO2Sk|9PTF)@`^J}+9e*27 z`Y`CYCb11m>n$%PrM7eq3Ow(+7v$2Z@i!bwn1Z+iB~E9JbX$VfwHpHx>W_B?W&hMO znb!F?7*T6Wp&CHjk=PUY@$Nhhug<=tU5{>Ckl`L`v51F4-Q6h+f6t~yu|4kD5Ja}`YN8Hz@oj!9t_1Th3+yem?g&Y4i*4LeQ)07O|m2DD{v(KMq zznjs(TGw#rReeXrUvOCBEGCr>Pqt6}pG=&Z9(Sl^y;xd6A4imR(<|c0i^In%082LI z`Y?3v>J%|8_pYE-X700goSi=rhVEXXrVaOa?PST`FtWH*yWCD$!Q%KJ6N}fyw-X_V ztlG&P_~D$OH3jehZwl%vkhiqHzVyk0Wd+6iG>_etA}v{1U1D}bM42cxP&F%4H7bn> zbGe?ymyv4n zm>fHJ9;!%zhFw0`zjfcm#0PGLiGG!x?*m>rcaUn=7{bvBQWr_z2cc23v`-m2-<}y| zjP1Gm@Xq;g(YCXF6V~9*GQd53*GFgem`lvL{LA8gt?!qZ;-x<(g2;2-*9YrAe)O=@ zoFyTeO2P96;%Dksl5Y;@ zVIEu3!V^cIn0@Z=Ini${Vy~(_kNLYF89*8PeH=oykis}7iQQ74KJu(%WXfipuzlq_ zw)0v}m_0$CHYQ}?_dYx2D9OXp^=c;XFAf*H4OfM)F>2T$gxStcIMb*WTaRwU198dzug@n5=)#k3GWks6p3CTK; z>AOguRK>zVSo^reSuWNd^iJ?QE3;%PXRmOKN5@2|0aW=0`uagd zcf;Bhl_ey@Pv|_96!Te(J-hr_+Fxh_3Pj^|qDb4oRIWFv+TS%^v*T0Y5vzkzLr3;B zOr1F1)dNm(h|@qf6&uOq!OYa~9=97}CF>V#F_GW#t$f08JR*i$D7eCf0>F4Y1d9+A z4-b@IxiY$D#sZy>vnKC|ZK117JlTeC&=UA%WmjAi@e@G$7{&4ZAVV-;Za7NypxWYgUGFJgn0RzE(P68St`E zryx+v8BXS5)7>A{Swse<)R_Y!9o8ipf4V^i+~^MkUKA+Wa3|Ws?-Q99)E9qM>)G6w zSq8^)lp8XOM<>Xk#>3{pW_z8tZ`0bE6z?CMB=RW#>h`orrzZ}lm;2%yoG2za7u(*z zrC`%coJda(#qa*qvOKtKB17+J_-lMb0SmhW1_4`IG52@o{A>sBi=OBk8 zw~t8Gl|dm^frTaME1!sgC>rn~Va0~5RqZdgS+e+vu9Z0ZDfb!c>ZKD_!GjP&m44DN zmwh`-eP&g9imvt5G4h#|>ba3)OerSz0UZO0))0)b#rl|2J-Q5C?q_#zKcXw`;Gzn+&(}CVa^= zxfwnyYQ3D$opXa@s^PeaQ84f+V4sbfn&R?qvkJ_%)_vf5zk;X!sqNpFfI+af)OWHa^2E0?oUUW-qqZ7(Dr7`E2#~>)t;j(|0GL zsI3Y)Z9qlj34yjFDs7Uv2g)QcuBe+r+nwcQE!717K2HjZ7pP$F-X@cZhI<-1Z)u)6 zFKyg>tuBUce3C~A`MO9P*7k1RO{aEuv(qx0z4CRL)3(?=Hv(bRSyxF@>Us(~P{Iya3?-(yB@LSmd zUA!xzuHSjmC}R0JryDUvXd;_F5ubJ^oH zF^V4#y=-6hdGQXb(!swAW5mf~MRnh9+)e)ea_>c#wbhm3w@=8;Sn%ICIqYValZiRg z$^NyA`K7Nu`D_~cWah++=r8k>$6m>MU8$_yT6l4Nn$6Yrr85i+4YU7So&q*6xg)8} znrrIiMgFIAZ}+m-vvRThH%<{d?fO-9?^*7p>R)(Q9R4xl(!#u_{l9Tan9cD_l~=D9 z+&Dh$^;GQV^XHBsuFC(7Q^r_-Xcc5Dm%iTG8TRmM!;xQazf1mOcQL*P73`$>CjB9+ zg4&w-iGBMOMpI8j3t0TOJXI`B;ZB5mpY~+O@cL~FviYRS9`fY>Cr%E#o%z!Ga^AM2 z*U8BdaVZAZXG;Z7)It7yeUNJ`qTF#yS8~f?&5A`W%SYawI#itZ{=db^Vp{`WsEZ$2 zXtc{Mh_}W+jjx+)vHE}Gej42 zqhc`=yT3ih^rch7i@g7qr-1Q#$VoS^VKIuWV;1Lh&>IpitkwE&oFW$YHQjIDz!Kf% zk)?@;3O_Cq9Vq#K%u@+_v?gqdV~V*68{fn74a_O>^|AB+aWyeMpE9P4onCi#xt+!e zfmvH-rk=c~8K6H=P5aCHQ^DrB>j{+|y8oz)<(v|m(9&r+`W`#~^ZDd4@ekQGHk)tO ze0cfVY+u+7Z?%DVrT>H}VCGlSoc4$K?C_}wGZt5$`X(gJ^}km|5qoG-mnz1xZBc88 zi(d2TueFbld3pY)G$kwvd%f6jjdf4{u&ndi)Dn(ko>$ZU6Q+!bpZZMm7|pnGI%BI5 z`?UJm>3qjR{}ZNyWiW5K5WH&F{Lkg#;Wv+oUYpXocA`P^=NnMP7TQex(3i*i>Yk*D z)pYNHyECpRyZ?tYtXU{-L4NtJ(Z_bnN@s?OMswbDCL^8nJCSs)j(I41e>@s~c{-QN zD*N--Dwo0N94FBu6XcN2+w6yt?+z`}Yr&Kb$KIL~)fVldLx!rye%;Xu@iZX^0r;&z zJ=9wK=ELTC_>_f2afU_QbY0&pe@LdZ6@&t^BUU_e!5F0|zI5kwkt!skwUdJI}K3 zW_gj5eolx>=@@I*r4!D7{dwZ;V4e2I_q;5bmoSNA%DpWvA9>iU0_Oj9Je1^u_T8+c zp|(ygcF-dy(_&X?pSSbepa3w08QW^w!B`oXsyMh$1u;s3(DR zFw`3HXn4^f@y82)iXPnJ#^;p(T}QTH;szifNNqQJ%sC*HJinwZy0}Q`mSMCYXMV-R z--rBRm=CBxnAL$op*l$q0sW4YN~JmR_8zq-^#2@<=k?$;XQZ>gyk#3t7=N0t$T{{x z5!Z&9byM;u-b^T!8axW%fEzOoXxNz>UsUsNa7@}{<<=m+_Pm5iX#)En@?b0D9I@mk z8;xF|VyfTa{-C5&Y=`9@b7}WSe>^_gF5m&d&8ez$1CsWRe%F8JU8s6{Lpt(_;O2u9 zWgzn#DV#v~0A?j(DW6fTR(;P|?27XKOV0-P?0lWn9mo4WQ1~A3KOS6tRyXk>&(n@I zu>m#xtj>M&{)!>00ti7}8CFRK-1#)kUbkS)$&{uo{|4c5+R9_@^t=wVKKEo` zAm#P!=(#I2*8ClUau&%4>S^03+obNDkYbViYp^8l)2sTjFaHMNa$?SHGB+zpecjXi zW9q&oLL04%5^eqp!NbO+9NOHA+Zw;u^m1nBrMz;YdxWuq9#hIk2dVSYhb6}X5QP1TJ8vM2iCA=S zNy|7sx0&XVj^oh@b({FE1IlM7 zs-9yQT*?s*mW^|~wFDKsGHZmki?y+}JSS5P#?CeT>mkZO$hUJrgHPtD_YpZOt=lu_ zah46e7{JIRfWM+}NztbjeFKZw^;USrh}Ox5bL?EZ*Y~e0fV44E&KqatH_vU?%EkQb zZn-uoGr_RW{2y`vgG({&xFY8p?AY?y*_nS^W_0eFusw1Uq`-QihF*}2nUB15l>%u;s2k1tGx)=6p#;D!Cof{8~?@ zKl#Cv^!J~~zkJ4(s&-?4nRt1!O3`^u5y?RR5_MUrGye;UmJ8dOIgoqjn%jD&FLTmO zDg>VtSGN2Q47p}CO*sSi>+XEG=F%?QvYf|nzHs);|A8VFB2b|9XxY!|$|VcRC1t-$ zC8{}kZ~tE)v>E|t}mMc>)4f*Xl8PsYj9%`{@ z8t3ha!~GFcs2fqzgssS!IbD-=d*rW*lUsER-;`q z#&^n=E(%TUSiW9{G6+y94p9t*(kV#KJPj49rk^ku=sCQoy0dmyowaSMSJmQEw5N zUQMa0_6n%V7q#V{NS1`BZCNQO%h}qh*kES^N<|7?RUV1v*zMFSC$6f4r;vv2+`_?m_ zNKya=Aovg9bwkD@ROMjtSeth|b%ot%O^7Mx?8 zb9w&0^?N(A1oNi&Jsn+MKqhxPfJ`C_l%$Fyl`M!vNI@SB$l3qQdM~eW!L?!OM%EDO18fGzJaR;^u!Y{tmEgba~HaC^}o?xnB?zHLq4N49k)r0Iq zbXK9I0P6y8R1dJ%x8CT#Wi{EIcF|OFwZrx6A_o#KjDrz*7I;k$qU3+zL!vE-E-Wv$Ih;yzANEH|oA;Ll)`TA>qx7tuTkq^$uf@sp>YU2SCXQE#zK`?Xk3DgBhg$*@o!ltz1x=7I$prI;WTX6 zMx&vv{N?eIg~k;;rJLr^LPu)IpLYwuc?bx`SOs~!ISo`>VU@R@vmO)wc12KI!6C-r zp;Kp&Hg)4ogg8Rn4Rt?^)YJXc?_DKu*&*zW+R==DBrD13;9sQOWF> zn$B>wUdap5qq7G5&n%xJ5>R^W>)(-BTBTHCYuMFyCh@`{N1Qj<34G%>9zWF16W#EK zC(mS-|NO3ShuMayHkl)98$aFQm^e;OMg~)Ij~2O2Oa3(D%c4u%dxt8U7Rkl@Wt@Yo zsv`D2f1QW06#p^X9UmPJEtPOST%<(BJIRH&^Mv2@#`-^=e%it+>~X4guF&)M3zFZa zC{U*>eIU?GU?z6E7Yi>b7Op8v$@NRuZaK-tvwxy+_#YcOk=?9tqxIZsb8(N;enDB* z*tyd2<50z)k_;xhWYLzc;g)GZA2Ya%=bdj%dAFbP`ICalUA^vdXp7DoyT+Ecwm!+j zXMTGO_wO11i-`UL_prcaDg&)+ZW{TW((PIjzDL^V_-z@>*28{Ro{mSLs#b4h8SHN2 zKA#JDMMVwY%hzfj2sG>V8SolE(o<1MNy-j+pRl!o>GJ~37R@X@(K}~UwCQa4xfHg) z4_1`H>J>+i`U=WO`?B$VaBn@jv1jtk9&#|^X~3ro2Mdrk5Nt=f8N~tm2R86Mk4VWm z@4sxgX@!*p!+0n$_5j)_4`@T`N^r+96k56ItqP^>;2J44d&jxq_mhxiU%$TlUs#OS zaAQpBr}xDpEMmKqgZWUf>NsBgh=@G;*E)m?`J+Ia&+p2se`bVH{`c2IqMu%i_X} zuWxhriZ;}&(ODQJig&4K* z{({89>`tf(D|<;#HG0L;u*~Y<-e>A}$f@~4T`CA7t2*F@LOT}K`C+T4I(|*sx;1uy zWs8}){&t0JAF>-sP>>VoD@gx_v3M1jH!PtIrEdz%xqIxJ5{J{frWO1-d%v}@pB$o; zTm*E(IdeR%0$n|j3hy_cRlEB7D2bG#*|`DQGZ3$fhouL{nJsqbx@-49x78pzbQ%w$_;=zb@0Cm$ABm(BjKt?+-U8YUY4r zctCHf*mt4mOY{WH27!nv@fF6naljGliB{Y*CfC>aufeI8>oQEiNR!yTbe-}MzkH5xN|yhRT-S4gq<)9ziGgkdxoCENRyMx) z+r}cdii*hx6qUa!YJSah;&+2+&7?w?fT9Kn7kCg*`YbHN1(-^?<~0UH@Op z!Z~X9h`TZlMq8hu;uMQ2iT?iBydlX?tSJ6PR*C+!@`8MZ@kGiNG--uO51dz<*cbOs zh&d?cst>yeGNo_fh-kD(oqdu*c>_&9<&uYU2ObB`ClCK~whsHVG?twSvX!oAKM;24 zZV3s%v(-pf5&h+1H3GI$a=UAOudP48abU{PD$AN-i~=C1I&>NX;!J3?2p=f1#j)-P zmiq~1@pUeI1=~!REl(fX^rDOofwmRUBnoN;;bo&Lc)Gp=C6m-kAxx9*! z?h5I0_?oyw>K|Al;Bo-R27=ltDafkI+knzhb+aibkGpuzHN{&ja#zglcK5s;2X`Y{ zCm|n!iKcDJslmnH%>s?vO>^ojCUbrzYk?f?a8bB=4DJMQf4EAyV82gV44QIOcsy;X z$X#q#EPvs>2dN$qF)~7M@ddr3QEM$HROhRj-aRwHpK4yDyhog zUUf=y-lhuo>JP=$(v%3`q=(PnU22R$238NAhK%^ou%^_7(bBuEyKh_f6?{$?_H9y* zi=n_U&I5G;^Z+e^v@r2c3hRjoeOR*Ne4TP)g>I2V<<~<({KJzO+kBJp=MhB|d>n|45R<1mU3K~Nr6H5q z)piMqiSKri`X2*;V9lb|OaA?NGn2Dc+?TuZ(s@4|2@82!P9~7!5ag#rMZ(lF!`Bau za%`|}v(}Y5OhzuOx0S1!IIG{T+mS$K1dW3ceQGGs3PTYUTP?Rqs#23CO(`{Do>|AI zHntA%;;By?59E&ZV-JfRB~FV`Pfp#4ns`J;;qPUIC^ zrMq6ZLFRt-eX_GdygEWa9p^S(63W*zv!K4^U;n7q{(cUH}?tSlY zTy?|FRyi`#hMK0siB2zICU`|`P#QftmvZcCSxzed*!q0*<8%2v?sLO!>Z8bM5HLLc0kU}Rs==KE4p z8`xpA&{!b%B)0$M;RE|g!`%^$4{-8uV>r=?ThVYs^Nr{wcjq2D_C4Cp=|(hj26k^u z2A$yud8!?N00e3eu)f<-^PBsx&2p}8a2dMw#dt}-3w3LN7;@yFdRb7y(Y>`Iz4ls( z^6d?wpE|ESxi@=E5(&e*vA|kd*#eQ>3irgo^pQG)M}5iGoZ9lwDzX+1j3H1l9-MV3 zFa!<3Rao2c3Ivdd%F#bI8Fh}P9TAp1!%ilYZy*Iwc zIas{l5_NLnLiTg>r9shNBe{@3!?_r3= zTCAGJzs`G70*YutPxpiZ2 zgqj;cR7cIQwDtY>Yx?fTB6ycE?|=E=&Z2oilmX)F4JumDSUWIuwxUnw^I4^QFD&~Q zvsA+j-zp|k<(7iiq!s1#jzgUFYdlY8D#x%Xf|kjP=!Gu)ucd9ls)WIe0|6}5pOc1D9KkV-zCut)NY=IoZVxAm@-Kc%)hrj2n7zebRZ|p~TFKrQH;;@t$uJf!Oyqro zwL*>?6uE;t(aIW92t0A!nGa(YwqAEerth<@rT;_zm-bE5$t{iZo8U1B(A>bU0EHvq zCkw>7MXC%3wBFVoa7bLdy6Mx>9GCn;27x3oGm;B-3G8hM6(ZQP&wbif8RC38kFA3W zbJq-*b!;O)PFxUv5Q2??-V#v7(wBqS7m2H0MaJ}9+0UxXw`Be;6P5zWhZYPn8NsNT zBdiPQG+|w^L^9TTRadN-hv|-x-#IrF%HJ>m(J6`slUoX=X)NpiYLB{Pc+tFH9pA)< zPrshi(!c<~_bQOYzzqkU0br>@kH#1FX;L)nlam%IY?uyP>hjok^XXe1_5_YW*>m`5fz<3?T!C-=?^-@J><;ujop0(dV@ANy5?D?aYVO-}AFh-?W<% zMtlyiZs=e@dK|H4VN15PJo+*+^@rdKfgt5O(QLmuWyizd+5y7^?FY1>NSDI3prx5> zvD?cmd>1>?gbgIL#aEJ6KUk{J_XNHq5J7gNrL*)4d$vaE}i8)Sv2nSpCUo&gw6!S)15gvr%FPz zj+5K;kjWLNr5jF#<~sk0K%AH~DP=Flc66AkH}Cuv>{$n6PuAU^k}xmSVn{#nUr?3t z&<*O#MtJXe`I)aszWeAUmtSghPSU@is$Q7djK`P40t;?E4;k{->@J^t-LA0pU&BFV zhttgtLelbzQVI$fyVCMAelEH)CA!sWKfjF%%Qh`K^50k$FYJj$qsp>fx}w!?>L(>) zK6x$tCB5QbKsu>^``P4RaS2Q+3yL5_mxB$BgfeSX787j{%t@;&X4a zq;d_Nu}p7#71DF{NM$u86I|fvq@&Yl(<9i#(J#4W$GgK>tKXar^S;2#_A=CZ<~tNJ zk&zL0a)+xQB~rjeGtSfRzmrwJtK;{sB>$@~cI8NE2(_)%pdgHqVbB2Jq(nCw(cGZI zYo-3|f^x|@R?M%@>(p-bC@%XjhI4`a=<0#8QKUR5GWA5iu$pg8ed|X%Ki|v}XRAM1 z-2QPK0zDfle?|3@G%WV>qtVVA0=mww2Ofz0+P0B->EH(Xa9ksWn+$d_s2OBu14#eC zmTcs1E48*e<&+=i8)Uk|^^Iay^LP}p^qrtXB%F_AVk~w){X`T0x2;rc%#FDVj)clB?{@X8;;Bk7QwJJW`-8=fduPPArPI|9`EPO^+0dX*hH@wn8KHviB!p`Md<AsUY*Bsjv~BaA zb8oWgComp}foTDII}p;rAE+)AYZ0mT6?Zr-IpUe8cRlCOwGsLJzN3w{ z(Z&P2ZI`ps6euw`qbts+OK|4ldKIWxSeEgTX8vQ77p3sJn_dV`OnGK0^OOYP)Rfdk zivk6BDw)%|@fNg67eDMh(M!B0Rs2Jd3S;ZS-a9d^aW1Y3@Xc z@;In`ojyH`#iGR@jy=VLFeTBWD z(d(nQmhKcTdTM!}41_w{%iyX8Qnjcgn8%^t#Fq9S4H?)`)*>2ZpgP^^SsL*aB#Sfs z)<$20)L8w>vfErb`%}1cm{QJJwXdByNF7C4_drGG) z-)O97-1dDfe-i0EAqEjqCp^-OGWmxsX!Wo0jZ&Jo@5b zU-jphv>x}zMgEP`8DWIAN-%Phkd41iEVJV3x#I5|a`a2{=TzDZsvLuO8dB>cX&5Nw znITADRQ1LA+QDo6_UC`@_j~!RZK`;b$2ggUe|G#2U@I@$KCfOaKI-9dPG+axrjVs( zHKgm05KFLX<4!**YdNGLK}QC{TEcV7?0}AtdxrZRwHayI4eM!`bdlg1O+{8xFJt%( z%#-W={YBTEI!cNZzLs`tnY+B+ww7^zC^gAPUKwk>(Jixk>Fxoq$r}}qNH+_LFOwjB z;m)2wc`?=w(+)X+oj@ms7zQ}5X;_Qi;craJd8~7ndC9AZSI#=;)xC?9fFp_7FrMr& zlG_AtPJJD6MyI~(yt91SPxFf5F$CeV01d_k6TcMZ$eWoo@9_~kYs*5e57{z&(hLI` zqq=yy8nO=kQ#w`ofBiJAdVHqf*`tI6wqqY^$1re+gJLX2gTzHw{Bs6Z6b&2kIyJhf z+-%dPEmk6!kq6(tuCn8~ZBn^>c8SJmiy%`B>qc&Tb`te7kb&7zlaJ zNiIIvEd+<8ydtI%f28lrqJ1*!dk)BLc+io2Kq0qz>Ka4dOrLGvQiq-)F$H;;DXSAM;?P%_WjoNCWW8<8((L=WEk%YlYu+~oX`bU z6ZuOBU&f(Rw8d6dSKTzL#0&+3)7cYv-{#YCL=G`r+Mx9Ti`6V|Ki&SrQ$vC`Pix(I z*Q+zhd3)1e#$wl}$IU%=h{aGuYng3H;+`oNY7djg06a79hCz-+@`161T@U^Jk2e%H zOny{5&n()=WMrlk{a1-g2Y0}u4*?6Xx;5LMRc&VLQ$aVyo~^>BeI;aA3x1lOSdXhT zaEgr)`9ikk?|?z?@}Fu7@slMN&k{8Mt^dPIo-T)c*<^MIzE1LTn5g7v;Jg&;ccYc< z`>V8W6^PtFMP64RjfB9XkWF7vv;-5K`H-{OZHL-O?Vg&7N0+x>s^h7cAVon@2KTDs zg@CILjkFcj7p!X3DP?zEqQxg|xWHs=yr&%+O!>KYvI!hLTG(36=}{)Jy<>IXp-C%$ zP8F`IeZgCb>=1@{D6w^wu}2$5jyO2f4y|a` z>S|1CE0s8;pv~|*jA;DMlfz2nW*@2C@hNcQfi53*|M+0X2wl=q1MBQ6rvf(_B@ag^ zW1NSVSGG7O&N@2%mC?vIQ%j~D)2EKfK(2AB(JAb9csh*#hssmzeGyOFlDfm+iiIw8 z=kB3SP7r|raDM=`Fqq8HIt?Pv*!&AyLV3)S4=F8((-#kV!J*S{MFv)2QVj;Ug`ACr$g z$gTgPJ@)&gH*4HuL&d+SSfgXWri3{rab-HLZ2`5vI-AL)IhYfn!{fOr#FtLP8kVyi zvMrKnG3k#pHcnZz#%+xu={kY&$e9P-W*Gw7Q@02w_z$eRe6`iJ^r1#%V%hTxWYroB zCsU>zA&VPMRD#x@hUqUCeIs#3UN!KhYUQ3;vG<=0CkWD?nm&DSwfT;d^u_(msJXhe z;D`MZPv&u-5M0)BkJNEM5>??w9dhH}zML$^?s|J+|Cu)uk*`kp+850@Qpa6E#&qdu zsFZ;#0_8hR@p`e(iC{y^Y6U<@XwjD`A#?tBzpm~-sb5bce^)=4cto89OzN*(+0cBjk7 zsq(zj-;3J3e)hrIN)iZV zVOEexD<@Bny@BQE47w$@RaxFGW%Ert_lH&q(i~2Q+~(V|F@j{36%^sUpzDoHt9sMG z>$r4px!J-f7c8gksXg_BZ zL{nBqweR1j18tj%Y z<8VhZG)P59yfN(b*82))q*>x-sQd_I@fVund4#m-h$k7dd-2;+PD)Nj4!RsdBkmnn zmD~;dy4JlE-;?%ax<%yVW1)SFvhX7ld>`~|jxp$Np&t$_wHS>*g@c}nZF7C9;TnJ&KkE_QN;w7)uOh!FFi z0K-0-YAh)3?pS_XGV_;tR7OdL)-xeSF_dZS>8%7la$o&%44v`Ju8j#n%iZPTHndqtrK`ZrQJ07U(!^@V9RyFZk5iy6RRUG z`5SbiJ(e6{)OCTcA%iriW}#1#zrXYK0*g{SuB z6@J+Qih6gSecm7ynP}zEYDq@3h=&2yfb0}T`pFRUGNJX6AB;TK-mKdl)nKc6(?w=r zd+OP@Qx$Z{>JjockUA<)=G4$Xv)D+}XQjTg(`gG166S#gK0Uevv+>^vy}m zs}|ni&Rx7Lf1uU8VBhv2!+*_*>Ip%9Fk?S*{2Q;dLeVMaG<7$T>cpe!7QCKT|N0R| zgA!M@$A0GJK!Y2-X5N4CWVeh=3YwQ_~Vg??PP0bO_HUL{Yv!OuZEXScrTr) zE}{~6Y_6)gfpFQsCPVznUzWwBqW^+T!J1jy`gPdFHp{Cfe-=LWuOA_fkFg1e(oSxu z>}<@RQa-B&{64E*)Xm%SFDzO0i!NRilo^bMm!C#`=;c{VTFDR%opl>9e$<8 zJ;1&wj?nXo9_B}Jkkc8NEz(Sr!t-_m5Vx@72DmdZ!xzub>^(`GLVN6FS|ig zs%1LjpEU1A@57hpu{*CH)6#O)HOCJp9K6KSo}Zzna(YR-p8bW$RZW)d^G&s{oF6}$ zoJBxH^OVxF;j8tAvwL5aiuS(w7Pfu-K(bVtbQyp2{I)q_-wD-}Umk*2mre3nFp~FU z+;|yss|A3;h*FD)Vwu&v5u4n$NghyrE4+DKWOB zmDNqD!I)=Gc&caKg_Vi&iATDlv}GEOUkn?EBz!A29^lWU*&ri`!TW7xv^6WIoK5iX zW3NjiPBAOi4!BWT88O9)V9X%y*ym^WE*gm?ExD+eeAwMnD@|^kINaMxQ4fS>9~G2) zQ*pqcz3|~Zv$wGe*IlCgcKGju4vN?gKr_cc{CENxNid;L(WAltHYwlDe4 z_)nTrKT3>um6L<4H%JL0nZ&UTA-PkW_TJ*ue8=Y%#Un8F&N>BB^(Pz9&|Q3lhZ-eH z600!CRw5;$J|nuvzGv;Hb6YZ(4rc8kg+Oa)SK{-fQef<>?`z&px+`j?GkD5D*6KlFk$t)vRXm0{eLyD!? z)yf}Z&5b{p=d98=uSlm!Mv#gBawRwYA)s+PB;O&Q9pAp)rE}LlD9a8Xx;*#b@yp9i z*OT!#l#}dD6hTnE9;xk&@plXuZF!czH%X4Q-?gu?-Aq6J7d3O}aEM+NZXZG(7!4&g zg5MungiSU%)p&U{^J()8i_(Xe)U@QKE|G5x6d|&$7om;N`@7(7yXimgm2s{=nBBKc zbKk@2-A^wa+Tce@v$L|to0O0x8Vnh)_@{;mGO5g+9+%h7p@V)or${q z5_^p-Gs2_HX?2TE@Lr3vn>GEH#`+qLmG`T2NZ$vAL;VKr@G3z1=YqxTF6&+MU1kYi zfV)^v7 zs%x+JGmcf<5_hMyx<`F0V8BsnviOlr7l$3p`4Z2R`a6DOOVDiPB3?#mL<)he zojt^$u!{{Vr^jV|n_PZoi1j^l@;tYPn>`sNIC(>Yo1Kj#H1zO=+7llvz%Y&ViqpBP zm6^NyjJax_ML%;?X8 z8uTn!WV+DGn}9?|JdBe56dhMt<_*KOKe6k02FmJx@an-FJo!sFB`#g5(=n5D1VH;8OZ^$?X& ze#CcyakP&IGnoch$8Fxk<}-!MgdjiQ^mLGWyYAO;*6qC>sVp#Q?) z4d1RyydQg?dkk{52A*VnhaLOPFqodYP6UC`YGac2Gx_csuXt23YqsHJwfNW8TbxN} z04y+47jSAx{0zrEezRUhC>Jtzdo#dAjXGJP(>D-$u#R!%k#1XQ?mzYyjy2aUau_lni7JyDTL1j z`b@(~Ld7Wh#SdCJ#yl^>jd?`z^2k0DXE{W(z0$r$R+ux# zDu){G?%?AH9&-<0AQA-?4v6Z3xCzKh*~FH2%L=(l6@Qv)F}G#XZD}|0)r=Tb&=bJJ z3UA)WE&%RnPfUDvaEQXI-jpi+{9w)4sIO1oJtLj!1ji2`5X&J0A~fga53{dN-bL0& zaUSlBGoJMOBpKVJ5cmO#GRM%h9*E_zzJ3_Zs=t3xRjxco5D)B1b;9-q%WX7$Kcn2&>6(q4CaKbYY_GNT+_((y!q4a^?N7HAw8ZH z1RXZGho30fgW}yoSHl*GjGQ`>GcDozlcQEAC%=41J^?aBaZMeXBjFX8uvf2pPNlJY zxTr9VRaHrD@NVH|op9<2&~REHDsz(pUI1S*=kV}1-x9M)-jn8dC?xbxFSB!D&moN= zWaxrci%TH*aNwD+H#u1|*$zbxJqVn!YZGT!%?9yO_Obb({3pmIh0hKpki*S^*G?AH zPg_1*dvE>bSF5yDHRPDolRHVb9948ocq&i@f`>mkpUFP0pt*WuG*Le#|eP#1yjY>Fn=3>0cg|*<9%^n@R~pIBySU&}Q&J4^+n!78Z6g zH+kt|f&JGmHF4Lt`rP6S)2inuLC_Qxg@bX$30+w>P}PC$%`r3;-_|Q~<(z`<>@*II znTxzr7{?PC1`xCcvI_|MAXd78w7&NCS99LyF5X{1a`o-vAYE;0>2VRjAMAiHpuLql zoU7QBJ2Nhx+W+RQjN8Gim*dtoSuGZ z(mr+2V{`wTA2&qA`!niHdMFsxD-q8-CB+2pTVGbl+H!8g_rgY@Q&+fe%{AOWjfa9c zcyLnNrx+K|7EqQ`vc?3TwFs0vSgrfq^Gk+*x-Qpy%+ZxVx>=$7ge>oaKJ4hoq=$Mi ziDHLLz3-o{?`m6U&J<&{hI{EoIu0@^VXMMbk2fHW8u+Rj(An0SYPG5EK+;j+gw49- zHv#ceUvRuQd7}251lBY+)77w+56aN+G zF`I?-0VAgafS~)7C(7W14+2+T;YDGB{G8I(id&AV)zogiX8O}-wfIT$vt|IH049p4 zp}P%gmmvglWu;BwF((OD)76z8(@e^^lJxxosR`n;2x0^9m`Tyg_}LQ9%${VeX{I8( zAYzl`cimT9`=|W_LpZ)fA_fhXP2ThR)QywV8r~HZot1D$ zkOYuNlV@1asvkc1`qk@Yzc7E`9q-I1<3x=^y4!<~6q3tWFRV^<8$2B0dn&wcA@4h= zlbvykLP3fLS~t|82b5oAV4`#1^SqG6m7Q3t^L;k&oN6CW^GqG_2?(06H37o4eovn$ zzk_aS3XX}reQeyhYk%L|OFB1zi^m&u4KkUPOlp7}W5|QY94zItx1{QuUJ$d2i@Kte z$h3`#)H+BM{gW6=OFVU(lh^v1``e;j$`W#-CH#*hM@W-|#85kw{Mree;PEi&dMNm3`PA<^;K}kR@r?D@))_N7%B?hi$iV-`j8W*CRyPi})NWC0f6r`~` zobGjg?G=0V@FPz)JAN(G;)+f$B4^@+m$O6W0$f@6Cct8!B`NNc$k}G8skWj(`*iZk z(IvdpV59|EL$(VXZ=fezOQB4BR1tz@8S)ja*fe?5j`Y?tjoSmWXBY*0GJ@#US7bg8 zfWi5PPMu)KQVX4kR*&}!{locR$v3i{+^#$h33N5YjYTj`(5;?*cRz`)FMM;ItG4}n zNX;zE*}FKYa|hSf=-DWEO73v$>-&M64YvHNI&YoZX_Wo@K`$A@CfO2k4+%|*${De$ zOBAaTeGxKPY4GG!NV>1lh5Hv6r{w??rNm0W=Yyz8&$;%U=6xR2Ucc@~bL^J9Lhk!_ zNn?)?KzfTvzxNKKn>!aQH^^Ss?ImTE)#~~pw#t_A=ZTOV=^=%7&5&G=O${(k2#WY% zSdo1EZdjen=@91TrGH}ZO9Pl);Isn0R#xCtCg*L1!KtgqwPxYe{+mi8BcI|QHfRp&aWF~%3SwKN zxI&^W@b7~9L3kROUv)obx4$Nx;Xc=>)I_3K%&ThLBjGwJ5ey_Mtf5d-^6Iv%yLBmR zxG#KI_u%0mW_WQ2=_VlU2zh1PN+D7J?{}1B1YG9M_PH)qHP>~)Kwj$tF~*5OLis=P zz(S|J6#TZziaWHi@~YpG)q|1?kCRFWDF=Ba;r&{Hg@6iUDJ@JuLUo`&(lJ{gKQBVa zro^HVyf} z{N}KQ<*`vQQ&R>i{6lZNHsAjA{|NiiK&rO)|7}QRC=Dc$vC%vanNmq5NrX`5c|OLZ zB0{Ai5vi0RLy;6RCQ`{vh{&wO6_qIRUu*Auj(ybk_rEXhy)X91T6>?hp5gOM^|%kS zK(K%gH83X?_^IS^_QE_TJD#<4v2}8Ux?8PF(EIjD56^3M2KxY|rl3s?+Jgi9KRAA9 zx3&BGFLFuu&ZGq@yq z!8(8;m(TuK?c7enZ$(UguUF$bjS~O-iT*)w<5l~3>!P1*Lp|5h7o*VqinCf%Mj+p&Pd=yAgyleuz86bnO{%wdl3!^Nz z!|^@4&W4Z*TkGzOD3uKpU}(ZPwBccyFQg*ufwi-SXWPuQ60Q1{6OXP2x0_bFihHXQ zFlb^7pv0}gQ6k?Wfzm8m8udGVDGgeCZ8DgDu#h}N2@urWCzl_C=5nAL3^KK~Z9XdL zbn?$#p=$@6uFOmwq0=KkJfT|wv?r|PfWI-hlppNxJl~V0dsSU)rn2|7&FQPs^0z;( z{2S@&YD39~de*#ubN+Zw@`TDo=k9q1l0nqG5E%i=qrqz|90xEK6?iCs7bjODNtWt}F6tc$&H zk82SMUl}bG$7ND>-F9x;JdsOj0ogrW%uKholtduZ+r?L;>>9~ByWD;4E2kx$*&`u; zM$N5wmVRFLPYAFbU~gg($hg7L4fGyLu7y?1;?-AzS3En$bLZBvYc~G`f}R(EW`jn` z!pB06t88uGOMCM9F=G{nGcR&f6dGm7DvSEtED|0Z{GxBY*0sD!4qx@iI`$V!^zQb! zf3Avm<$-Q*i|46Jm#(qdKd~?B5umf-pi66oMkU!CL|@tm~7Lap|i# zdhU&i!Is#Zf5HI&jQY&DzK?BYEmpLzO=|4k_dw`b!5C{w-x~}E0(OvVAP+^vTZJKA ztxesktFxvG^BYq4eey|b{~SvUZK(7t<+85GFe#RV^zdYw__l2j{e65zXO=@T?UBx0KJs?3yiV}T0ELM597pQ_jXucE zyztuTV3(J&QGeOnHsQiv=D!d?Fq1igi9?KAOn8py+gQ22U)$u9vRr-x&J2=w1ehl9 zg~%lj(3yYfCZ|#_072+u9l#H{6cXEZ(FxvB_0+eujL1bhD*^-{R!2F@IsR1N#= zlaOt6%r5dRwDG*2H;27nT)3S1zIzEZ3N?4(=L4=0knQL_Lhg4owbRTogr)s1R5Yex zDcBvcVS)+X z8fiZdZ?E#*ofq_7sg}Z$x2qgdjXVgkA)@5zqax}6B+G4JM2lUV6P_2i|(kwLBfk3%CS_x%!` z49*jL*y*_SIrT*#r<|eXakwMX>OY|B@^PJB`u4bYYeTEUk=&Xxs)aBKjaC#QVThn@ z&Y^Ham|i9}!ABg@qzuP{Kfw|n)*rIB&*kBVEg*5 z1Cf!@uL^CQ_*>I0>UgQ%0K-r^Tx0qjkj=;zS;b+dYitkt3r5m{hBj~>?Dp!UMnXYr z15QSTt5~qmD^W)J;k4o@UT>KzEnBFiE97DUyCbrYSBgxscWw;7E|z)z?D}99&D7>Z z*3T{YUkAKAEaZj_B7j&xd0ccdA8vYV?yKuR%6o!)uEmfx=hag8Q*@Ef$w(MQLnS5Z z6XDHT(6Tq=XW^bh9g(Qc`N-9q+iDkhJP zNyLy}zz0N&p(zRv3(i@m+HUsx>}>K)=)W(m^BQ) zE2OLyB&DpaY!GgG_RTEz4@nVm*Cm@egMOK3e@i05(MG{oMgkz;fN-<`DHhRbdsVq@ zUP|nY4qMZ>0@-rAwEz!Gql1+Idk6??;&($=1Rdv3jW?$beb#>C_w@L3ozqf6;sr18 zs4xly^2(Xgmkdw3KrJ)4VQEQZW7)MJnq`^GAG3N@S$1A^UZqtbMc6C~2SE(9+X^tB zu=rW22_NU5ng?aPsj&qiA}@EBc9Q3w0=E&9_6s>76fs*FnE5e*&skHdc=^cr3PD-L zCDwQx1Uw8mL15*g))yQ~0_{88cvLg2)SdR-lBpZZ_9BXZt}Qv}Y$(1(G7dU56d{f2 zY3wcqN*O%!e_pW=!x%1texU}1cQ>|@|3#;lD#h3-hFgX@7KkN9t2W;?oE z87HR~UI?ULfQWz{@cPl+VyCz?$<_7tfs}lg{OJ;-cqF;!Rhl_vAv}bKTOR<9(Iw&I z#Vc7Nxt@!#hQ#l4*7)Vp!tiA=2KxVK?-XE!L3@nilY@M;z9^Ahmc|u5;y00QZ)I5z z+_eTfMe9qUWC3D{;@2#+6&rf$<7D=A&)xlbYi7SN=W`8cvh5}>?BNX4>&aR1AiQJ) zx(`7r9<;W0!fUX;#ZGz*e!RSTuzWNl!{g?E@0Ki~ye!1yyd{)S;Kx9-sTAubN{)3O zIbC#O%~PJ}k;nU@cua{);t)K$3DL7jv5P#MIsQk6%dL1{_5FgCS_#C*F?tjJ?D+Ob z$gRVi`ZA{`FFtS5+I;DWvUh+(4#xrnM6u9g|JM&E>#*lcMteX%lV(zqb#JJkp#~lOHcF!;UF)NI0FOP;CYx~ z4*W^jMF@*D3Ftn_t=sUrPr&Gw+r>GZZFM>YU5-Vjz2C`Anf{&2_SKynQmdOg#?FIn5VnqoY7QJC znBPtAYNv5SDPCpb`KfA8+sBC|AAb$e3*nhB3joYSBeQWx+VvPM1N{S;4^uPrb~+js z4bp1kydQ*6x=3N49G4r0s`4Y**Q_cxFFVZZYjOL#die^&g?(X@Hvw5A2}cY;9e{9F z2%m8&mrT!m{tNO)>F9CUQe=Wta?=DCQ+_zBOW?HACLNgOpHP`z18`9a^Wq1P@U zB5#ZyG}+1iwJYp%q51Qb5+BM>ZJlwk;}FPA%z1QFj>av0;dzvB!nk9IqHIo=m_7a{(M*vekFPXyzg$S5R_PfPIIW6q!?%U0eL(bLjs_m{ zv9m9Z6q~buxQ02nuH}xt=+j^OD;5A)h)M) zKE<-?PMP{#KTW~Ox23qB1ebx@7@T@w$^+US3{?RJk2CV^p-yfvyx*_G7nSPx2FWxAPWExcCrE+0`wuK=8R}A zPi?5&bkg&n#Iko=8@_)SQaQZvCfL5n5nl|^&vRcbM^fBFEL1-0UVRmf!6&|5ixDJX z45FMQ=;TL27%#p#o`6Iz`6!gZUNv%EF#~bHwG-SIv`9dvGia^`tBIiz}N|D5yFPjWK$ig0whRzicb5OjimajY6p&+yAMd8P{!Rp zunvS_xgu~;7`8+0P#=W8+QaQf6KmBY{~J}$-h0Sh^cFFoS`58m0E(p$fka~FZyaoq zODzSAbgjnSG+%}&30dJ58lE%>#L>t)GV<(mzkk=O?>m=x%qPn5Wv%VT zwGtUaw!0TXG0*}>Rv+*r%WwbunYHKvJbYB-2OB4=3+o0gi4SXCoTXHyq9)vEDYHI6f)84e(WBJN0 z0zza2_)1`E0B&dE0<6B+BU6PpKl`Eg5y!99t_QA~N|E0m%*BC(3Le#{kc zhL;l!ZG--!AS8>dQW0$$&8oS0|ColoKw`@6)whrPF2aDH!WvCH?C6gB!502p$Ml$H znPQpFre{kY|M=Il3&{$XzMJLp-;#@J9QIolTQ2m5>=xNvaQu1mu?o#zJQ9RWN(Vn6)}{#eLMY!1v1+U^4f7MeE0eB~ z__N}L+!P~ep1ez-dEu3TM-zNHNSUUm7i#v|Fr8UuvvL0!aRc{_27f5;?`h|13)-)M zl~C7)aQH?2Y|Kv9z8c-f8T#au)04cK?)!JiYb>B3^GC6(F)6@al+nHXq~Y;(Tbs2_ z%dc1FuD6W+3rJQk_|Ou>rPn5>`&ngZi1o-XK|x_7>A?T|{sLj{2A0{5_iYAIMaNwS zk%5}`534%^0=Fyqd93?XJpLDyJRAjFJS<3yu*%4W?7z;{7c^!r_~e&xj%UydJT8qT z$bwlUz%sT5{vM$NAR-zhT=L1PVY#f&dv=BZH=ggTeRB9>u!>AlQb8W}5=ZS%%ne6k zPwl@Ov~qZvhjaQ+#)hC(B_luZh#FW3^c@0M4f5jP$HJ4yq%M8`SYjDBBH?tHYm(Y&e3jA58H9 z3EcRsBGiEb13E8Nk_SGnY6`JX&n0}Z|`5e+pv_{G7?qU4yiXrz#_Px*0+ z?h~=EbJk5c(5jMeJU}^tIx}+9EC8|s{Y_zz4X-dobnIfT^6(wE2pr!1(3sxN%Gc}@ z)54Mv42wu$$Q5RF!%ir`4M0}zqBE4ZIJmd`ZPI)9{;;Xg>u2!<5BQo8g|;??%lRT1 zFU>WLKlxoat9Z@J+v}!CtDqP82g4o)If=Glb`C5(0;U)k(-;-LP40hC73TW$MgH%G?vr7M zuDY&fa{EqP14sCPX;^5j8tkH+x=q)Wxu$YL=Ydh@e^(=0MZLsuLK*rWR(Qk*lF%fi z{ z={HXPVSgM2;5?v}xh>Luy`q- zefMa}MfGnZUaALMniuv1f;M1e7?7#pJONW3H7FW%=dEfD5B*Sf5N;3d>xkrun3DWA z0*#hq)b?%-flu~((k9PdE6#3=x6NU&pEv5HB`? zkjsqgTh6uJ*5n_M)vIh(av(nJD=7jxpIE!0&4d=*R2L?YpvH5zs&|JXjg_pKIN1w1Yd6G-7bg$e;2S94pi zCYpB2mCDC|s$@uP72PJzciDkqljcgEv6H{y=pXdjHDIfCRU5b+tm8Zm?b~(-D=aRsH2zWHfsG z+Gyfg;+h^Fa0WA;`-^=~vzD9riC_ng`zfbnx0!XBF0PQ_!2`i24x)|>8s8J0BTr*YiMmw zA}2@gyyYVybt{Ku$R*gDg^clc<>Y(b%QWEsfM%V(Hd*ltbme*b=>G4`+XDFCIAx?$C zgT3hBUr5p*E(Xax!sCzJm2Zh4MjV2+MlKkqgw9YU}VIQE^O25txkJWOCqCav%bftXyMiy_F>4a0m(y~ z$#$4bP(@*ttlI(Ih65K?-u5>7#uOP%wO5?Fg=9F$clTtRYG?S?TG~9=^R}4x~8Vi_|E)3nY(md)| zP1_H8WsxwI;Fap8IN5=}5{5(`ez}rZl`+g6Ejp3G#(8mk8O)UgX937RU}=HqWB%cr=V-aEo$xd~ z#^sNwPemVV_)N9J0>l?a{?W8EYeZ{&`%7Q$(v5;QGcN2ir~g?OeH-^G7q4Uks711S z?K!65vdmzUxZ2F>p!sOc(u!fVeN>BKT~A=>6^cM$gMvCp;L7we)65=jvDM8NEo`El zKeXY{CVI_(;K+&;7tts3nnu|TZN&pt&Q8vKF<;f>e0l>F3fNmP76SVqBWnsy?OV~V zW%I=UTw#ijb2)v4yC?BsIDiU_27m?hQ01Tw7YW&5zH|KtrV!1;OaV=4QZ@~AiJa{J z1BIC>2wQu~N|_YCu0y(NZST(r*_ko zxBzS$4YLy|`3GSeG_#kpSa}DmKA&9^uKQ=^sf6BQ0L2bOLm}W;lMw!B8KxWAq)4IL zU%hFsd}c5lSwR$psFbD9$9)0Gc}A(wt%y~oEAG_=?3*)+}}qgRalytOYN z#9^2PS|`XC##c`xSuQlr){a1B9yf8IMR4WBqcT;U<4;*EW z)_qu6!L3oyO$376QedJ1k%pqMfey&=KIEPQRC!<}E6_DS4>y|PXbHw?B6>B- zU4pB-*B!aLzQCY)nM@*4OJmRD8C~RLSY%&;&8t(J)MeiPyl2Rvr|{mxb~c%~CR_y0 zuvl<*(vF=Cm1zm$-|=udDY;_p)0Jl0q{Rq(7f8ckKP7sHD(9WgJN$VpdoQ@oeC`~( z?VFqe#l;{<<@zDC@BVyR$}5ohy!c#Rmdmn>mvYN(7dvh{L9yz3HKDnD#_ zZ2Gp$@QdMnb$L3PRH_wFQVZs#pq~Mhv^gUi&9kcxOV?kXOrJ{VxadFs%Fz_(kkC~Y zcXM=ts)E%D$atU(@v1B*IgW@pRK zr5yFOd^!~cfmb}(7!>A?b=gxr4)_re%BI-3l395k*JSsVJ^g&MuX8Z1qqBLvF4glu zq@#^1zzl?G*_u%fK4I+<>_Vznj^p>V$^9_@{DKj%#Apj)5Sc!gZBi#shq7pMFk^I zm?0a+c+w^EDPlg?iN>sY%cVKa%B1CZmMj-25 zK5cX#QFm87_9y1`4(2Ucbdy990z(2r31)J^FN%b(S(apcF>Yvem%wP&TjwLQ7WqUk z9|NE9Zd>cZQTP8c*LEhkbvGmnizg~7DSWAzb^LeFWM%hRI;pCMCy8ekE%3&7 z1TPW^89Xoh(WK#%ZA0wAJQj|=1-VTXs_?-lgtj92;IYW$lsy|bqBhOq zA$Q>xb7xLHj|AZ?ID?MVz$1qm%ohWK7?X}*NZ~45UeawDl+waMD2NRNL)}}8d zLh(WfoR-G2#B7Gn>(KT*Q);8XAi1$1B#(*YiWA4!PVs6=NYo+Eq<=Q`$jA$iAKmT~ z_-c%seU;;7s=p5nj79f0(Pi~cWG9oypO;mAbrWpuhiX~eh#0&)i|QZ%W7{~?|Hetf zOr}O{9p~sTc?ar(6%D9hct;yllVhwr?w#GYx{_yG!XCZR|@^9kg(_q z|FIwuvSYIJr=7Y$vkuGAv2li8TIWl}`Gn_j3LJOi5Ych^*ghuRJdvqiDqlHW4u;q4 zrv1m$u9#Q>B!J#=`R9>wK0icT6hD1yI{eV*@ksjL0ATBQTZ1}1P%m$d+`Bsvu4}^H znbkTS@}k{$bNbtp1#3eu$5O`%M16;8F zmhiP>pYAaW^J>lM5`SAC$2&Ow?BxZbS_FJE%mJlDi%3XLKKn!~$Go)&7KN(V6Ut?R4F|kyW&J405zvxKE{2ZCPVs zPM0MAJCVw?-9##pqQY@w7`za=()@$Y(0u#hrbgY915Yy&jjrFZ!z)Mdl?a+2({__| z%txh?)V+B(pS2hH#(H}6;3}dA2#gs(JyP7R3c4L5+)H9RE`PUppYF>#@yJq`_|u>j z%qYo@Q#=%EfbPn>jP#Mj7_U_Yi~<{_)+W?95l=aszzW`hV$6_`*IEy(2SQGA_pHAy zP_ z*z1$I`OdYMUcdM=<6iLh5+LQm&eaVKEEB#uIUWOpstglv-uvsyZMkHz|2U7=>y|HD z-V%jA=BuOjHmW0v9yJ(iFL6|sdm8n@h_o^$CrrPNY>(GSwOqYdH}@+C=e!%MIn_B`03&_&h4H-R zcO0V3Y;>Mye4lyOtwJPwfh?ttnTg}dBqpUzF`%PW>_L(EXnDcItv#2!9jNz5jg!D} zCEgSNacj*KuM_9BwkgQ4VYHFQ*Ez4;AkS=6(pm)9Y#$B-X$4C6%enCb-=dwsyyMjN++1RoOU-TC=f+eOYt#~DuT zbjg-u|j z3s(eaN&_72r2M+IW3!pIUg60)U$k>=G$SNSdVo%!| zPVpC9+at96{hNlAXK4UGeW0uOTcRX%pa{mszVQZ-lWQi1gv zM!_Fu+o;w8`~+4Nj>aqTa(85{-OF2nJ?^sKV@>>Y$AZ`HdPDm47YzKIpa=)VAwX^l z&^L$GublUe5q;xbpM6Z@#!Pg-;DxEbFo1pc@w7t@T4psGM>*VcNEYrkoVS1ZpkUQL zs%KI52#RAo9R&2V!&!94=T;?ao33jFwCh^ha=xS8n<+{p#XUgRMl`L7Ft`k1w5huD zYIE$y&_`u=rvA%D?#VPcQY{CL7bKx6a#n>DuCin4=RL3PEeq=XeDrg#h{{iD09N~l za^gs*ibi4nW`_P1Bd<=~JkHR+y5QN;MNb2^6)IaVH!G9?0LPGo)Z{+ZU~cf$NRoEa z7P_x-UG%{QQ4MO4mj?*fksG3;UmuAY`57@b9Et=zJ8$tIeE-K& z98MNgAg~`0)CE}&xR-_8&$v`-;C;Zkp(i!?yMN+H+pR(V z>%hm!5ZYa@)|}t-wCmT+?_YvTWUr}JJpt_jxDG}*4&zWjqd zF^G@b^w8k|IjN|R4>Jr#eG=lIZWm7E-8{S9*6ZP^YhHq}#HC;{6lyI|$f7lmb0Vg4 z>kiL^T1NWPL@UjDtS5TjXt4r3fnZCms?YAzykGUlt~QQ^YhT~Knml@<`A!aggHWEE zIUoU`1C5>7Uq@mX&UZ#W7^HQO-lbxN6zo*7B!UUyqVIx^zlDAbxKA#Oh=mrrleZ^@n9ljiqlG`%-T$?D$#aO2G#K`E*fkQHuK+0z!;;OH6oYKb-Kv3+N_#6PH(=YmTBkmVx|8DfIp5k zvO`bt7$0}<&#hmDdZ*>5ogcej9{M+e5+QhTtM_1(i01vE(zMp06q6e#vPs0FOn3{_ z4u|$6@*%ga<6&9i_uIc685sWK-TUCvfvm;LEH*u$_Lq}Zkdu%@4tL7hl)7sU^UAUx zFtop7-bNQ$NCii)4M_3@89C(U7f2G*X7RPBfAd_Etx#1@`INAy@&_@vNf|;0FDX$b z^xKP7?b16dd+e3#TK+>38iAuKam2;QBj>OhLl#>h>fA;vh^dqDGxbyFb z`As-~i*_^!?7dp0>_|$!`6G7eHKwJnm~P|}a{(xi;!$(_4lJYbJ%4mvMQP3YOI+u# zsqAOgCvi}12_=Xr?g)_mpvy6u(M}3_wW~$)j_$t5fjd7ew~sBqdTi6*NQ@jn-Xx^6 zv?pxh2srSf+p2C=K!&~?(f-CahZfvocXLC5)g%AcyEE<17T*^1T(_bjFPz9V0rwbm z+XSHuP`(6yOnD1yIYiM?FTAO@M_*CZch>)NSBv0WFCW#0@HzuR*aWj66`76o82S4O zl0J5|T^J_OzO=q|o(QzF2PP6OKo`CQl=uiOeSJ}z$cE2%6xBK0e!pqt4HzO)o}L&K zJW7I{@(Py;lwLh^MYO`~UU;~LZ0k?1N4!)EfeFVVc!N>`mH+&aj{9ih$y9yUfZ617 zwIwbwLqyt%%nSmx2V|TrP^~0n{kiu4c=UYTcsq-pGH2x1%1Fw35LW^PnP{g$NKpWh zi1)lR6;!@tFFzwYN;0Z$Sv5W8-m>QDA`~S|NkXoRepVm7!f4#fa3TIx<)$x8*A%Hv zGgyQCF2K5gjS0v(u}F`0Nw>y^>a~A! zR}hISH-Rqx!WM>}uq^KwVm=9(pa35aD{%!H1*YH&3w>gbPLSUBV`Rf0bH>?aTl6}K zR0SD^rVKz^9b#H6?h9mA8#*2+i0ke z!+D{aDW&U874ORCWeGSxadK5NQRDC0a4WsNyh2$kBC$_v%FX8S2N; zw*VIiRE43|3uwb+k6H`Jd*=|}51QL)QhoOf?kiYTy7R>t#gqfD18RIgS7_At03QS0 zE}Ar-@bj+R_9;Q;O|u)0?bMn-S)Fv=m#`#Q#2WTeBKyA`$<3+`+mP)O5{I0AhkPEN zcl0+PJ`PfztleBK?XWCX1qmenHmz>wgtC7JVsBt~Q0Ugm@ZA)<2W$(gM}a~CWv)<% z03L2$K@Qbbl{y(M>u0b0_WXFf`|?W4CdOFrd)O}=OW#C&y`ZLzCc4q93l%K z<{n@e$^x*j@wM2+96>`5#qE*PbVqOM9&I~Jy%uKCLdux{Tkd(PR8OICOZk&LR{DqE zg8EAuDVH2u54QuQWf0PeGLOK*M5Qk$>+br#pJxwoQcoo=A%&f2Sj0wHp))`{aoG{} zeKBqdBuV>t^Iq|-Y1AkP0QRCM!p&=Xy^H@AOQG^1+q7=?xTW+t6E;X@%CykZn;x+A;}iUtmb*f)3#H~GlP>vnx-x&CV zq`1D6YxE6;rGS4~7Rxe6U$h|P_ID$Ja5{xbO*^{c&Y^QhD^C;uuH*jIpb`+#Lb_? zn`wc97D>QX!S}@n);aPH zgYXtHgNJ@4#I3>9B0Tp3BNLE*tx9jfyZ;G4X>FC-eN&zBmx?`wu!3vg6Imp|$%dgD z1*D|@vM;|dbFJz=@8`B-A^R1>bBWj3QU+9xIDxD>AUH9bQtM7cSOIfXkJ#Z?-}Nt5 zu01U?>qOWSIxPb&7=g+eV<>=B$81C=xdSwb@-JU9aD^1#O8Rfe+2ZpdA{K}-5W|Af z9PiDAExBLg)QFEdo8j4ChjrhV6@9hd7Zm+37)Y!F`3TT<0g4L>Q)J@FZ1fwGstft5 z!TFn)ba#CfyG}98!RLT(xh)Xx;K#Lt-7BEjhJmK+_Rz_eAs+kp*}NSxZ5n$vk*@6{ zE(mld-oXzytxz?Ll&I>OT3Pk2A6P@5S|sz!jHU0xC>4z2|6(d1`zS9w4qVKz;X#!8 zW7LbUFMZ(NlU`1Rg5B8wfRd(!!F*Mh=#0GAZ*1m&+qJ|tXUE**>Wfq`XV4@A$^bB5 z7(4TbVpxH;{tg<=^fTeNY?&VV+$@k?@;3y$8!$7WVt}oY5be9F85RfmVz`?2MDl-m z--skXF!{egAZ-z$=MSq?7rDLL;3S*>yS&EG!q+#5HyE0H;P0co2FR-+cUMX#zizqB zd^os{&!tgA&*thq&cD||las8iv6Om|PX%AT_^~*csb{CmY%Tx1o=yMF-w;#-!Cif7 zcpTYm`?Q*^I{Ds(bQvR68a@i^1rGzZD>UyCWQBrkeEif3Rof4E-5D;kc&T)!KB6Il z(b|q;D^qabM&VzX%d7sKhWyW)r_b%bvEsOZK`bls{jXht$3d2!n;m|sdiV=vDsw}v zvTUdQL~9=1TPLh||1XRbFh}8gY`eEU#5Uo@5uuUpO4n6#1r;RI1)~jp53qNjb-@M1 zIY}hOfrVY=?OxN_=gC5k$KGUaTP;ViS~F5MLV=ACS^OVA-Zq<}5+{tt>r2iJo*C?CL- z7||74r-LqcyCEGhs2ECBSg$Y&EuFIl8<{_M+#?+X!u zJLby+54?$q82nAV-*9j%=$H=V4@e(E8@-mNCOK4$igMlg&ux6ay4TXohr^c$FJuM! z~Q1!C!3_<=DgSn)w)+vv4Ux79 zlIGw9L$uE3cflr7Cwoi2yr?Ivg|)o~1~MEM1JorDZo?d9vnQXZejA=t>v^3Sc;?lc zxMf5H9Bu-dQP~5_n$kT8Nz`dK?=LVK4UFS+$Vm$pR@0tlBZ43Vt0*A+q&$9wp-VPr z8tfLBS19`ZF}!6W=K&D}+Ae_Vd$gw74#u%C!RG%-Y5&d8_8VCd<_VKD+h$Bz5ACHw z;ZhpN57@ha>KmF>cfQ{(RTy&6k=sE(>C@#suBJhYuxP?FdfcgymXb8uyHdV)uYR@W zf}@u3YXz+X3Irr7tI&U8QnB5$CVlvdZ&i<9@sm?4b9T>hI#E)x!H=@8| zz!!Fqv_=%y^OUH!pY;9xq&$2Zdy&+cFuvf$SnQy{Ln(!1CDFUiCf;8!eEHMSu_1L+ z218D_|NXo)!X&Q?CeF7n5vl$is<2^e-yN3V>x-X9KL*a_!EOKxeJ$H>c70Kl+`}-T zsgb(tq9v#EY*gew(Nv!@QD5W5k&g%M9Oi$qooF`T8&>V3aFy_vL#G&^*9)PER5HGq zB>9aY+cZOym0cx(L4_z?ut(9Rj3}3PZevuY0Mm_t+n=t}p7QLMlrW1TYCW`VDliE_ zEh?1DAZP&{$^8YPC1XgwL^YezcYcu{&W=C#zbC!~B(oNqC!7Vk{L(buotK_xit5_d z2eQ*HqlCWDR{$6wUL7&zq9BK;kG8)XRkGD~h}+c1|3g1pJ#@!0!XmbyLlT%&V}BAH zBG4v_*Z>Tn>5kq;udgs-_ty1B|@E`8wUC(dxOv?W`xTk5e3=FtA*Ok z&X;5)aM=6gys6zpN5sJNbaFreB_72QuK8wOmp5!$!n$iW|GC~dTwTZ8NDXnb1GXJ@ z4k(_2*l1II&Ors4(zVa6-Vao3@d^zR)sr2l1O?d^PLOs+^I*^oipxUZL}S+b`V3+i zq}}mlYFGN26XSN9Da0%IhW0LYpm{M2RiZ}$bdy0#dV4qoRL!pKdO0ceuq0RJaa{fm z-(~a@MoB`|=Lt^9sIE_%5zP`4n?b5nsH(uPz zZCzdd?AV#Rsk;gL#1Q1409_M%Kf0t7PUfi|;>FV@viv1WJ?-kXW(hdZ*B#D+!)A)u z0}%lXL=qy=9vSV{DSAcStj#UScGvw=Y`YqWAdm$I7-mW~Efj+!Bp~f>(df-Xej^_Z z=ge|qfB!fcN(uUccLICz#2O8QTZVo}lo|qx40(3`VA0SaryDYF*4R$i5Ay%E?=B=102I&5|26*#_yUc;%ALXx6ufbMqo6eUMF_z8>^irh0T5+7wtMzam2L`)?; z*AQO^tycl`5N?tV1FpMU*&^Ykdz+Apc0!TsEzMPbJ&sa*M2oE0Xym!7_U4XT>Pl0~ z=FVX9VFhj`E)33zOd$WK!56k+T@qJ<4Y)HHhdd&Ti6|@lF3dF zUfb~2vOaOGz8JP9z$^7<|1P2s#BiwHgZ1G@3T$k4sea^`J!mqLZFpKGMIdrZ!CzZL z0Sk%Fk54n{w-qye`$%q&wTr{%-_nI&)XcSR0u%MQCp ziDppV1iwI1@e;cE#z+WGobNITi0_m%yPp0#` zSX{8V=MdB4$7N(e$3ZVoDM>^$;y9DK(XIHldszv+v(EWmUk>;GucxID;c>>{5M||; zzXLU1M1*Sjz280X`+q$xjr$j9pKExt%`v zQ;PS~ojWbY+srF+|JT!iwX*j_v!u(FS*1;zv-c~v*wS5dX_Hk=7+Xz5!C?vL$OCE( ziK`Pyg!zK#{Faw?ISoJLoF-De`O~+pC$e-{+kU|B;o5;>8lPKklX*PV{nPUgtySF5 zou+eiCFKe0f>c-#y#Znc?fV6;vxg&6nZ0UX7H3VgY)9wZ#clc(>|UNk$Dgbm;ovxs z$B3O_WKC|eZ}CrcneA?cGVfMY$^KH@K&0cyAgU8DvgWtE#I2lh>k$i!rv4LF#iEQv zG7gD-y{U{=hLZCXamUdL$tm@QF zqaF92zyDTp)1+F}gH*IbubA*v2w(#DIdh)f^N&et&c>vYmHNitX9CoI5ltJao;l=( zQm_Rh3AuXFo%2BGWX+~r`7&h6SpIs}PhY}vZt^JY;sJ+E+JH&bVCL3+ZRec3=kKq+ zW*+8|dB)F!yMNM#h`_ovk<|$aNpp8!6TkY&$PnFZ|C_bON*~kL5UDtz5#itxsC6*8 zj($a1c|@o8?AIxggq??S+SY%4$fD60@@yd}BZ(g-FdG7lFj&Y~4Uya9Xs#9%5Yr*# zH`S;pd3;=xNJUY)tzxSpF+K6TJFfk>nHF{P)b_M$uSh#5A{T(^Y*gle0D+}1r&5runLDQPPu*UGh6YqKdtdKlSeo*D=OPsBS%&flSm#nqji%V-+S!Zs<%hF&IWKXM z_kQ#%gm`bU_Hp2<(ab{^7}ITcY8*2luCdrJZic$85shWn=Y#f6DN&|)vY zyj4n?Z7xSG_USKQ8O87B!5y|l7+TmR0?S6wlcoT=3GetN@2PtBv1Gyi$evG(=NQ^7 zh!mQKwJq8R5>t%W3vGV!^yQBott!3BKfL4P19WmO)wvTF0o{CniH~Ysm`R2Y=a%zD zl-CW-JXw zDS#?Eii+|!-0@CyjwVekHGg}(AJ1`%^xZ@i1tkM`M*{bY7C~aRx>8p7;l1pEV_H$k z%Rh+IT32buQwmCeiGuezri@lv=o_lj_b2w8TDjv8Yn#ZSUF8Eo@+QO>95qm07Abma zz46;&x_-ONsm+CX;M3M6Hqfde36?7`$AbWk>O`J(ZBIvev_?x#Xq z6f<6Nh41g2r&TrzF)y2#jq3;Sn@Wghkd1 zdGlK<-@QoAl73T^9I9o%iY1%KYoq)(dJ5r}#)i=%M;Ypi3~nv=+R&iwpVzc9c4IZS z;i9E*(h&by@&!HiKJ-4RTcu`gig+{4NVVN~Mg#zb2gpzYLkqtia^2(%!-K?by5?2K zj!0|{mn_=cMs)-*lr3x(PZ2Gu`#s|~XzK|W=quGIOCNoCIqwTm2cXm)x!NB%iDUsI{_Uy;_)gRAB9^5-UroFUmz2L$>;jQrHc6I)*F$TRYP>+vcf`dR5%(F`;3 zjc{un(TryUB2`_h&Xvin?2Nbku*FDG9T11Nx)T%giWs=ocL%(^G5%`%vr z@8^b$D&KH5sr-+y1_WTgDA|K*x?512@G`ewU0d2lKH2v7kKdU@bIB9(3ZQx#osdiJ z3htY9wV&z0Jt>FOFymT1n#WIFvm=R%py^Za!hir5Xs%=KghVU675b{oEv_5Wp|UK} zXYURdW+f^FWSyYzC}NN0Mgr;u(@PR-?Tm#6#F}JIcnoOW~1!02O-+Q7;PzBOjAP3cGH~-94PBXDgpSOf(i@L>EN?nF3P)slJWi z_aWtAiS)h-1CxzQr1HH}<|PIftw^5K08*y#P7iRz5xA;0z@qa+wu@<=6;zSf7wc+a zycHQjKHS;oR6KN%=VgW?NzvCvJ`S&}jQC=MY^glEXa~Sbf%Vp? zd<3cjliNKjF2yNFGu~QrX*`-~T&6CcE{sUF!F9>WFaQXtuT!TAz7C6hO4)g)=SuPx z%aeD`^^YxD37c&Wg)iFO7hVoY31sTL@Q%_pA+sZ8hLRRtg2;`_oWxujxD*B?D`R-{ zfvg01|Nk*DY+L8Hr>Vlju2gr)SZ*C}2hsRnfTGbQX?fJ>l@dqBb#2qqSM_!-+y1lv zh?P5A-|efR)O$q}ia{EWInYX=fdG1FA3p7kt@9G2;qtP*YLK>rS0m^V(bn*CLH(Hp zGLam)Kyr`u7usLlWirV!#c+Gm9ua%3N8yC!01!s^t*}XaPWHgoCLwzIF}^WhztkR; zwA&GCyV?4awoVll25U}>UoFfWNYZ)4fUq2hSfVuKDVTYLeIqw=lL`aA8|*0rZDve< zpk_Ui_uJO2aK*3G$_W0H4|n!as%go$`d){d;w*)pqi4v=NP^^j;6+-%-p}B*;Az1sARW@wl zXT14Dd5lbYi<(Q@*V|+)a4OBgK?Zn00>j3pZo1F+c-L9IOFiJ-Ty^l=oIS5G#cl;@ zGiWLX<*G@FOUg=!OG+X%eWw$xMd}jt4O4@2HEM3GsM^&|UP4a9LRubd(asta;GQiQ zRJ^0J`&M=5p!3fcEeB4DoDg1k5M+D+TLXvzbpCPMxkp{4HOyY(!N$#>-gD?HRvD4= zYb0ebnj0;AMrAn08%RmY0s^nh_lVxG$QqmQ38tX2T~cnffTBxbS?TG*Bsd`thraIIBXy>i&tH}%mpzBeKaBsf{Pf-8Y6ZMo`o+nDfn`xdqv6KPhfl>mM|^zfK!rl1Hg4ctf{rayyQ{Z^MeUh8Up!5{M(oVMjYkP(PQEU#!L~J9XX`wlZ0eS-qf8yPd}T9jAw(R z*Sg5WJ%r-^JYG|b9$|UJoc`hF^2XQk`(=_Qa#u5rdkH5sllNxtAp+ZwJ6iyD>fP#; zWYegeGdE;S&z5blx^pf2F4-{!#1vG+SPNGX=mmH}+b7>4dD!)8O9btetM9&L2g?8c zAbD@$FQaG0jodF6)4~{Gv+}gg)a07#c+%(t-$P|1Axq>MUV+HtCtX25oqEk@n=1Us>U!~lSigLbYU=(r)buv9^8B##_Sg;=;h4;v`&?A( zkh}em_lndgsJ07byB*F7X1)G}bAG27-CrH=8()oC1gr`0fd$0WBd;08*k;; znQUcKS zcC!5PdfQ)~YgDON!*#gb#_OuODA}?hf?!e>%%wwTPoluzbT&8immPIgdK+MV+nl9} z=JXD-8m9uHoFO2J9ib1e($jHeZTE?*mpp|l-%fa`-oI-~W+?v#;cf!6NIuQ*U>VQ; zPhU=re;?(2cJJide|!ka_k$C6Fq_EQMnN9={kcMZn{&f@r;=oyC2ViQq;DsX{ZrzS zn7@S@jS#G0DJx?xgD|FxU5nR~yQ>m49ARVW#j?$qHR>O010xqT$AI<(s(~C_WHV>U zau5+Y7 z;(k$c6^%K9?}|xZOBq=yb0ndlYW39FNcm~6EedtvD^rdJMg986s&KzjAfXM`C19E> z?$Lh_RAo0+Z_KFQHQO$E(#VoK;r|09r(E$L${*5Hyr}m;&6-uaHAPZ${5UyULEJNW zO>{64usq>}FF&MrN28cJqHp?c-)Lq)xe)K#wUN}<3p=(r82$(H!&rGSawz}ui&eX; z4?FOUgqVb?z31g-rf4a&HhK{l=X+6=kBLV;7s)jjhJ<;`Z`f^L@?gwdXp>6O|9))> z&5Q?Ju)iS@q48mF<+9A@I$!x&)naR}iDrvG?0ZTZ_JP5&F$qqm+lVV0;lBu?Irn;Ym6j)j#m6+kR7^z%z8iSU2x zr1)g$avhU`3f~D|8Zr=(ThZ246IRpmZUzxf zV!1)O&$TJbdBR{Qxlt2no&(0)AxRtUzpS9sXA<(7RdG=}s<7%&5id2s-U_f5Fgp_; zZv(SIky<%33z;i=jwfPzZYyLj&T2A{Ksbz_dbK4f_)%-y|3-XBQRB zdf(p2(Yfsw_4D8d0%O`yCy|^V180kSNbzOeapz>*|FJFflpR}aGs%D=A3V?(ax?dG zvWM0VNF4(mRmqftNZLBpAf577Yr}IPSN9x#aGmu5neqp%4B?l+fT*(r4mk<5i$XnA zSqE#)b1dvUzfLaQYZtCF!*=UBITVTmF>=A)7C3^)`^I` zP1G-jJ`KA9BB$s-zWJjS8p>*W>l%BM&6ekdtmK#qE*@L)hJ!4{de zyAe5OaVL=;xil0I{*^_$PP`Of0o2HW>7!O)0v=kl2~GkSbp&E_nmW}FAGDfIMhL8m zS?6fuDA3YQmPo)whQ|jm9QMv6s!K%}HS zm6^7xU&{6^+8lZ)xOVFOfvf)uN%3smz?>Lz|9=y8(%70DQs(4L(DdBSm6f@+!Ig{t z0O&RX>^g9zf!l|5KOlD;gy#+>!Vfsz>$>tPO1|dv$+0!(P7C#NtR{zk!S_X{bOJ}u z$%+JHQjqOIsv8_F_e!Hp!9mux6mO?P4F z^Q|59uleO`$#kx*ge+|A>gow724Ib&wkQdanp-s+k(l_nvDL4WUA^3UpSB%2o?|Pi z0EtN88IwmtEim**t=&hbl%bpz+)H2OZq_$B>D$_M4F4*2=Fq3IwDbbW6~KQ5fj_`n zf&ajYwv@&biOH_E@&q#&pe|ZE5r=%@8-ilm8%~7+plv7=#o- zrhicC$p0RH{`&l-OCoq@mR^&%tVYM8{B5Loqx2p(Y+K*E^_?tX2X?fG349ZFdLG_% zloICg6_P$RQ9DtPTP;w``oS3jtf5}oZZAfT^iB7PQ6Ej>qYPF!0^eE)L|sApU}-yfbX9x|LBpRb_R*Q1w8h)NE_UPm?vbOl2tFCps7WtFfYb|7(6P zH$GTlmU?2ZK~&()q@}Z{Eh1r*IU42y0)_R}etOn)R?X2byIk{0s_LMm>oH0Xp~`wf z^rPhgesfWF?ycGhpZV|mkC@j_x>Y}hfUSJM9z z0(n!YtePv9dOBqO!FyFR2161{l04Qe`jLHyGS5?Mgs#_kJ}@@AxWiw3hUk_bQV%kD zesBBkqp+W{$WUV$tOLHs63dn~8ak3B(#x+F?47r#Lf>HBQMO4-VgP^v1LFXv0cM=c z<8FW6lZpQe0J$`H zGhEE7uW!r#2Ins-ZA$J3W7_sFsB=C0zd*!;#_|>q$ogxV-fiE@ahB=r%l!(*)>K?S z_5Bnb#I1xsmmhx^zLxXQFXKhC2IsXa^|>lD9tnBF;GGb?-0*iy=B1r_W}c%hsCM}6 zD&f-1mSk4tOWX7&Ee#jDi6TFg`41~d;&i=NvwQB?`3#NMhvsTIU$klYFBsmKfl4-W z!_L^hRqYbiJ~zyx88?q*dzlt@%j8@7A3O)INrbIEbZFV1oy7qfE@FB%cS`5K$!A3N zQ#*n@&I}^o-O9c=T$VMiK}bR3uq>Oy=-ztDs6~w@MP;HpFElvf-WJq)A-R3SD>Z|J z{g<4!j~Y$-CfsjkDe4U`8_x>Fminm7S(^NyNkzBjyQ)fp8#660kKeDm zaBJ?&Ng#?5K)9V75Kb>!q<2s?nFfvC@Ou~<(+b7^$Eo2oGL}lfnQ#YQw(D2TGX;kKO>!5;@EQvBhT)vjiylH@mE&6_lOlLQa zc>VbPfMP~^TXleRx^l$i!8mC`GDOfiS;0J}N;Bip<-Ys%l&a%eT&b}V@ZCT%kmiJT z0Qb5`X{%rRa%f@F1vBBH9LE65U9BO7jPc^&K{U0uwghV#5GGva!c>PIM{qnciwktV zGDl8s>d{QCEh{Df$g&wA{*h)ux%eNq47$Q%73QCdS&;1VtnK<lR(C`8V)DoF*@?ukQ+_-o_QF zlvL{~A*mn*@fz0PZXtzd@;KV#Ux%1Re~mVJZJM&Wew~|bvf5R~WYXetxDbT$I31um z6_t~Kn+?GK#5VMDapcnze(k*$BU?8ICGN5bK0FSVkOM3hMLNmvTU4`9IgBeOy>j#_>-3>xUC?-&ii>lVkdu-?)@|ZaF#2h@h7Ea6 zYdFC3Ix_G<{S})P=H=XejCthbQOyJ(8lZ?m4ID~DAZPPyU%uml=lW~knL-Wt{XcQC zFBP(3K;yDfAjsE9{iy( zf5$3?57Wh#J{w@8s5SIml?59=iUdRb@fdWG+>7laN}5l9XPz%=(8`&8TQ@M1Y3l9q zIThs4?gJHb2KxwprHH5?gTTH^a_mes@voMb*=>2oy!)qP77Znjhw6f(8Epxi17%cp zVb*FL)4F1ux8~i4k=s{P=3LoQKLG|!nGxlX0=F2RndpY~_PJ*owpJ;6Zm2uVyXg6S z)8)q=F(7ag>1IICA{fxkhDOY?VS4pbYB#~X~$o5Fi^R0BqCsEPwNzuhl(-oa5 zao1H!LO~ptP2e8F3x?K>WRNk0s)4NnX=k3OoM1T$Yi9Oj*sPJ z96O!9dS(*WK>b_ponFJH2evY1mXVc242@8Z;6B3(1U&);+oN(x#Pl;w)q}%kt&^#= zkXmn_HGks?&tsGT=_;iFJ{f2DCnEz7f?PGg(UEMo+PC|1%%Bxtt&3r-` z)Lo^K+<^SVBqw2TBFwREbq}w}Joa6|C*u4h+?+14uAxFP2o$0FJ3)J9WJE+!A4v8# z$*48f{myj6;6pEVcHtd;8-dF!}NX($(E z0U>50ViLf84sqFF)%>kLv`?dZ{+HSn1$&>nT~W%|q{w&@_!NZCmNEr{iJdfdW2_DR zOfOD6j;Va4JQQ&@+B(zweh+m7IFi_IWMXh4`)3eaui9<8Q6#SJQ;nmUg21^?gRI)&*5fVaXp+VeG-{TGT)6&V6|Fe;^!y?jbggS&7e=c*nFZ@uIoi ztdqMgFU6uhF&-VhJc2Fa90YhAglJ$x#}1paEPk*!dnn!J=rxVGCF0HvjA}u#R669r1@*fehKVQp0K@o%jR*d8DqEAWP%@9E+FqI~mC96==F__jMmcHG2ZJ08&juQSlReks7e{2d4Qp4oZolWeCicF1P@B2>_^*Qm zK>8d&FoB}z`1cxAS9|a!Ua=|LV*4gmb?aP?_UDwE3^Ty{0jlP10~8Jv4gztp;*mlF=*NgK%9T8M|wgLUv>y+e zzfdpXyhP7WW$POgW+A+p#Ng0-dc2D54kmJ1aVsKI%>;O7wb3pId=;&LUqI12`t716L2d?Uv076w< z3H5;7Cx^RY)4aWf@2xI(O-(X&S$e`EP-`3^54DOQ@!k>TKN3fgn)CLcl-geIRnw#u zPVvlWevtC?8DqQ**d1^qD{lD*zYWM#_>uR&&<^5aD=Bb$Qgsbt*n@aV^rnoXq|jqR zJeL@JPTjiF*JXBmbl_TDZ8_~Ql7M*2aS93jj9c=tTC%LbVw9Z2|UJ8wf1pcEET7M<^YBcVkC$ZxGxAv z)|kP!KdZLx+uHK(`t*p41%eON2L~Tcm;<*X0R|s!!T#Gcf%o`v*C2_Y#O+lIO%bEx z)LsUtH=Z~I=031tgJX~QaLtS2p`ULZIdaaijAQ%lLH}MilY`?^NTZ^Rcrc?aIC1c8 zHT*g#)wGM1`N&zZo})MCY?a&9KYqz&#sLiFjDYp5bywb4Xn$+RY+J!(m4*xVwDhxS z^GJjH0vvDlg!D#E73FRIs_W*3f+>3SyEjP|?Yewp#Q_>dhW0doKtLM>5~tpL+&SXH zErIB0QKp@DZUufglf;lsrDdc+iO1uBk*A1opt@mPeoBd6<;-H&!mAYeb7l)}K5~8D z_*62|$mfGD7-a}2KC0x;cF)b?Evdbi>(zFwIqKGOpKsL!6vGWb2vG!TyM>M2C&jwI zqwSifOatD#pSXj4o`3?f1>R8Pg2i{djmh_HzHZ#gwNs`S4rSfzX&Nl#oG_jgwUI-E zKrD8sW}P8^KJ(VlGWO3uG|#Q$9%Try(lYQhBmy)6G8BQpY1*^6C;CT1ruX?i zHWq^w&;M&CBFL1SEcNM;rTe?eeIQIoB!lNhtj091McMk9$^GrzDYMTH$eoO`he)J= z@;N^C!wD~~dYu+|4>oP!TJ?|7?MSw!rPF_nmGYPDY}@jswk_N?Zy-G)$aa_ZDn+gTg&VEn`xB0*;QIr9Lj|tR|0-x9GroWV*0lG$G^M9RIc)onwcX*!+?ycy&4%UtQB2y8Wt^2k4ElJ{GW7Mt zG@JX)fBWCLZOW$A+455@SVpJ$DRcAOa=|0>Wph}a@oVA{m7W}mMZ ztQa(5`#iWpD{HxzxlmB$IH{6_&;_JJLbe+UpQ7~hnOaKS2ivXRVQf}>b8Z}q>(#jR zczhBmkROm}2F_zrq292lylKBm0)I*W*rKp`7t}`n2ydA%o{_RY3CQH6p>WtoIB3&a z^{n@b(Ft09Rf!BB7}Zfc%s+-VuLnO|lW*3s9Pe#C{?O6kV#Uur3n`EcQq{)8Ob8jx z{K`! zlf!n&#*A42gv!g|rUkse2pkY<`hyH3>+IgBkL;U!pzyMw!71ZsKVE6iXV|4=pe2$S zBzZfa*e7D1+ItsvI-hvmr?KjhdGTTIS1q@mIWy*whu4jqC1k)D>1e^86<+e)_)XpK zz}A=>Aw}=|o%Yn;qA;>>2T1Ni2DG9Xaiy$HE9$}TFFA6%b}8SK+jzo?`GndmI*jVl zW`T!Qk?WKCd-T!r2jSW+p_^c7HcU3foCYU9&Rm`KwG8u3 znOD)m7z=6xQG9}`SpuRSL?A%`7osV+$(P?&xm|ur>RJE55tc5VQ)=nUZBCEl z-?~rNef#?I&X&Bb=_F#e-53^=Z_?L_xg%4?u8Ju1LWHD#3COFta#Vq{CXS(0wI8!lXvih}* zcJdNK)jrlLhGGu9WZVpo$6za9<%<&RwzDUc6|Cpxa5sEc>=awYPz52N25%Z{1~xWS z!wcMq5d4Qi6e+C-lPXJKab39mc8p0ItM`SEtGi5C8Q(GyPT7j!xkD9Ta2)tx^}4Qi zVrON&S$X(PVGfg_it!Y^1ZpEDg7Jn*C;|XwdK0a`EwO#xm0f!7{)wGJMJK-hZ7SF{ z@73M^hJ*2Y{1>pWTY)~}is`ePHVHFbBbPMfFHf8(4ipq3j|WerQ?n_|Qvye+e$ zYok$3viFkhY3msm5d~&37yuH}#_Rv7Yo+iH9TAUJxOUws?e~Y1>Gr7%;)%oX;9;UR zypY9NUY3I4mY{7;j^7l7ey|>2wUn_mdk@IF#Y-PRSRY~H;gU+U1!G}Q8<{!K6Wlbhx7g7cdfg$83<%iN3Bquyl~kWvae7) z!|2eH<*G(IswI_;kDi`CY~S@|B^5G;{K(+l1`r;VOoUy#VO|QneQBYqFD>9@^D6$R zADlcq+{~DSLJ)aT^t+44d?xyu^4C=Bv(5h0A`5D^cS2~zvOX1p32d1=6@e%5IAkNcXN^S*VN zGvvo{5ZO+YpyLmu)%lC$P3KNcxNd!{{L}G*_8>9(JS1}=%3OdzM5%As4d<(_8};sC2^4DiEYwc&CfPYbyRuKryqDbw9P*&fe>-$$Eh%DNZ zX`R%-X0_XaX^I_%B2sQC!!SgpI%8bzJ9j7ARQ~0tH=6ZqcwZ??V?g|b;Xvd>!P~h&?i#rX2qZOXS*tDhwgdxS`V$lU^u%+W7W8?OKP8;y3CRyj5yC zz_3&>R!zyB(9lT4_PYF9*@;H2xvY>r6pQK7dvzCmw@Ri(u zCV>m@0p$?TbhvKM;`%XaS8TpmO0=xa!NLm8X~9n!24%)X;~;Q;gD?nmzzYAa(PgIU zQI1}9{n|rHhyF}u${aps{r^m954_wRa~=8E%O~x-|Al)kQ$^3~1N~ARBNIUI`bj+( zf;PcD;)D5w@syi%R(|0exSEyX-|D`a%&`Dz+*YO-rn{198*K~S?j98#TOUu(s(wVoW}!1 zBEq8q<5AF$8`ga7F6Xv=XZEl2UR!r+4Xg39+bOT9(col-fN$u&C@%_;IWn@?cbgNr zbMlI(jtUhSJdZ2rpKaedW71&MJA({~@_4*etU6ls^GLVv5g*ZGff?QYNz`aC>O*Wg zlt6cfdJ4!zfH7@3B6#!ukq>iUHU}8Jdl?>{yEva1?E=pe4DGh=z9?@5+_kp8gwPl_ zaOGN~R@bHo!Hlxb=k6MZi<-zCbpewQQKye+l|%WXu&ABK9z9;U=BjIbxpB+qv@LZ( z3rOoNK=3FzSQ4Wy`N;~-T2KBFW`j$1yrCB|1gBp(kxZ@$tg6U20s0bUvViAeq>YG_f@VZfD zIk$KX)!e;(>&AZvx2d5+2a(r#`9HiMp-RCq!(S#?L2a~*6$IixB&`8bO-oI2yIwj(|(`-g_Bvr zUz7c=gWKJFB_5MHAq=x|a&SV$grV*(&|kbJHL|c^tJhBXy~+WkfeA3M<6up2w1!JZP7#pcJALTt@UG^v2R2dM${K=K_S!Qx znD_)LxRWrn7ae3?#&IG0(2BjaUvIzDf3n4CkmPmv@1t)f_LdA-*;LBIJD>Xi|BgM2 zcPudQ@x0}-v}e);1lOV-FMj;y&{5se%v>6)jn}IgTT(NiQC4R7GoE+gsjA7oN$^P< zP{%cObK04~-`Xc1S2?-=Qd03Uzc`LSwKh?i8AnUh#1RQExbYnO9$H-F@3uAe+`LC8 z=bt!mb*k##bOvgCFx&v*g<#JDBkm2(j0y@f3Ve8l_2z=&I*853vw2`27yu}p1O*0& z$kXW~A4OJ~N$!z*ZpeA>c;`(~K_?ytg7C$|deC#AMBTG1Ta4NIyzE1C!~^H|u4!H7 z{pT+O0d);6km6`guh?IgT-sN{&68f7I7g;5j(PuT{_{^52v;e*bOrTh(M&|;YZU!~ zbV`Vpu`-uZu)uUZ{@z@!@aIYF!|tP@s)@IzZ#641_Icg@$>!XUY}}w|IoX`k}U*< zcP{?fdr@G1p#2l~;0Cv0pt*8@&+>oYT# zF<>Y$hjB_&&J>o2Wizdv;=h4=r@dmE{lX?&wcl$Q5R{682Mz(>Knl;jpy z@M5_!e?BaVxYO9!O7bTcQ1`AL(c&DLxm@l;`j#8Hk?ayc##jwvgPt6&f$1}P?ZBoM~09#`M1 zo_i;4%Buw5`{!q71xpG?P8OLGgSgpD*dd zATSn?3Q36hMDPyCU?}X{4J!zh>vWh^84nTE9GnOfKZF9*vv#2tX0 z3nCyshh0?YRS?~({HU_m^U?XvMSN!_&O`!G-ZiEs@|I&Hw()#Pu=T3Sxv@!OX**cx zzfQ0=()tFJ3ctY$^5#%4A&FT(Cgy8k|BZRKtWz&b94UER7)FOe4F^b;1tJJ0D>zB8 zty;U}Z5=4%GiU}oSC#Iv~2=R+h2+3s+Vm1F})CfIwlMuqNa^|_=xzDvz?%Y4+=V@~@sy8$fqfZ4!77%>V z6+^a9FH1{jH!OGc^TqEzd?>P#v)ief8|P72u0KS_;17T>w7_35b{3t|kNO>5wD$4( z-z*V)DgF*&vh?xLPzQW%C}bG#Wlp)nuyuUjGvum{=3TgUV(Hf6teJ|#cq=5g#;rWvl9*XBOJfO(d<8Zbc9V{vYRG`Z4`x;{&;rMPwJ~$St+ac$wrqCY zJVTbR{ONbgmH&moU6pjIb0Y9i+Uy_pMl}lj>-Zn+(D8rqmJDFSuLBa4Kw2TPCx|DA zJkwbHLC3}3Zw>rAem++o)yjL=Z4ysqF-zdH0t(oDNKNY8`%LK1L+K*1qotf+b?T3 ztn9vIdB(s|$5MNq+HBsC|ALNJe_VE7mA~t7ZNy<^Os8(sK*%r0*YxL0E0&3LPilz| zf&+@|jT7H&k6gUyd~~(>C%JOcyFqRPg9JgT98vNy1@?~!{S``Cd-t4e=7<~5%O&%A z%IS;qfX-1shN#^pz7jj#&@Yhbz+N)suyxUuEnahehP@=cHN;eSza2)yDy-tqlfCEe z*<9xf_c%XQdUfGacB)GnV>lxwks$Pty5_OeHfMHy@b0TW|6Z)yJ7*bqG*G@T12JyW zCB=}dZ!-Q==-jj!+rM;;7Z!29pKsSg8iw2^vK2gWPT1yy)tfW?`TExAb~rpMnUfnK zw&~jh4E_{or%67fUk5gwikDF|M^kI>jhDlG&;`K6*Bk71$&I`L6O%bmR*L^ zy17Kc&Ye*_cy9-(o8sR?C>azzHnj$29gLpX_tulka@$7TOk{7Yj@Y(Tw^mq_l9Lc= zu<*f|o`)l1DM&trHX4}sjjV;jH^qycgx~*ij1}K^D0F!}ZDmBkFFf)UXGE4zf?(n4 ztU9B)2?O6g-L>W`cYPY^XTvrb0*%}(Ft21+E~cb5m)J!YwncJPSA|txp)ROPF1+=FkfyY60fM%ydunD|F843 zX{;as3^*e2Ho|9sMI_2KC%)KaB7ZshbNr#{t3O#LMNAwItdNM$!ue*+oog)v(p{Y8;DF5ZuzNy>2G#{n;Z{CnOIuS({IVDni zTQ8m4{gFLvp4JhicPxJzR4m`lI5Tm$GnH?8H$*fyZl4*CrK7_1m5oOXuiAC`rT>z?!rzHt#rX;j?-eY))m$(e!QZ1 z6<3>U%iCPNPb#-#nm&{64E$8AAd1fd!lpq=1BnCK>X7W{{4sb#3R7nEkG|%)EWSU! zdT8@c2I0yeE;=1sleAE=Jtg?%43^8&@9d3Fsg3wb{}h-3F?~YLIzHoL9XoS4i~Pa4 z8up?i-?oiOl1^1(IZzP-((j<|B+J#**^9KVsWI=~*d_VS(&K>duL}CF0y9J!DKtoz zZr`*&cfH(_S9cGu?7ms964_Y7{m)3aK|r4;2;oufX{}@KF=tmAG;P>wBcgR|bV<`h z9J1*_gb*-osD^F@vLcp#Qt{=$O0DWaKYR8K>?Y+KPqNniiy+hkaGQCZJU6Yp~7CpR-hvNh-d;LVp4VDYM}7 zz-!CEErg=8_`&V&>Wbm4obK%2v%WNTw^xjjOwMvT&dC+R7f_K}Yvi`43kO}_b6b}w zIGuQ~`9y@-M^@90UvYk&mozFD z{=ObFWRuhw(TS<0jb=n~;q(?2sB^;-TK`^a>1H`+Kg@rfr_*?9Q|`rcGzdCJ(qWJ3 zmFbG*q;QsgTNs=lC?O(ts^En`eJIM(LP0XvzFXRskCz17X}=W}@Oo72w|$QmX+g&C zEXh|0@=18cu&54!j$d2PUK2@4)h$fjEBtwGVhioJ@n%GD04Qvo48COV`s?)L*@1hO z%tF57(lu>5r zz96x&u3bL)1s#WCx=ErX(VZP!D7Ra1wBz$BP2;2A`VK|f(1)U+KV)Ktdj+C;LTcg4 z?2_#7iY)x!uf5)8zxB>%x>N!&h_Geo1ToXJXTL)&&JIL9SnKio;$i_Sk$ZHZo*3zC z>FR_z3NDaRYE@P6E%>o*$1I7bBf~E&=_`QAkyjG`)$1F7>t#el)Z700HdGtk@Z75X zI$eCneWXMs9Xx%P5)4(+?ylLnP-%Pq>KmHAIm1d)QJ?8ojtUb&ZQBUBBl5OnXXKLV zIqU2Nr!_9AKUDDY0yAw*h^+!)L&b@RASh)2fI3A|vJzHO=2*hRtu}8ye1HCC&A<&g z9ks#gJE@5J@t>YO2UHWsRQfQ)lwrBzV(Lw}H-~$Y~s% zY@vP$@~2_7pH#2C3R=kdIP;u(_lBe2@FWZF`=Fx%`au z=jrD*oJt2$1~mLsbsJs^+&;9i@3q3&eR4hvMzU`#RiY0j)&o{$6f;DK$9Xe+5-O_q zmHOJW2TeaReC69*Bf69Uad2=Gkvay}WqEMPT0-%S+|c{+xr%sXt^)Mvsf_n}D_j%1dJxq|TmyBYc|rn;iP82#~X-843fj#;^^+Zcj54Lb)58-z>eegNbSO z7CNOM=fG3YD87d+xbo{%biGEZro_p={#RFK+Pv#n`|lKP?qGd`3>Rj`_S21~{1 zGC2-ILKb$3xo+>Qqxy#jwhKo6^{yAaBDI39+@LXVy5lmk&IbL3TCe9m4DCC1{D!vJ zZ>=5m3uvDT>n6&O;YFB`XHRT1uc2=AW~e+6!sk^kmaP3}i!dEP39oqU0i@x>jm2b{ z=M1*^X}>rhU;JKosL|Y;BFBC zQ#|S6o>}KFEZqBF7-V-s8ZSXRuv3Z8YlrOI4xjJ6Bl2!o|C)Ns9=b^emgr7+-3f7o zszG$j+Lm|Y^V5bWK5GjH27l~ph!5hLI2+2M2P+E*80b-oI`>`hS`l!hq~9vwkNMA$ z8&_rt(Z(b5He$&H`7gpI`zL__F8}s#!jX9Zi zu@YStoD*ikLj=GNLTyiq9nXy$ZO>dET30#h^}g9cYIE4+N5AqEyJtKzhDf4%R?*$0(#~DylFi@SwQB=6 z&vvDoM<^h?M@XRF;QvMYjD>Gb>%NR~k)I~_8&`ba{vRKNKVAqnbB6U%I!)*GB`IoS z>n=}WZA#8{*4in2PsWf2rL-=9q72XwOFm2a;f5nLF{L%%GvjK6qlW$Zywpr2v>KkT-sz* zUfh=-_}uYDMZLT3x7w`%`WJz~?n>Ex2&IRh?58&E!@{?YZend_65+0|o8l~Sk{)1GDwpADPs zyR|JV<3MdzUPeLT)(Jx)O9`xBq(uQ)z8c<@T92rxzFBya`)MUtpUiyGGgWj1QM7~9 z@J%gHI}dnsJ}E)n9rioEIt4@?n65c+mw)LBg?~}t4a5R_+{$8=-sMes(8Km5Ha2;U zi|h>gNRU85&ql5VBIchoJj4_S7ykB`QTA!pwJj3Mc?6%H-H4TDngZRV!nME?)h=|I;Mv8Qlfy|lK4^tMku$CxI*JLN)&_3fY zdVA@|<&O8wp;B9^hwEX&|I75gj8v#$`!{bM{_QV=z3$Oh0*+o3CQ5(n&4+ad_Rbtl zKd#-)>+$l}o+){3bTWZlu>|8H?fJEyi)QTDBGs$hU)}Xf=JV#aGRB8!Q;;S&{Jb%> zMG@cIn)N(`{XV&GQO15PyDhPaHWsO;f&rVJ?%CWE5PP(l)MiE(LpuVs$%6y+7q3*XBKM!vV3wIJ#QW%2bu zQUz({gs_5f$&}H_Lex2KXj9Lz)1kRN>We-cQf9eza}Tvf1crMDh1Agt06`27D|N$U zLj$Mjg+8f#^tFsDCE$uA|Hn(aC=5|g0(JqMrQqg)vR!yM9-eZB5@uOtrXXjyrcA2nitfti-ZhF!+WLiaZMUoG5$kc4 zhUO&Wu6A5!g-Ei~P{%XQKkC!f!4uBUeH!h1H9N@@q5zPEjh`$e%aHwe3cf0`)u=8$ zAF|$B;_sIOc@_FG9P~-RNk9b;QK6}LbW^>E3Aak|FZ_dC+Qy4j|c-Obyh;wGigdQEQfRH$UZ_*9tp zUazO+Z>0-ngyK^pt?04N)UdK~&kC>3hKT7rEcOHrh}2=d0_UhNXezj$-j{_~24r=r3#RZ_dn zX$wPII0J#Af8@onzH*))L+L_SPk(;%POH@Fl2qSOlFs0hP@L5a#AgUm#TIk+**Xu@ zt**KD{Au3tPr{2H7OtnwKn=%>a$s-gB)@rAUfniowrYJZOQBGU_Eb_cn(*5o-5_^i zaLqcloXejV_`aB{;Ps`hb$_WV>6Vx<8cA%3{d#3BF5P$ihwLA_Qb}*6mVNxsxk+0U zJ{-JmsDd+F}s32?^eCxdgWU+TYuf^Ovg04k0b}ie;mxjxY3U=wqgR)EYDv0 zaeui~^SQ6`!U~3q&QBAi{WhMZL|Wh|4NxWjyxo&M+uw!+zvp0=+Sjb6YR^xDpg1@Q zDa>kv-0EP%u}}L-`x{IyuwF_^Z77;FN}AdbFiHS#K?yQ3V+q$Ex~F)2_^BFld)lSj z&HiIK|Df>BaNtMv{hPBZ!Vt56d%AlKtM>47s|C6w6T-g~q70yEHI0YQN%t{({OgR? zMb6GN2RD7g15gV5YUiL-w)87ulDYg1@YlQt?-=*t1u9G|Gxpj`0cH zkZl_k6hg8du9IW$Tc=*D*if%=-oEEeR&r?eDVxSb`V`=&v^9rHR&<-#?3iZGfv4tY zpUtRx@N$To`}f>+bc#a$K9SVa^k?u%!{+>7cXsYG)eH-JyzzVFN!ss|W9e@l^L|-S z?qnONAKu=eb8aQaE|sIQpZ|prw;H=BB^mzZ zVRP>N87*KB;*?M2xyyWpYkA8>o6diK7-chI_43|{8w&THsQmP_QhD`R=R5E3RnmtN zX-M#i(ApZQiQ*EN@5zH}#PyB2V~v(t{y9AK)4NxhPL`37N`x5FxAJpdDwAV{V_!qf zHF28)&I>Uq;STh90EC*nfoakdF|%GF&M%EKHZT8s_1&yBnHB8|H*8G#&*2j`RKiec z%F6HDx;(}Y*ZjF~vPH68Ntc0AK!y?|)RDpwMI(lvm|*uaMzdtC|J(jH`C=QFBPi;Whl=B_W9sFS0-?^4ON5 zXY(B1uI6%%o_#Tnd$UaK27ksy{}+ZQn_;qtcX*UXJUco8M3k+!frfCP9}!X~wk|ERAtHKF;f5I*k)aWztCVb?o~46` z%V1&a2}%x94Ip)uOcWUIw>cEdeM@JDr4mvX2N<%c zZ@j6rX11?xZ;}s|ttFZK9}sGBh(}?zc5LUJJLap(c2wnua4nYSyt2EOj-g`HaN_|U zzY13h6;jX`3+Oel;zkEa>t}#+on|Bj=SckGk%fw2dIICqBYzg zBFh5l6Yw&C0Ymv@gS*8hu^ksiAFeG;UYghvvo2GEHUkYoI75Eb7*CmhOz%SN$?{!o zB^|@9+=7Q_<00u3J_b=XQFBOi(O!AG?auwE3tM-;H+HvZYCrWbt)es4^AEAZ6=7qvoq5a;;*InXd`Cf{D zFDVjpI6`K(;DbqXBjY@VHkBIn7;FHg)uP|2eNE&EtTKZGGe7h zM^Hrq-KAv3v2fY9d%r2Z)hl?}9#WL;Qh%4%=Lu~vauMO(0trni=iT>?x9d`+h0d6M zj~Omz^Ak~FFkM(Zj7G|vn=|Nnc-2EQD7AJFyQR$C**uta@XpESWr8+;1`8ibJfhEG zOFnmGB*cC6pv;5{be?qix$c|Cn1gg%bgUMUP>cex6cbDfrP{Uh(I74nbq~h{49|*CznL zUn%D2DvHe!5uG@ZZR1vIM%5AT@nzk%b1_qlf<6H?=W3G*DR|;2ozjWnJ zqqdG^zpqzGY5jwfM+K0f5G$Ax@O&4Pgy(}L{oz?&s3+7UaNYBf;+j3;KTmfD(V>)u z6DJ>xYzNG5{zv_Q*RR9>u=h)d&Hgl$V6>C8aN_qI-UAp$k#UHKSqC=>_Wqae$pHns zYAhCN7v9lc5xK#WP7x6MggkW%bW&ud`qhq^EIX#B_c+JNzI1=WlRi=zG9pOw}53{3)lmH4@F!|OK`H74JSlMv9P6L=OR zo)ErptdD<#m&hmV=QMSfT8)`QI_mMqq$fjw|4yJ8sow;}U(C9&-}W=#jUx554>Fs* z$xvF@A7Wv?u9mnX7#E%;WU(CpScb3(v)~ZIbp|!c;f;bz8PRPJ)+H3MkH@#%&+)$H zb5mPLsP&mVzad}3ugUWfJqzJtqKGUM=Yvlyiy1C>^xpe0TY!O0R#MtZ*FC0>HO8+q zOiW1mgwMr{yq))lnRII^n@q=?ba(iidz7?RA$13RK9qVPF>bSAWlcQow5_#iKxE|h z>%apq+E^p%CJ&bprx|$$n2t3HC{D2~n)y7YNb)6b+0q%~)E(A@ejnBPBg{OQ{Dfv&32jrRfVAr3;jZVj2+3~$CB!jtTYQj;h5IlGG#^|_dGSjt$Ro|PRPY(Yj@;rAIQ zDY&JTwDy3qMpVxjI{LV7)75E5w_0DZ|17yv$@ygR8rs?r5N8IWHj?n}#!HD~pPLq^ zOsm>q7`*p`-7@7zyz6_HrT!<7v@9UUI;az%g5`gc-Cik>QR0VvGJ0 zi6?3Gr|M>&x6ec`-)~h!f ze8pJjB{Wnojn#eRR@{EkpN2#p5U_9nHL?Jug6Pu=5yT5Gi8I+ae)G@maT&!tixj6R zT)q5XD1xeDj}9hpOl0}n)|9if>Upkl#}rZ5aj{zg#BOpDSR68P;A%7VaD(rAI^pZ;<7oeAoDmq-*_E6tkj#8PouyM<_u|%d{OZcU;C9I%wT^ z>K$Iu0iCmg71%1=)@KZ4eN)_ia7NNTw;jiN+7cJ$(0+a*93p*h3ydut zmX)nPY>>RKL?weh9t5rbFm9BsJT!FKVfvvf(=J@y_dE8sL%4MPWEA8}L1#V?IvIL> zTHNMt*CxfvX*OZn^CG#;b2=rhC!^?V`)Kw;AV=ha;@152A<4|np2PW9J?Z0-ZBkMe zqT2~Gjk`pd=;w8BFZ?vx+~jbT<)flmJNcFAlve>krLD^?l7k>zG;+T5kJLRRyVzc?DW?)H+zp$9=bE^M4PMX*vDa=iIX4Iuzzqz8> z3Xzw0A9%D{Se%PC+}a+RE7(AM8Q83`jcWxo=azF{)Eu4{zu)DZtY%;`{ilf%2`H!z zRbXOtV!*z=T6uQcYoFF0p9Ovj4ffqudL|XLDad$OLg6Mw0vRmllI;1{a#}XemT|wH z&gA;)hJ07;zaR#o-C8CdS!#V}X-}EQpWrZ`a}R4O=^UM$g9yHYTAcV1$YDk-UFm&e z2Zni~%)?H{Z`rPQFqO_pNz^!l15u^7(Bw;*{!oVq``xSxwbXXYij^u8gbs6M-c0wkr;pHJH?G z7eB)3t#{QnwlR2H6m5%f6_=cfB*PFcgj*I(?76h}e{eL>I?;R3KrQIhJ*GvZI~8Za zbR=aJ$6ur@mgG5X@T9)iNa-+NosfibNBhI>c@yR&l)mwxYT~HGv9j=hbiK-#MZ4sF zv$$x53j1V!h@=6DiY@pqB7F?i-zBp}m%dTjuJSTQ*+xHVRAFsOdf}}0T{Pf9q7EiB zgoILR?qJsN!Q=~9m+FOZ`K>6^?z>u_=PTTylc31>=MGLFr1GGP z;)bPWDbD+(f8<^7SuF#PRQHI6Vj*7|hc6utmA!izH;+{0$#njcg+`<`_N~BatvFfbl4NfE4EN+aZpvVt2Y;XRwd`O3}Bc zCC{vm=pFyeaI(T2L@JFa!_1034`}M)-g>NY@4Ng;RgYWlO4#Lc+6OT7Y%)v*-0uW~ z6vy_Pl$_R?QPd++`l7kOIBZRVp$GkK(vY;|1m!E=y8D#O^O-z?|4wxZ;CG32ctf8K z4+o@sg+y(9oSmSYIdUsmUrt_iESSUAPHUIIR8Oa#Z?&%L>0nSS@Zc6OfivzCQZ_ml zip52&T*~+EspEN>E}j#d7A|z!>IO_1m()nj9lPlLp%d(>opPzG(GuEaL2o#JZ#2hi)pRf z^fW=TbAQg|WhTr=V(Bn1RPzgpeG+y%!ndZfFZE7FfNml0QJJsNw)>}X#Z8s`4-CG< zafU^(S4r&Mp|3)*%Sy9Y#|)FJ#xe>`R)o;)H@No?2ojKX^47RoLJJHWEh}ZIfXSb} zkabu5)35mXd4K*GNhEb~8PV-C2v4|$=`R}leZj}Np(|32{o8ecgsH01w|SjcO;|G+ zO(BvDW*uKKcKPgsqUAZ;I{W5|J-)lRA?BOt2wmO6Ev*Cyq-@Zo(7QK0ro13B^3CBb zrv|1?`|`DC&X_ozbNNcSI}r*Lutv9+5?eS=dkqD=TES|5AtWUr`Vm7%feP}txCf#J zN=w4?lo!Z2?g?UJHBIP=9#l;{oqyALgkcGU@kCw^&a1$9@S3l4!}4~wCEZrtGDqWw zGuJLs(Wbr_22)uisE7>uY71OwgE%5R-v$pO>8pRA$*~S^ofdM_t>Lc(4d>zrMY*Z7 z6k^J2nw^uma^6~nh0muY=&XwAV5rwH2R;^57NlayVBs!R_gMA*^5-i4`R$0QKK#Bu zs&VoULpc+8cx3A&tR==XNQTdluY=pk>7ZZyd#gq4pXmq)PQia%0@Dh9V-@)8L!NeR zcuz~B`kO87Uw2O$31#Dmw0fLrNn!%`j4b)`hsvzON;w}yMPFVl(#AuB5KaXY=xuEY zEi|yXJ5!#-GHT34&(N~?o>d=?Vzdy`=ZnrjS5 zIgmgmbkIPd*0jp1Ps+VDM-(}d?#`RfZq)Ewv2DY$+2kjp;u9b=ffx^l7L<#OhY(;1 zY@xrFv!A$n%*?^Fd3Dm#DY}LfH6;;5c>M(TO3`ZpJ+6&uD(Cvw8fFQmwf(7cp~xHZ z6@lfP(bkh7QinvYlsCRfuGyaTtZ3!Srz)S)P6<%!a==5sQAnx-Y$P7B%uzY^R7!ld zjE;$jl?#^;eOh;P}%pnLW@*NNrbFY zNo0jmX$Yl~BoY~kD9QXi=Z@Fw&G+{Y|J=`e&OP^>=REWCK;b=g6;P{UV`nXgEv@b1 zZYZeKtCSud2;0m#y7z9QA0vuB2yr!Iow}KAFCXcvYO0B*ESS1I^8J<{4;Y`vrkm)3C_qi_YI9qMp7FS$(a*H!OdZkUr%zfsX*CVdy)8p9?yh;_?DCUZ|*b z!)|g)7Z%QGdncMWB;?f^wQcnJtNCNY!ZqLr4raX3ExI|L=Qzl3;+hiIFvVx1@e7&C z7>)1MV^2eRj0=&rgK{*0$pJBO{$W)xcRZc5=tNm{)#8YSCI#wAlv^2QgdmVqL}?mS zzg85jyb>^T@Q>TM9QBVw_Ye4R@YZ7{U5sN9zG1vf0*jvHw>7liD9j|Ac4YS^o8@OS z^C^n}AA}xzg2Rs7-gq_w_I1A5nJ4RZ7|6uwTsGR&t8&3|fC>cSC@5A^2ABF;wM7ka zgJu1LA6ptsuj+2K4*nC#I1y_H$R>ooefGF00k@zn<|nfIXyb+}?t56LoOW8iU{=PG zQ!3*iaBm`NU&8+krvqYk@XFXFqvG55q;)?8HMRIF;yF$STphuBW(VQqK^ zFozIG;OAi~$=G8sS-D33G#e=ts3UB-a!s%LKPE|KoY*FyMplH+^>_M1JF z2ag1}lG*;0uL!mr4Qn{0m?}3n^>4Aqp-bmj+MU}T{5BguIjFry6jh`mMpwUuIN0jk zM(0WxEpyyZU{JQXbLsi2@j&PV2^SOU{i3J>44q^q5>D4sl6v!V!diZ=fLR<-I`Y@G zM0=xx8NtBI526S+kLUwlzA1O)UhBbQ^V~HO966rlVC;ho2NoswfJntTFhI7@vv$P> zx2Q$^ZK*Kp>#UZaevjwXd6AxRBe?@}EKHNq(h*4?R2xBhn%r{njE1X=R7Z5QN7e<} z{!UMLLZxlu3yQV`-9Zlb3{ar0eryq11QCWTE@qVa;C~4P;{|)ruGf&nP0g=b#!ZbOJGpFd@$1!f6WrKYDkc zPJS5D;<@q3xPkE8UsP*I!>+xTC>IdvU14avXdQdD^lQ^H&K-=;0=qoySxY>D0e6@Y z*Vyl}kc)>-etKkiB;{jWL63cq(l6S-Fe_?b;1i^g%7C-X(xInq>ZkJ(yA7QDoh*F> z3@P0ne3L3@4{u8o zs$Cv9s9*WRxZ+JhC^Yiqyzl`sO zH&e!~2qFz)+(q>#qPmV{s4Vh?{_~83il@VFs{8#J2PRVO@ZdCkGYKF0$SwSGv6;ye zr;wEv8Fl)d>gtRj!f^??X@vfUwj&r=&|3l8GGKYa``mTsRJE<}dfXpXQ(R`R?fdlq zfU)R9DJ6;@4o!Ko^s?O6zXM%rS0&f~`#f=z5+6JFjZVOs9ZdzdH0IyD&=A`?DYba` zzYvs~pEZ4jTCbzd@ncw;2{FM2!dCFYJluIq% z@-R*fSC&AAfkB90H#AJ^ftb=zR)w-Sd)VQ9B0hN;HMgmZB77W_1qhM_J&y912%mXp z@a<=UlP?VlUN9(lE#4#bzB!sQv;P5MO}?5Rgbdr3#b@_a9d%D{Uc3F#ZN@oy*djk9 zS(OhhLn#uDpdE|%aL;&i{8r$?&k{U`LcdqI8jZtIv;>x53%(CuXB*=AuJv(j~W$ICPs~ z)3NT2;u~hL4Bq;2t>uQ_!w|*DpmEQVJDs{8XwHtnin$vra_oI=YHpRd4G0wMh?hbK0^6r@TH|N#Kxz#@u8TDf}_G52B+D) zxSOokzw0^we4HLYp^%#r>8y-q;Hk}RnQp)UymId!zv!y)7yKbU)8`tuRIB}zI zOq92o$)8Uxo^Kdvpy=;-Za+32ib5d3e@nl4plW$GoYPKPJ5xJo#*+kI=aHK@_mCCD2|%Lc|ub z`?0kx9j#ftO(xnRVFy>63?y%Ox@w&0!2#5Vqds&^zsAjk*?Tx0CvAJKc0fbv^VEgo zwiLWRq8Y)5fu7qys(bC0S=F7k%@;w~B2Xh&UKTS~juS6aMU|7Z?>&ljGW}$$If@)%Iyq#*c#_)bBg? z6=$vteRSmNm8@MObGQ0;di?)NFJ8#*fBLKL?w$lRBW9o{PC>|HFTN6wz^sxkZg zYK6f(MzF7fBADvPprguk5{nbn&lVe>v(u_fKNRvclxx;=x;2ZGSA>ANo4rugO?ZK* zw6ns&<8Lt)X0 zQ0A%O_cC2Ehb9gS`FBR|*}dWE{mrEg&wrHZ6kY$!jBy1&3hc9l$&q@0M;Dxsu%F%_%;b`0jp*d5z@Ei_D|Y z92`A7;P_DMJ7T)+Zk0;R^R$_lJ7UvKXX!tfF;0g;FGK@@1pqKk zOX!UCntB)1S9aXEV)P)+@=eZW29b*62yKiYx<<`mF%{k0zBkgUgh$J#ghnVfB|ff=GmpUzQ4+`eqN8=9Ir=un%_psWf*K+SSdUUAEfA5uj}?q9{Zrv4+oQ? zxSa3Y?OdO-O1yMz5ad-w<@wNh1KF;q{swCnxD&fmPPD&kw}ge&q1 zbsmv(z#`-G!nhh(k9S--?-|i@De#KjsmP42yXi-ndLA@?Xv9NAaB+r2@B@LohF`-H zE{Ep!K587AR~l0;5H(wL_2Wqv%)>Fj8Ozds84WE<7Vs50AHw#sX1CjREU~VS35vR@ z5(Nql*q)>Ij=d66+YajNR5OVB6|6iuypZW}LMNs9co3h7@GOW;Um>k=zhU5FiAam> zU%pYr!*`UJaCpNX#yk#)9P;iDo^~*P*{q&!&4>E3Q;v45$nau_q1PNri7`!WpI9k)Y30&nE((UK>duMF$1K?qv(!DhogE!(yrxkFQ3Qn7}Y2- z8hkdh|p|8g_wvv_F?<{4{sZh7x27Cw~-kD6n6{h{kTwRDOS8( zICkxpPL{_-{?0;w%*v@*`N7mlN)_bY0`me*kcL?tIl7ATdhFN9wlWt=)M7ASS!qcU z^A8sRo^*gOfucMn@H#D?b0aPOsZ!{aigPpaJt|dL=s-j%qjTO@|VDgQF z{ph+y`bDC~YxnM1FG<;y)L0~xQiHIH#tx4heS_Ik{PqY$6h(WRe5dH(^DR}<`cyzveV(>^C7X#Ll@)T1)t+O5XEQN#5glK(-W4NlFF z?%}|mlo-v}>JjI7e3pqa`(dG}^&Q?+rh+Y$!8y7Tj@5Csva!l%FMn5h;V`Xm$)VkH zT<-$h!>OA9VIVmLX(wR80A(KJax==aY*(R<#d3c4p6ot3Sy0OFade$tNU;+@aWjqNMcrwZ&C+%iSpNeJ;m@fgbYw6(EP zwUm>`Rtj0&P6}x__nG(Bkl)wt4wfG_RE&>ka|Lj6OuFoNv)KP)DeFtEf_UD>}>WdEKWhucSEo;@8TfM{Dl%QC@taY?vyE8>`#PNHThC z7CH5+#+`M|mk-TduGx}J)$lMvz~@7fdO!mJOyI)#(xLfwPx)k(C(m#-eIj>FoPK8P zkT5_W0GA=ixIyJFJ~S*pg#Fyg6A4#D<9*`nCe z$EV^}M zc6PtyE&XmW7LRd{I=UhLMr$xikeA#NCIb`zEmlYF~dXM3Hm?XCL(ai?v~ zj%QQX8+4Pfg!lx09Uv16wMV7L9;~(gupA$}b*np=^V4Zd)7`o$kK?JKsM<0loEa*8 zDvK5Cmca_KJ->Q%f~e z1RomQG+}}v&o64GhBgb@@Nz#Tmkl+=(!yJYRr8o3I0Yt7=uTj43p(|AeED+t>Oa5xaDCZ{2YU;yGhrx> zDZ1w==!>`ES#9oc*P+8*qx*NsNUxkShJkk_#Ohc}I4na-f4gax#2GeIw!2pod8>FI zyxTw@1X<&7pzvgL)E)ALy42F7?n8w(Tf|F>-}&{QG5L{7J&ZJ0co^U7@Ii5@O`Ix~ zKvuC_qvU(%miPJZEj?o}crM}zGs+8b#RESAYz7|>%g(XhcGrQ1qh6-Z@4mtS4T_U8=l{ysyO)Liu`pd+74}B za1u~Fo)7h{w${!bh!hBueG=lNFU`9xm&-!ISyF1>1ztz`^#Q6A4U`j5(U8Ll_mmUv zQOw3jGQxc4mLE57td?ct&tzx!I!YNps5w31q4ID*0uWMr#$X|W$-RSL4Z5i3?H#0vd;gUS12zO)&I>(OvaVcAt4u+jLw8t$;+=EMS zN(AdTt+{*s;(C|WGS02-hZLj}ecdM*7Lm?CKTEj6@jM3_mdh%(%_Yk-VRecBiJQ_V z-bL>5qVzk)A;)l})rEPo>EHO8?8vIBE!TCQ?#zl61o;V*(UWw1QuWkCc-SYFN+u7j{6#o-OU(VH^ z4rTQ6-T#uT`}6V4LC5DOGdEMJGUK~>j1lPKq=zooxi1&q%TDH4&}(wA-IGTk<+JMq zgW(DSY!-|~I)k@`m+M#irk~&R_D}!W#nM3e6&Q!Xp9hx#mY>M+K>gRWwuE>`Kk?GD zgWEb(Z2sf-iM@!Mx!C77>CV&C19`hLGrQluQo)WypPoJe3=&Hn@#VurSeq?9hC^F) z4Zj$gUyp42`?rwNbQtGFw%vnu9@~ifd+v^WZ16hkloX*-b0$bjN@3Fd3C2PW5YWi* z{fuXqA*D{LeqBMj{I5Iyjkjh<=_JUalkHpT z+$Fnx&9+XZAc$cHgaO1_k#Z~LXX)aMy;jfWS>(rkUFRy#st+aE@;Mg-Z!X zzS9E=<_Gc_h}3Y35+qG&m^81wq(sV|&D|GOUbMe@EV$ymZa(oe4O+lck`F&jWbVpd z{RI#0H9k&x=BH7i9sF(MpoJcJo&dqXAnOJ;Ex`wl3-%KpUuKM^K6y1XDcLl+Nmr0f$6U;;->IoaSSsxi&$}K{S*IyLRR&5~Ai^*7CBRKsIb|7a#3#Cn z^^Rj)Y@EeYnN{H%Z+-S71vx;8G6`>#nIYwkOATC+Av=2?>UY0ik$PM~m#7DI6{yW3a+BTuvLb_FV-10QY4F*3zL*8QaLCB_!gxj@BRZC?b zN67xwY_ArIvaO!lAGhlvedeTAgA=GB?-RDbt!U*|!K_)v_wv-MFTLN9u+lnr>}hEJ z4vs5`1R-iRbmEX7cw3)HZP+)vTlaq~4wk66zx#5%7%4$vPK+x_XCSdft*Md!1!U-g z;1ee!6I{h=^30yz6!g5@t@xgl0|*UL7c4bbM<3`#3uDrmF=S#T4*G^qj%HhLy=&!6 zs~0i(4di{tgra(^(y%i{-?ex>i-xm#cXtK8v_CsTP-+4F&Coy~cToi{vFK>eDA_8? zDPj(d0uMfVHF`%NHm7ScdtTpy?4tM$& zTiNVd_D6#pYTuqNJSez_9McliE{G|DE5qF;0RE8Nq*&9M(KdCR7#qpW%B%dWg|y0M zboG-E_&~T0O5{+1JCDdtq+y-5lUeel=eB0a$j*Oc$f4x6A^98whAMRh%^%8M>CNM@ z9Pz^`d z+|vZp6Z0UmRA(I53h51q78$kl>ea7%$=Yi;4(4TxCml-B*;0R95=fEN?9;8*Fqd%; zcyp4CMT1mB$%rh-4YUU#Pn7bmsPXK#GBl0h%Dv{N&fb5wbKSdFEMtR!`fUr$j40;} zze=fgLxf!-uRi;OmTa=U!O<@L!%M8*?w+-kwEti@oUV?r=tzGd0SbP2Cbl)iqJr1m zSLBG~@xfjyRt&c%Xh`vc>%w^PyMb{m8|+V|ND3l z^e6|JJKjPaF#YW*Wv20RzUaxfR?F_FtV!8H2DYh1aEF$r)H$U7{dk2{YKx}17&Y@^F(Opja z(Z%!p{wuAAUQ|9fK2jr;(IU_SH)jii==y*F^)h!OmfpvB|m?_))tMHvpWRd@YPZDYOb|Ccl~ zhKd;3qs?WX^f)+oC}(+8mE>&u zGvP-z2)wZ!_cXbuAU**892#bQhePp4+Oqc2jJB@_0!#E*A6}PWe4dE&j`bWJ8dS+o z2(6f_li+4t^CQ#jkG)3|~oepvQS=hHNO8sFm*=f*RiYo3n7 zKnxJXD|tk47C)@0MY?Z>S(QMLpoMmtl3G!H!~mrW0yhR+5}*S+LTt$k>>jMg?d83X zV&0$TiKz3}1nMwm?)-Iazj4&I9Gg9Kkt>QiYSwc?!2nXkL0&+F4z5n(T7g`y z1G5(Xvh&;FspKx_x99T4@b_6pYsNsbGB}8Gs9|;|9P_h(a9Qc`m2qHxifJWtV-GSs z4Y@6d8HnWU8M|Hx*Du!Wkse)qt1#f8$jGW@fuSay>sg&+XgSFEh0Dvu)*m+3_(^8g zX&AI|U?sJa?P^~JHRbLKZTmC^1Xd*vSs4Xlvj7&4^Pu1maVcF4xqk21J$o_QsbV9Y z!vk!q*XmP>7#@}dFfeC>?00Y{oGLh%3nVMKLsd6+eTU%{uSMA}AGftGVNKC?+taxD zG&M9C86`PJU^}_EfapOxBmnb1C3AX|OL()-F}>Q-9ZNs$I(#eUKX7jJc2#2xunGy1 zdfR0hLVx$DHq;0m8u73HwE7=7s!}0yt*wY$GmQJgY>rKayHh`jzq4)+ezDrN!u;2S zI7E<17;ALx(Lh*v`_T^H?z<^3J``!GAM~(PA&tT@V+igpyfOyflNvJFXXEufSI;lJ z$A6kVkvAzgK(mOt^yxMfz=+%c3N-(mzSk3lKRNlaVw+lyiZ0*yHE0XdJV`!N{N8hS z!KOYlxepsHesF;mEYZQ=c>5bJ~U5+B7$L% zhy^L2I2|3PAX6l^w%fu?>#atex!$PbSgX!_rAEOowUCjR&-{ zn11aeTbqhEteS~mmWY4)qUSMFMPULMqHV)HGI%hnQe?>-rCHsR2X|)(>gMh@TUPG# zWdabMEeJ;#wmGuG`vOosf3_I{Fk=P?elYe zw&vEM%DZ`C%1p4JdNHvVNX4cxi{er2(yLgw$UE9l|-B+tQ!C;=KERHx0m}sY> zVD>R@CEc~Mz3UCEBlWu2>Gu)C)`#OphP=t4bZ51urUWW!29|u(v$0c}KkecWrGPNb zkO4(up2<{x{>(fVWN`Wx0(9(j(G%h#ebp;`Sez?jJDoLzZP?RZ8}I zyC7y+jdnhMKNE)qSN*W=X+@_lWVI?f7UYD+)vlei_r>k}3DyKZUSJD*V_!l%qLPf3 zYE_;qew&zo*8JyX*N_PT=zI{XNW*^f>)m<(GEP6K^5T@wKHjsfG90-l01-M3=o~m7 zF_v*p&!^Gs)%C3RGFp>N7A?uW=9A8hLMAp`(qJQu8QO6isl_uh(wE#iaUp{@G4yWwjDt_bIs+NbwJtJQv zb}=F8QWE!Gxqx2+mF8nDJ4$;E>!XD^E(oj=>xwsYEe#~Y==5VsY)TLZM41(Gyg)`A z=4rd#bEC`^-3^;;pEri}{CX7a!hDR#j466g4qW|39uyf_J8LUhtVzB1hiqul@`nK| zn{MqhUgYJno^l;fOHKX++0c;GypezC5KZEssm^tYXEVYU4F1)K7?~#T&iu+q5rJ=m zSEZ4p3`l>aLAplcnO@D$dq0W?#zjZf1#zh86dc_BA8^nxa9RSAh!iRE*u1A#OzL>A zEwjJuu`FU~-h#|Wc4U&n*s_tMBc2vWKtQjpD2G*=UFNSGHd2>-`6p!LB+dL}#XQxC z#|06L2O)_T_tdCWe3K@V&A={_W~VA7+>%P>-Ty zDI&)UV|l}#_R!2ne-pdrRbF$|BWq=HnY9_nK0r=GLLw15iT!Ldc9Bo=H>GZ?CNKY{ z8|YEJNWw=5h?ssn+m+^D0cm7yqWCg;~m#jC5L-^gAZWK zF8?DK;0xkNJU~sPUJx=+^^K?Css1;w*Ayu59iA^#d7F0u<#nTr1WM(nJ6<-acbn$3 z2(H@a{q|<(cDj!yc$V*zcs$QEWIfuP* zisxD0%rANO?VQE`V?<^K=f9Uy__>vvnmCg#{oQ|UkKcj;D)VP-tK+MK_-c^ri*DLD z?c_Zaa3XQqI=78mAHQ4VQYP`I;GaR=kb(qXgGkteckC3^%{xDTzwE_5CJ81&OAU6h ztM3071xlt5@eL{C=J1-dIeK4aS)CdF`uxRN$1}|qpGk@WhIyh^3nY#(ja)7LF&^s; zE`8JcU-$a;YqDN^XB7zB%>frNPfjn+&cEhsQpg00&kz zhz-a;0)-mqkLOw@`J^dS_mlHgjcX|;ry|+kZB6zcBZ^eY`M6yY=&*?8iOiHt#~S;NWC8A z-LMY8o2pZVtX*w#X8y%flAB$(vT7w;Zkx0`;|kM6Ay9#*fIwX!@%iYwdAl9Igid!# z+>Veln|dB@4Xc(2F!&b?o(*)}z{~Dcz}79}mn&3RzTUL-{=QHrt1s!kZ|^cea9p&r?a@uClZz5~>RumyZFGRYdrjV|JKv`<;pq07izS4n0ZZy>EB(Ixn%On!j!LED zbrsXF0`@|>AB#NsghL8OgfD{f_b6vErg&*LUti+f-Pt{Q0pS_O%6ey9E15^dE1pSd z0jn9q&iW6vB^`XOAG%6zLujfqWDI&EMjA*z~A>{`p;!uY;asITX@6O3_v*YY;%w;nk zj62eDkqJzeE`XL#g;2<~dC8{ncKbKwnHrnj)G^5;+n?VrW0vC%z=nY*Y~sz3rEm^A zY{xLoU|U9yx?9o+Hb?E#hr?15hnU7h!91erElMZH<+!a4Hs!wXSMl%}HSX{A(!Xkp z51hNG68)b*QYRzbfZakJavWD=JCr0G=QP+I?R_?{p4q-bjuZ&spw%JDn=$@%OEzo} zo9Q|0i3@kSWK-kP_hLr>j)&;c;c!5SAx?kdWlPDc75fi&T)FF9wyQwc$Zgv|SXQ9zLDv+?XO z&)0qyO*^qz0nU#4Rvylxjx;Bk_Z$Nv5m8D@DGH={i z`6|S%t7Loe`up3jzu?iN;)4tmC5m6E?CHRYpyVGlls;o77OP& z!oIg?#)BMlDsIOxMamjvEKqmv%E@5Kxf3{9M1HczD$P?>hEmLiEKJnL4L&sPq=zpE zt3<=n>uJku)^Qy!roG*)KQ$+%efs-HOmhT<26TO?@d`Dr#EZIG@fh*n6kFK*cu||k z0+yXp(}S78)~=)v0daOimOAbkNO|<_*^uPdDP2t?rZVqXlFSQCjxYm}VuDm6vZ)U? zAY=6j`*BA*i=RKA{eWOs&3@kVOc+-nBymNpiLKp8!_oe&p3G^Dy;CX)kr;n0*3cUmp3^Ea|J_Zoe{^)_8F0oYHE;Z4Q@mWi7AnW11(5 z{vux{QAq{g6Cy*Qn{zet&d+(89(QKGO^n6$=lbf*wh^j7!&9D>w z&TYtMycAmiVFF?z_H{Qaxoi?Rr+NIaPWZW_J2dRa1ZXrcWWvC1Ls|dWutn3|8{AJP zYq2!VaQ<=FZOOrFx)Y&X!K*~dY&>v%^Sm|N&T2E4{DZRfdTqw?!jq;kYjAk%2anxT zWbb?2hsu7$4IleFznNW>U*lbR^~V`ZgMkGNRIJp88#5FtvplDAU7Ec%>(cj#Zz8juIugo{S?a&^H>bV+^rKV!w~p|-J<-e_H!{}BNZ$kbXtr3@mrv`T z+&d(6EmFCw8OMQ>HnhYe^1*Ah7Mcq0|kwS`BaZ=Xsuv2MXu3D2O{K7!H=y z(qnI=u1Kn~urzQtL0LDt^KqKuxleD0aGx64BiY|udt;~8oW;F=*D?$M? zi29oyX-Su2PL-GDZ4yh3|G8DPdPXVpHA*Z!vgh@O8$s3r}RT(p#8c4Q`n60H|k#HJYEFx$3A|vX(nD2sC^o zTJTCi;+DZ|7Y{8EHMiT=zcx7J&HaZW7uHlT%R!p0y(_4AaN?P)uCQHki;HF(bU&T6 z^Ar1qnplTLpUs$tgv;9164VkPQljrNyU$OmqK*WcSDzVqw)gzy<|z5oTFfwlPLOUP z5E}lHIR~0wx=Tzl_?tNrH){WTN@;KZ#6aTw(y)aC`{!}w7*Aak7&Ci~@r{p5cBw}* zBZ%!mnUd7~Ak4Ag!$P&iol8pn?S3zQc5l<4d}aX(*AL#N$=B8e%E_c$mF2N+{!=aI z-CF##uG!a>b(B7Oi2b1Q94LK+K!IxKi8dyzD|QFV6n+TR-5{qXDiyuh|t#pbt(oSlB91}7Yf1)D4;o%Ku zP9|1-c*m?r5MvSac$QMAha0Ap*E&6KmUByW$GmMOr!(u*dYr8%9EqTsL`NJsf%a&5 ziLBi9tA_8bOjf<;4?pYKMG^nN@L0x}&C76i;#OS&XRL0maJA9Fi~XC_?kWW|sqOm4 z{2OFF4K3R>U66qi z=HdeyyS1&D2X%LMm6!4c4k=KWP|F_7_8W)tFDo{i`$dIYAJ(tG8e_VCGc(A`#|`DI zK^_QkHt5bPKgDI;k54BUCFKH8AHP5c$s5a3?}>&w*|0c8+eHxhDQ7_XXeQ9JdQ5 z*L-50A*t4*qk>$?E!%jN&diN4XK8kvd1TifwuXwzDdQoKydsA@9k$3<0v84-uxN!; zRWMmI$IO#Svkvf2EqV|qEZ4nN-A#oVtExbXUp$=yliiziMVvj)m*3&6t83o|sf8Cl zFa^V8WdMRZg;32lB+uHq5DfTAz}GI?o?YB1VSVoE-@yybe4;aFoEn^9K%7$=qN35F!uY=8mA(FUuryE&+I=XqPw-KHBf^(w8wV_Y{Uz)+h7dZ9s>1)QG5 zHS;FpMza2Gk@D;nG^L9REgkQ*I5EYE@wrmyv1HB2Z08VRm4%koXWiaCl~p-fcjU6+ zgu_DIjnwss5xb|&)mJ*DnLm2XQmOm$z6CYgZX-pWm2J#W4_P26Mg=uUr-59jZ+4w`B+gu# z%C30kQj=R;QAktwIEM}zj%tu7g=^|0|I>Nv6i)fy1^Xmee`&U*8S}o=q8cR;&J_U4 zDL@MnaL0fv5$PyniEHNyP3)%0M^z`V*9mlMDfM?<3>lYLLt>GlfHoXG;mvpXmnPo+ z>X&9V82^kNPdYmn6pT}&AlsB)YV6Mc$46N4{eGRBam5(+cR0gaeKEBdkaCAktQS=w zfpf!QPyCLiYMfQD`P#l9Q)nb*ZU0KOM-&3I0bIUY0w=PUyehEm;K`uitipDLDmoZ+ zdRugJ7nSD!m1=m;_Q{eNMqUfva7__}ClPUj1FXy1R1xFeT2@3&oLXTzVUKu^uJyfbeB(uo`DBmK2W@^K&leGjZw%}K_2^fAw}?2%l5Fm z&3hVKw_VgI$SE|TriLI8O#qh}crjeS#enUS zOg!IVv#)J-k52m3V_O~!n<+i?*b+$Bgwd~)FD48}33-%w%t4UB8BwzQ-ubC<@nCOhdQ&B?W8kLjY4ac~j{ zn-C`>CS&M_X{lX(Y2uwMT^aIkP6&joImbsoDGX>7h^DMy+YP zkZ(gijm#O?V{k(`lDR$1Wo0Y+yrS zdiRMpXHJBt6>XrxROHXYKM1J6AOOIFxLE0x{Nk&PlZ%oCJ@OQfKMMG0^paB22n;Gu z!K(skQYxNUz0gKgp34~_Qs2~8WCU2p#I1^(KW;Wec?r4yu?3O)t{rz%71P_h$L-dm zTFXTdWz@zYew|EVC#4-`=RH$h)^1zNokm*Pg}HGD7njGFj{AA~^Qi4KR9K-`A?}+q z`A>bCQx+%fY8?6S)8a}}yK;W@L{Kn^3DJr*evQ2z&y{eatZm0H-MTxX#v)fgk3&#J zfp`K8auQ%(Y!CHk&-@^JIJ5q-xROKu`ISGGj)$NEbkOzf;nv3bGXJvopKqSSsS-L8 z@hm&KHolB9x`?+YGDS#7HNkd8!!|t=-1y1$_m(k+S+oHj_jRa4A7RnF{L-Y zyOSqhUE&gK;*`?Ai)GdDZz}Lcj6mjQll_Kp7YEKna^sd$Y5ifreNm8YdJG~LA3G?Ig7G0@G*jj;1!}40*4}` zgusmn3M*!8+#X#1;b4yTntLNxyxSLa>T6Q|eFqSOun=RcRg|*_smQ;J`Ijpi8L;wX zUyg^Z^Ko%sP9!xPMB|X=MtB%3k=lq9avGL6DK7N=2Gi8=>zuF8sti0n!OdAkVhHYW zga9c9Y;MR{94kAS%Npe*s@0`(DP-4~gI56;dW?sIJlB`T)_J z0fc{PTf5(*%afm*RX9w!eeHDXn)NMRQQ@UQP;fA?j7sxX@5W7khYe4dvqKE-x*YX zTFkaDA8&}~dH$ZZp=)7dEXxbghT?HgJAmm2JdG$Ifw)2N^fErub1c7gMb{n7(cC2AEP9B#jYuHw@2B6(SjzFEs{17T z(zhP?q_)C@CC%#51uCPH0O0XGd^4b}gkkDmxN{zbNefkbb-ND-3dI!`&K$QIxWeG9 z0BuZ&#hy8(_|{s9=r5dh(i?5<_3rA242w<-z+4~rZo|HqN1V`GnDbVPCsbRa=>^lH z;KoN9G;C(_=d-^`b-Zqi-@4?f_h{TXo^LZ-8>riem_HuDBNmzN#c1FkwR*Mg=KZ|# z#a|qrL=G%DRsCSxKu|-A+_)a#2SHox567)0NB;Mj*Q_~e{A$hKK8S7&r=CYe4~W`^ zC@G{WZap@ie-iQCChljm!OZGwdFCya>u7WYbf*J0Z+9OWh#(XMLm)JaS42o`Jj+Fe zXGb+tXRof~fC}KgGKcAPz)bcD_=`Ck2X7%pY z)TztH{R)0#kfcB0kiu;e>`}O-oHy4-->G3$aoS$HI0rhm{QPeeRX0a|ghp^aPCG1@D71tH*o*^HHNIoAeQZam9G*1IoAdmFLF3Vx3rntWpK`uiGX}b>m# z;-hI7n8qRYI;v#<{CAzF$6&|i<+n!S3g)cqBAq$3P%e+(C~bi*YDJfjEq-*Npne z70(y@_;8D++TNXw`9j+$AC99xB&p$tmo6OeT_vZAZK}~ZR(5KqeL+9Bs_$*19K~uD zN&-3q4-Ob=C_+QB^x=D&hD}v+J;j~V&N?gGaij8@*C!@#4!=jv5$8j80X7jDmU(;T zw$^7ZqO(`&R>>}zGGp__1Zjq+P&6FqwC7vQEY7Jg4|g+@o^q{kUCY8`XCKC=pravV zLA%x6++1-qRn=u*m4H=g#8L@y4R`V>7dbn5V12^*3n62PGG}UDvdX^kD#$Xt{&L8`6L*B1FFfkM}FKG}Q z&22w*Xk!Tp0CE$QeLy7j5gIy0ukEQ&@OY-Ky=xRUc)b5v4fl(;b=!xbD%oWFgrE_QPpQwE}1h*ZtgfUch&m94b+Yyo+SKiFfA&X0;(-g z{vgV8!-O$j-sGF-Y9?h~Q~kKaVUPSFeM4w#J-SIzThg#6JXSZ^CkaOM_2yT7PU};3TId!!ek`ET^g(PnbluP~>h_K3uFv+n zEDmSbSFzUp%;KgrFJd^t#{@}w5G;pu8PuPPkgesvBXd4nX%1=VOlr8cj$fm{t&q}Q z2qb-@+SvMIE;&c0%^bK>c}&CTsJ+5NJ)LoB1tth7qzYfkyA`x)x(~j8l%-gZY z>|Iw#8UN>{>Edpk{^N!rzAPak;DTwjUN?Dzx-w#B<$-4C4$9Xq=aE33UdKxq;oLvkVXclT8x{v0SeJ)kochY{3uW7I)x72?l zv3olnm~UQk%V1sJ7LE(qwV6wOIj)R*9B2R$-3c<)Nk@*$^Z7h8yC1Rgd~RDG!s=BY zyPigEH4l^{=LL5G;=lHRf+~uVZ6wM2!+|I1MWH4Z59<31*}fcJ_JbM*r!U9JM3_m(P$q?REMf9A1_}=UqtpScXZhkk!I0Rx#h3f;XX4IArOZV^3TBz1*Q*FpM zs%tUWI}ld-l<{#y_K!(KC$NjN8@#azT0D4gJuUf|^Rq_sAylveyc94~+=;NIuuT z{_mjV6%BnEAclb1J@HJH{W-%ialcW{cg1p#RPo!?g+?UQ?ga+`xdXs9_r?rozB+k6 z@qOk!->=qN9JL3ycGK3AgW#PNaGebt40u-p*#4OOfeW{eMo8EnjuGs{rq3Hv<+(yB zI5+^;B`MY=1zD^$aOdQHbNl>f!P+i{EwjV!9Jip9HvD-M`v##(UhQ;w6x{Q8-}+Tg zAJ5bAIbMJ9{I_?nLa8r527^hVE{gd5Nm2-yP9Je^GH(*KH{Dme%>Ax}$>g5D4DTZc z$uzc>&d3XmsXV=x!s)=>Rx!=dfK_yckd9d5Hik!me+m!mldTA9Wgk!G5wv1`khoAy zU?6anK-&^!hNo?$loS-Cl$2!PLLPGn5E4>sk~`n7T^^AECEI$8vM)W23Qx_Q5K1Qc zQOQ>Xy7I2G4ZL(sN?uuB z0b@xVS+Q1f?p2rVLNk+s@0C6)e*b#{2o*CVUS{?u7tP9{sNHP?bFVC+U0{C~N-u3h zpVbE3*FL}k00W`Wjy>sB0}Tvz9^0<)X_lRLCAdA$b~-;<#(FwVjEek?!$LtXxWhoi zlVrmO*4~rTyZVf)HbB07wCrq$#fQ}3aTCS&I8n3!&FScMm3Y$JD+_@I{HJ#2I{%m= zcl_$(0`a~QD(9IPl&Es?R!~vFF3l+}cd$sWzpu2A#qi1SK`E=(>Wl*ctAv!LtcoI} z5Q9=R-Z#Ti-jJa4Mu3|=qj+JGzqidk=jwoeuqfh3Z+A*wzdC}kpN)6TaAz^OD>}CY zd~nNSUQY5WZb62Co2b`UP}+Kk8JU7x7hp` z6ZR|a-1!$)X|ArEc0_cojKePG!K}d>2_7BzmQ=UpR zJL(@8O46WzvsU{Ycdm^qj?><4PuXHVzkLL|bC4N91V{+=2c>C|MSQgm5_8(Rc}pG6 z2hB~%kv*r0xicPX8}wp?4_Qe@2AXX^qBGIporcMsJ$$)AmbZ0B*tu!v{<XpO%81jctUl%BYg5`azq(Dd334z4z{6|^l84y6vJw9+Hb%nG=MZW((P%?{}=)wW( zv3kqrdVSetC+g-}2CdbZPDMWf=TgVFE!ZISs!hZG;4*cjHkka;j7y_-QQm`)Bh%Fg_AsrqMF&GaRF zA6+}1%wq;2XE#YYirNjpL{SZYD9fJ=BdI^ZBCnSVTw`5THBdfa@edL;mLy~S*u70V zHLMR$?z?!XMEdt!50SQq@^b$G2zv-QB+#a!VOdiy>m+T9h_g7S6IpkBVQhrTgK>8v z+V$S@DvFprr!IDui`C58lWQl-ZS~)#*M=$6o4#!L1;IX&u|;JcxA;XR2eoIH)wPp^ zC^Fcwa|FQ>&}tc-+f=8n*pEja9^R*bU0r;zE}CcMi?eSIe`S6NIvNxg8vEGG z5pE(vN5Ds2A2HQ$4Oh^o_Qm>_`(h>Eb#EX2M=p^P3BD;JUPh)UWU&FkH0I*U^5wW3 z|A|1=LQbCSB}M1v8c+Ub%5bdQP&F)M%pp=*UsQI4-I=yN$n5mR1E2YCxCPT3X|99! zKQbeU3)=-H%pqb@)Ogovwejb;E#KbTaqylKIl9##`^FRdF&Kmb;c$^%nTQo)^gGSj zzwX|mha=_IFO}0e!owZwjZ7-(U@**($4?3pMo{Vu?(IVKHbB5-XyLW+Os;(K;nHxo z6{bgi^Gq8U6T}cLgWW|ssp$uMEOQStk8tH|o}`<5^!aF)tlVk-MF&<;Aw{&0CqQFK z2`&NeX?9f$EcU!A_uDsx!yN9vHP2@ZDF!h>T%~^a@b8U;`BIcug<3=uXLGmpm0ND=s&7 zU81+K=7`;`EA%TGr*fS6+J&n8}|Ieygint#atWgg7^p-h&)t zMA=D}=k1dt+RaWY-h{6VJ6iLyeA;fheN4U~F3z+=~d1jUCyt(`R+I(REPJL#>!$^lZ?IYwam177(s`C#0QpHvU7>aRB;y5q=M`0So7xnr)N%+RQpLS z9>wcRB!g4VXru$fPQeOh-&AR6-rdW-ahd4l`Yo-$rtnhxn*>7e$V&mZk?hv2 z&(Yye9~%GkX$cAXc0H{B139npAWUs|>Y6t8-)g%P+=bpgG8DeaGcucc62)Ff8vt!_ z6x512tJrw%Y)S29nVOI9UDj9!8S@{Y9tRf+p}*j?sAP`l{oJrvKGXY>@yf=}g$Mp9 z^8bC=Ob5V&a6?fZH?*oy_(J4uV@aAbt_R8aEV-}E)>+QN8YLTNet`){iUZVS7vu9! zw7w>0XR+{B#g@3q3McPvD{vlr9KzcW!iV+|$d^LoP2hQi%MX}MjkI>?Ou9DBea<<5 z^~0O;nf}T9KShwSy*-K zhslfC1B!3(pbO&{&s=(U{xg|NuFaW2Jo^vKo2~4dEBxO`ET?ke{Fk&A!J?l>?sUsZ zsd1Rs9-y65vd^3ecSE7)?@l&~W6JP7~ykE}TlBi`yb6-@rs_-#{) ztxe?|$~hU}>S_yKNo%kYoWRvitP@e$fYk-_n4DBQYq~4t=DWnxtwHDY>1;4`7@4Z( zXb*8NsQ;Iq8RNUum8)H$!>8!;=*7dgUv{U_CrFM&Drb=IjT3T{88uU8$!mA%W$7#Rr0($hm=kE z_$v)5u$#975C*{uf@0yg7o<5Na7J^zaOF*&ZhW$EW`(A#rP5)pB8f?>nL%XbGNaOP ziES&N*Zz*DZPq`6&bZ|3DsZi(l(_(EEP5F+QVLNqV1sUnX~Bj|Yu_F8FCO)Icp|!W zGnMg82T?aEDMc_@t0(uu#ko&?;CisaZCYqPZT71i=J`<=RF47~eEVcZzWMsMT^#6N z(>h5;=5ofCehyPfggyy?XI~t+6SK47c}~3p1$v+#;%e-HVUEfg7m}djA&Sg zOilWxk0-p24)Ui7i@!GeUuEANkaPF`|1K*PMMV-xiK4VODw5eGp|tnpZllr=5(#N) zh^(Y!q(V!iXh@V&T3V^kNdv!JigE8_t*W;dEM7J=Y7s~u6?BiI$AQ1h9n_x z_}s*b6lJiGt*QcI<%iRQmTNgqceuIY=m$k{rt!!<2@WUZgvHx6QDQw)Og(mS-OQ*g zURB#dQM2~1LF`jsZ7WM-`~~5JB;m};hxLn=1KO(_({AnRS<*d!rS<(bJ<=(Sb{xtf zfCLFq#5i#X)dATSsUg_xCVRKGyu15raH?>62~FphgNOL~T+`GbsC!cwErT z5vR7Riae}iw^VbQ|2dX2!%>c9%xJkh@oDS|+2DakY_oG_KtdECi`ggl4Mk7p0t*ZdAU!R(o`v>fGxKxDrTF60Mz7 z2|-+flzAdAb)idJXIW688H5pf>Dr6EjtbS`VNfBgYlLE-BgB&d3Vh7H$4699&6ft zhf*EOU7iP@IK!A3SzRA)ouwC^`-((=LjB_Nnr3J?-H%Hx>-jMrdCq%$O}ELw7n~xL z%qI*x1P=d9P@r12uXpB$^s${vc0KMI>r;9!*jY2E5lNHus36LIh1I2X>?z4+-OMUf z9~Znn>E6w@Z#Nkz=+i{nis2lgYm4RhykAjv^`YSJuz88Ic3Qq&DV1c*G#(n&BE7{0 z#67Z%(FrqGiP~kOq1M~A9xDY`wA*@aB-J*w7Gwj#!)3@LL<0c;lQ#JrbK;{_>t?}U0kFF)^-PrWC2B}lg*um`wdM3e|&9-(2bQjKf4Gxzx~>~nf+ zV=U-jQn7?|sp3GKUm#%~zx?ovhh_J^kliGDTk^x1pKABCe%)?*c2PNinifz)$>z`- z47d8=o|gEVw6vaf^ER_{>z0ffX9?Sn7P4cBlXC zTaCnCW8G^%whvA#sK}FyzefR7Q1E~y^rxd35sy;xz?wPXI?bnUj(J?r9=f)XlX}8r znFhn*L#dBw$y6L6HtDd-GKG`H!Mmh_vh!50B|2@MM0y-N0ZOnWSULm1acz#T{^XyL z9k*8vNgef0J7N7qh@6-lI3EdHKk2Rk`4O))Iql4tR_2{}HNB1M0@#J7XXW1BeeuNsQ#P|Y~_)b3Ph^s))^&78)s_%sUTD$O$ z{pA-sc;AS#M3FuoPcRrW{Ay%rLBxurF};p{gYx5>wnWRA2p!0|JV`tADRr9wL=mFF z2c`Q|u@+t#JDWJ2^;UM_B4ypz4>h-ykg+$25cPHu9cPHcGO|*&PSkd{=VSK}RN+K8yJxM`S-ZZON9%@raTy&lOBg5Zo zn@d@6RehE5lG&um7(r+t+~c+%sQ5v{A_vV`+EjG;wPaGnSB%AK-^uu9z?c!$P@L%{ zQN&_nTx$+q;I^<8WSd_YE;M_WO%3&+qQ575kmI)z^lzx;ohv2OxoR=1Vf+HF9F6qK zV{`l{3cwL?&jPd&r>@loHnqCp)#ktI-pv(?deW|J&DllT5IyA;q!B|#9Y)|=Al-X& zhn4B6((tLPMxSjRe?7MA{Cm+E}MrLoCo}A%k!ZMv( z5+LGscVM#SR5$KR%3mx!4Nj(RI3<8G?Gwie6bK_+e%lIALHM*PiFa4O(`iqI2f*d$xiJ&pi zPw@acVw(qpIo7n?>j)K=bE)38J@VYA&?;FboRWeJ$tyj5Y$3;o+-vo`lm13C1s9Z@ zRNb+yfVQjnlBp5{B_}NdXAZwLV4nw7lSH*Tzmimp9@%h2*~5vGhxXu(e{nGbr7R7c z0@~LRYr=gUYQaI8sXoPScawf-7k=dV5GU-Y%>aP11NtTC^k5~V+SCwv$ylFNWw^!1 z7iGI_tnE3E^w$00tGLJjl7Wtd+yT|z*sNU#x`%zO%GX3)JoY|{ZByqI>PdnPCq~Q5 z{mYjsA5@m9h;cVI`&iMJ|Bt(Wad;@ zDJJ(KztK~`dHurJtvTwZlV>;-{efX-Y^1*?;%jq}+ zn7aS6US{4S(yr$TyMdDeiXaI);<*#RRB2dtta#PJ-1O2Gse1Xy)CWDYNZ}{U@`#`u3pgav8=o1=Z(8Z zr-Vlvc}spE9UJ)U@GMfYtS>33ArSZ zf%4L2F ze`bBvfyjceb5*fShZPM+EF2#$4+(PYi##rtnKc;YzkG1wN&Yup4x{dG6DOmHHkv3$ zO~cen_wBFfy1VkYu*91~ooxOlIUP1k!;wc27ix&pOx|nZr~5_p@6W>cp7E!#m}XR+ za~if|fE?W%z(R}CE?CvPC5RnZy2F?b3Dn8C<`olA39AFmwVmGP`>_5Mn0T zAsiL~=NX+TLp6gq?mYVdzaay4+i^uOj5$Hjp-d$vn)KQ&Z@KZj< z>`K&@v)_g`TvO>>nZv+%pu>V9py1duu~}@__@wIfvs-S>N-`JBObT1maNX632}Sih z!i!2{ZbSQLi1WVbZZ!IQR%F`VT*px_O2&lU!dvetC@M-4+0NJrk*1B3GuB2)um5&+ zs_5{`-fao{nf@B$_Q3B=W=1nfUfAiM2M4X!kGPL#Uug-R7rgP}O&xy*4n2~%n+yLq zvNF=x5}SgS+mWubhntiARmT1e zVpYg=->K^gk1PZZAWIs_TfSymv>jPHS?NYYl-`{CiRyDDTq!F8>;b?gb_6Fj?vQB= zKTm3|N8a2G;+vOs_n`E7pq`7&GEG?zeZrUjGC0Cmp5 zGC-yEGSn2}rDz}Cv}I3p87-#SHe4xmkk%v`=guHF@ufsoQ*v>9MN7}J3$6N8V?5xj z`>r;<)%%AD6ATZ;cDD7Sz8cwO+(b1W)HV%pGHT zo{>cb6@el+4|8==+qf%pe)+cPY<}*#SWGKjr)!}{31eM&E;s7fN~W{}>xr1%)RfoU zk38P)I%fVFm?qZM9v2*T++U70f-vC1VSFTz#^el|S7DSdDWTgr@U&o!C; z18s;4Fk-Ty6cV=IUUA^Bi5)vV<5d?MdsRi!><905G9es*oI8YfxhEAzqP@WjCG5x$JLpQz{)o zG3!6fDwl3w!|A-xv*Plf{Ldes7T5fc-ICIm5sY|O@om9%2x=ee?|qrJUd!Z}sn)^x z!RJY-!u^rbOe;cxHbhu6l!_yqk^bRJEc?w~`#|cW*1hmB_TrN>C=C@6B3w6ufz zuNerw%ZOu|*}q^EuzP;tnPOXhSTBnauFSs8HIVGdLfwC8;)a`5Z6JY661NG~oQ^y3 zJ@)P8sE-ASNz?n!Y6P4zCkar4|J4S&;KbU*-@=VSr~{8w0IOSlJ-y%5I9<)?7g|fyX5cOVgu#^6}lV6 z_G~#r%QhqlFk|pO0!;4A`$<1M^tTDKa*PY{7N6ALpnt5YjTt5*18)cQ&>;5(M0MnU z(%QlixjWx5aI1u9j8uo9<_SadZ%yBO1DT<}=#kyYs5`=!2nSC{a<4bmE&m z-so4RuzTB`4V6mUejQgD;&jcPFc@7;cyMrAClNHvBx_7LvtDm!hWwAqWnZ-(OrD}D z!*BOv0@@Zui^IeSc~sve;dENq)dbe#x?d_51$bXIOx5^vIEs2CS@-+9t>K3iBrNwN z`WGqbjYJRsilUx>Fb%>&pyR5g8$L5jYsg%*wD!Yt^9^suDXoa;-@hv0fcDcj*SU++ zCXgT*B3=a>x9#BO-X}plKP@+jr5Y(2Zr|auH*wc&JPoCl+l4$4;qI1 z5g?%i?5yZ!lR<@c@ouNpeo08!$coMPuu|$g)^v`NwyjPz9=%_0WwkA*f8KpWt}MO61v76&HdtkO z?7&k|^}>>3i%S-?n0%|@ST0L@IXYDmju;DKlz3zXY6QCbNZa6-yt6kF9J;68zCYVS zmDBq9L=c%T#N^rO&E4+3R<$K{fAY3DPcLJ~CAM}%{fVLBTpYD{f=_^`VJC~0Ro$Pb z&)pu->i8yN5sh6vm68;pHY9TFQEx4nn6QFiscv~A;a5AVlP$0@jrK5+ks}jnkfWg{ zGm3B`e0r8ocJvPZtZ+P&!~grEVtj^a%j8S-!-kp+>rML2jckfSzd zYMY_jS8flLc|jHv>Frep#~m4kg)it(ebvA&|{a(iWW8;3GhBUZ_Y<6D_gx zuE~(lsk+Pgo0fT6WKEO2MvjLN1WU5=7v+z@*7W$(I71{2jw}h@ur21<*aQ1HpQz#B zMIdrGiA-hU!1-18*1meu^k`;)&a$N)PpZAut_)HDbW+|l!5+)(KT zZs!I4Y>KNZMLIq{x=Tr_I1vH^z6dxn5N(XEH&R01DRi?agiR~_qBOO5e5>6@{)am# z{f!BR1Y#EtQ!|Jt}}L2NqlcKq{mE!)OD!BDCF_U z+n3%Fe`%|Hg;?n~z5O%eiuSloIHQ!;4gz6;(6iYxF}~s=_4>xhmkES3l|4?H!dYlr;Q1%#M z@tj&Yfij*+%S5IW=@0EHCjlUm0M~*{WlKDJ5JWcAZ2=43BH&Zl9LQxf z?H%pqKH(b`k~Q&kgd2^BP9jPxAO#R^B7{vzD(%IbVs0m1k-9%J`f96`Ssq_i^hrZ% zQ-HNk0K$6=Pb362Ae?l}_>IOxVjRnFHD^X#h?mk0y-vxK2!{t~+PJ%dI}3d-RD2yp zZsKyTiX!Gr6Y1>wH0JW*XOg~1P-k37<@b+F(?w|5Tk4&~nKoyYuF|1+l`D|@&{c-h10^^Rlm0$* z?WL!aoy@e+=H#>*IYoy@mnlsXy1Ju|r^M@qKg|3UtPS3e!f3YYg=4u-cNTx+7n;QQ zf4rs;Rh)z5XWLe@cTb)DJxI7oclE2ido~&^3+ZA;5XE(n|Id%%38xViSoU1VZtWhC z91gdrIrWP#!}$2nO@qH-ZET@XBPyT(FFdlmVcDD3iXZaynKEa39*5c<11B@ZNv!_` zMh0#i?3_N3Tyrh{y3c8`;rtk@MoU$WRsR9TRZ&E^cecWOqlRp?b<@Ja!`^*Z6uaD% zQjK9lsd7TZipg0MJQ=6_qg#E3O6RTo?%49_+ud}J@~>ul{U4NZJrhwr_$F`fk-|Jp z+vy!9q0V2dWRJf)|2HhYQOI55hxt~fmw(`E6ZN0;OQ9)o0oxb8RGGiR-1oszh0R6*<=!##xf?IMa!trp_qTuA zI@bI*f*?`g6}nJTKWLL!2)kZvMD&46^&v(FT9RsHi?vdB{|)P=jPcmsFuvo@H|xL; zBNjXD>819an)ClUoRUE)TG8Lw^g=A1M6x0cvcI{@%&FNv+4gT>2=9Xa4siHLFvP$9 zaUdI&ThHWin~XawV4*$QDO~%d=vL7G@4wMdf<19W;|2m}z503l%L|FeT~WD$ItgWq z{<;x=n;iYjO3yty=aWzR4uZXT*u8^dG{q-M^`M?*eG?Fk`x&GzIaq~vo;X~hC3~FCW{0;Kgj~(7W zuwQAlM)K1YBB3isEa#6#aGd@h|Agrq)2vLY^n52*zf(S5YPB-cJ9SbZC7%7`e*G~O z`lr2cJUh(v(z#gSyYoMNp49XDOf~oS|C-4kU-aXEoJF6`vlY$ND<6uhWk`7(JFxt} z{$k>X%w~PHPxoWzcm|hZ?pRy?c^;vS^hfYdo=7c(ehi57{_3~UkV%${#?MCWr1?g7 zUjJIDlJp;wpkbQRx%uq$O^3hzD(jkkxA3{)m&HbZ0}=a9u*4_JMVCc#z0OoQpJT~# zZ1gGLv#R2OD`Nql?8`myRE*6~=@MQMpeC-FhYum+Fru<(h5E$^jqYjwdo!L95 z-+lFYrU#bHO-f7q$00*^3TDl`RV{s%(pMh_3BQPV$HgsMuCaVxM#g^-M`x4R zXQ|)&Rs{#g{#u!^kIOK>=t5z>V)Ea?6lyI0!bJg3u{CN-RlUpPOE+AFxX{0$AUw&1 zVUoZ)j;1V{`@YMAcA{d*K|Zs)cM@h>{uPRgVW55?oZJL z``vZC3NO*2c>Op+Jtd@0Bt+nq3FQ?r!>@|X>QA5j@N|$lo29OEpCe6_(og8EIKa7# zES2<9vNTNO+ckr0hCN(DKl@(qN^n1y{n-09MGtS_fkG@vVwA{?sV6V~bRzQP^4*DI z!xbIAx3G2Dlqu9}pC6K?!F2}NkdQ?@WFc!ky4t$ZDgBq^#akLn&ZG;!A^#sAiVL+w z&jw6Py&Ru9|Y8@mTj*RA=n- z%FD5Ryf>)-c9%p}VONlS!Tuu&8D)U7+~-QejB<^+kC$1g4TR`jsGJ+J_%qug>cInj zjd0xH?aPp@7t&X0SVL>df=H2D7ivyx2BddBvRHq(Z3%-65wGI{QzE*Y(z8Ph&MdmI zQC@ty+QJ_J#zuKH&e|PRss|8)e<#bVq}#crWzfX6#9ter`(b$29Ieebxf0|&jObn32hZ7!JMa| zpF4l!@)GHt_X08k*aI)La45E`|Jy$xmP7pk_G`tyx6hu8a&VneyxnT6JYiVrVN8?+sHuSGO#Xur^J=FDpxD_aA2R=IFma)XDQm*Vt zHX7b)J}qe0lwEU@R_~+=VIjdCj5lD6KuJ4fPjRG^wQDH^sGo1&pn5SwLs;K;z#~>P zkBJQA@4=K%nLT7}hTK9b}y-_jP*spjP#Cy=d%>>OUYv zS&dVHqeim(Nx>sXTto$@Fx2>u-R$-zpXmfP9#&tA>^KKYxEU9Fk3+V#*8{XYRH`59HZ zgOdRvj<(p~B|EwCM?XB=i#s|m3yq73l)Ru62l~v2zn|b2CSwzRV0-eE##fk(E;J4Z zV3%hpy*-mb5RW1OTN-Y!K$dirI(^cAf1P;a!6g;jHS9RA^G*M363?{Fgq@Sgb(SO~ zIg_XPtof?QvFTY$Y(}${yqQh{Q*b^Nia^BCz?K*2=c@~pd3|_gX&-KysVeyX_$|sd z01IP6GWZeBd1NdVu#HcA+4~}Re4;(Xc9u41Y!$crQo~pm-MC6<)=&%wW9j~OA!U$f zSM9N^zyLsEcW9GiKk*LY4S-2*Yj!WA1ryi z>I4%tP%s|*;$QpAOKCN>vVXGf{ z^6A@)z~^^460%-UJ_(p1!xYO@wtbN60~USPZY}0!Tq;{M`O~Y*Mqwwv5FHC^(WuPH>*ar zey1#aXm-dWL!KkDz>bO4#{*s0U33(;bUWT?sW-FJWs_r~fvkvdq0syg6;zr9V-?LB ztJSo}!=_r7!sJ}(3tLxF)usuH?Yubwk+gXc{dH#qi6Al^3KgFMQh~mi2sEgqe z7Ewvd4SwOaCy@UZzdUt%@K$K>7Nd{?!nW#w9Wyr^o>H|}GuyB+XIl3&EM2N0ket## zhtsXt4%mZv=Nq0&XDwFx?09DQrD18HM&&GK9GDa#fCZTu2;<_M8m_ft-6p`4&7-vSuEt-v7F;y*u?}iRuBF^qmThm|C z#e+y-haizDjpIcNTT32(4K?q$BAoZ}R6`Z1;sVlE9)cIhnmuMO8)y=BjlHqM2YI#g zRt!A}WF@&T3}p8E`hp+_vH0^%8XxLpaCf>MT&o?k>|)xQb+<0lS3!nMA+IjEcyx>#OX9?n^;_pt{_P3Is z1ZG4S_RtNnawO^x;?`(61?*t?Ymw!9+tVJ5@y|`%yXNvjqh3-@1Ua1wQ-kw}cMt$P zR0qH|ZYkz@!PZ-us-_>{6FW^NO7=FXKu^SwsS+UW~E7LZ^tv#bKH z?G5vqUku16`W?2=IC=ZQQi=rnL@3w=iE_AamWHkJw>P`aU3i@H$g1Q8$M*A|*?*tB zJQM}$pGku%|AzG~8~iFX3pFDnzG(9t*!axv{>1->i-!07@}N0l-mmR5f zYI|6rT7A;X-xEjsQ2$$7n-h`$rZ;`^71RB*m4b4%epI241f>rAZb+JhFlBe#b9*Ud z^Iq|J!;yh=GB*#6Ipu7Z$`7TF_i#sX$wXEzoGtt_VDbWH79usvw`$l_7bgswdyJY^ zk|HZCl|<0xR1^eB!_TsU0=DIdZBu!j>-LQ6n_7I83+wFXHVOYp3qBf1)C`mo7Ve=< zt8djP5H3`}gfDr1P2}E9y0IDbP<$vn<+#ishgq~(4+je5zS9+X}xy+BubuL%(=Pgg@-l==5%{ zy|Zp!2{*U**||D1ACkFlh#KDZ1*CS=X%`NQD|}VF8chCnwLNK_%>pSmPBq9B%$)UU ze9=idNhB2#zC=OE{V?P-KP_#)#_(f(H7c zb~Y+<%67p0-S^IlztLyMGHkjvK_6xxfCO|A5d|$_gq9GD=q1r2BI>=mfE3++JV3Uww%a+lK_tXbSzO zP{^>h;Ej8*PxB=fp6C0m{%J|qhi#24D+Gr+$f#p4;Ayz6jV@3k&IRq3kpeibkOwS#&T zC&DNQ$>m0LmbzV4th*DKKG>Vn((rQHq!@}j<2Y1af(+3hE19$(Q(RaWR?Vfq^ykYF z!P=~|(`HkA4iI+o^gTh^9&zlfAt_hEQWlGz?KHb9r~S2z?Hs|Cn=r+v#?yB&HU*&c z%v$=NkXEWwi_8OU4%SG^?Be}Za>h5$h?T2z0ut)TkQ|eorryousjros=EbQ-#15PO zI3`?@N5*cWeFR!QsK+Yw;$v3ocmC80_F68Mez4Z~^y}zN341sWQI8LRi29)L|EP{Q zL57C0eV1DNe5O+8N8$7L>gEsAmhHA9C22&5ewt7O6?LTU>at8u;E$H(im%xfXU#Wn zknJ#O{zDL4O2tEua5EiJ5Fm)8d$ao3@T|1~>Zh;usN8px&ea!InLRT+(VR0 zz+vyARwOB|Uz{5l^;1SVP1zu=u5ysEZAexkRs+3P-JoeB)NzH#YETbYL{4LeQtWFV zI-5Qm-0Lfy`10C%3di`s#1;U|#nKno1hGI)Bf(lj_bIns7Ax@VZ8&ZE<{-u7JW*yA z^!x%12{%LHwsnuGZFIhKQ3G&7+d^}BU)+0N_IbrA=coDeF2+vpnnUVv2n8xHwHl`DkMmPITLl#? z|HQ@Z?~Q+{DFh8!uN067FA)sPWlWL@O+{uATT*E?Gb3I;i8Cd`Gd6VECbfIR+JOuh z;($cnI$Yg^QGq}!27+;#s1J?tg?LU4R@T_4;v1O# zp^-P+!AEe#zXIH>AZZ+K2u)H}7CS!L{7QfELaSAu69vRVt}k@yc#`(-D5OLCN?KvZ zD>{!3>spw~O7yg)scLUs{cY*L)7c00ax**Lxqs9$T(&jJeBQt#p%uJyTB(1B1Y_jm zA&Ou)`obr|<9*Rq+saxhV>*|rckQ0T+S~tm{i(MO%R*Bo_fn6ZC(7R?Yk}Y(2ht1- zcZ}>ctAuT6Dq1Q&UXu`)XGRRktmkUP&x$ zSZK+m!)|k!hn2;jq=m-P9}aX~QIIBNym90`-;&(;Vd~4$RGZV=&T$14A0`7$@JJbY zcr>H^Yu<(#or-VcUi8kB)H_x5s`uqFc~fF95JDPvIN)oJ(LX@wv!e=k;D!LQm@9k!kM)&&Nh9{xG|nj(9nAi`X44-C zJXyuc-4~N^PtLp=uup13ar@4hqMMYOul8~NF&2LaA+ZG>0HA}#^B%*lcuoE)x^ahx zc|>LE6d_^q$))cEO3On<rf1CUev8(fGM8maNOuaI&_4twbk@O5vEbpk)u*CtFDbO1+8ObnWT(Nl zN!@=Cq|$}qtHDDBfu+)N&GU8)=B9i9%3TsBe$7?v(@i!K<7flxafS#i)WZl=60D=; zK?2RSurKMFZe2j`klOhjB_-5YR4tTfjUb6T)#XuEt{->Ax3U!xoGU&^9-n^wgo+jgjDxkWFGYwsXsFscv@U5fy%e;+yl*p4tgi8IIj zFT9r?dlGis`1n{W+g^$e6aj$nUKDu=AJQFO<$hi7a5Y!8-kHblDxEpUr*^cln>3=} zP2%agn}QtHdR=|ih0c*9a$l7SN7>G;?K|N|TB-1%DD{bQonTi3f0;}wS@3f0iQ1|A z{MNI-U#@VNn1e6zh&qs2NmQ2|T*?A-(51H)r zBM>1(6+A82&s7F7^=C#mu56msFgs`a96>E^(rN(X?NL-8@FLRsN4~v^1?_fK^$&8r zoo3Hlr|ITS4eQrdq6!GWyoS<>pe1&pdnfqHplRKIZpYq=?QCUeN_Xud99imJx z1V9!u=rLvKDelh?Ue#vGS$~huzi?oHPJv;}qnG{0rm0`gDOCNIA#-!juF79m-QQL6 zl6FR*fZKymh%B*3G8oG@v!iONQ*MW}Z>Z1vsDHslZ+AQS_mF@}ig*zCOjz`2*p`UF z1z|PgOVhXgzO&0UQPtdG1Npk5uGM63Y)cfk1U3~aP4Rqi%rCFPb5rZt#7`C3Y|Hk) zuJ@WG0w5}R9Ha(R*3O2V+e~)PdiCw+SDyNQ-m7)_(|zw4gK@s$0^$1Eo+Z|i@dH*y z2|5Di9a7JF%oPtZhQUsvBA}492c>Rt!4_%MwMV8-eVKA@Kp{({v+VKQkv#HxlHz09GJd%rulMA;;}6m$^e+OH zok(D@hY&U!?6A&Zv*yp)f;ZJ2(#^M~{x(P}AXPpz9;slUt|9L_ihw2N}`owlXQ(p&Q}TByH&Zk z?6;Sm*)z*4-n|jRStg34t^qSdBjG_M0tbMjgVCPwwct}##5fFA+8yiczdcr9>TRgA zr{iv2H2EMPFvtW*kcZ<)>>?Fgjy)2Xv6toZHNKZR<$Ka|M>_qBSXk(DWrEQss-T1w z&KwkTezd%EeT&_>@fjyCr;FVsITw)f#7*<4XBD0fiF98x{Kc1<3sMbMEXBc@+wNoOk=Ys~QI4NKwb5E+43HJQ4Ky9;)QCM>2;lORa~ zsR(X@c_=`PG>wh(cg2${ug9^?p1&iUmxl3R%_J5T;zRZjC^w2H(-LipGAx(AsC)Ez z-KVemhIdM86a2M#M@Rtr;J{;Dh)HfCBCC~3SXdcLRKe@X<{9xDZ{l}Syll5`QlS~+sF+UxnN|AFe7f;+d st9D?N-)+&9Ga5`J&;=%pb(jgy!-KEh_XzFKU!X1iJRohS^z(Fc4Gz)ED$dVi@G!XNc#Xm7T4es$9Hz+9ciR_U znQREv5$fU@qL-V(@UF*mu`7S0g5YcWdWS>tQTNm~U4W`_@(j^+3i5Puchz+SD+e1Y zBK1>juif-d2r|GpcfrLN&N~`gw-9>bf|(BWrMdx@VI2=|7<^ZxwP}o`mmu z{riLrs)i6(-vA#+piXBW|KQLdSCG4AimwTEPH1rdYt|Q6`k_@=;Hzm1RF|J)h-a9q zu9JVLpNnHqB(h!h4i2L1H#RK%n;7A}dWP?v&WY#!p}PD-LtKM&LxLRrg57`&Bp>}r z$vSel#&D8?yl*j6@RMC1c1OnH(*$(gi|y|_!`?jI>uIw;NYGO3=^c$$Q>c~zV_j$e zFjO0MDvKVSboX75q|x6$Me|b{CBvuHA(TV?gK&{vdKE*--}e)5BN>PX5giBBrZOi53T zPb^KzEYT~dWT<%b;!aL)vpAVmA}2JS{UXvm`Y>B{3bL{9tAGuQ{^r zOPGZhm903JJV#m4`KgHk5GZ8mCKV;-C1)_SWX79?TX}OPT(WFhbL@Legqp)gsEK)r zC7ETZ@k#lmc`1oSl?Y?!G=98zI7~Wz#`%YjBllQ{b=+_~2i22bT9R56Ujj6{I1R{v zJ3M-y!{*;>E4R64^FQ<6VsL*lzj`oKOM!8Ga()@I;+tE%)3j{S7&xNTjN=?oz&dkq?PtM6NE-gw0g<7P^>cA`(G3dq)5|K(&tq^+Fx$kgk#WXx@AZGXvSrS_Fm;kPgs64) z_W>$&4e)V{gs3fjW?gZIeRk+NHXbv(Gc`tY=TFpts&$PB@DB<>QT@7O9WLjQ-n~OtZ&~mV2D2h&3wc@7j~&h+D01P3*2`}IzDtRR6~ek zkh^OLP(z4oa0pcS-0m-Tm?*3PW=4o&CH9(c4`*6muluwnhCwJA~V$?3O z&Q9VMwJU%sP0r6r(aXtCXYiTK^7!|~X0Dk6i*p}|?vR{eHcbkuCbgme z*X{ScKUSYHuUVik`XxGIn=({YQE6U$QhsS(N@|K;K_!D??=I7G$$5!^GW$DZoaN5d I7%DIT01W-ZZvX%Q literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/db06c76a46083783b675e5a5ce418c52a400d350 b/research/owned-relation-independent-validation/git-evidence/tree/db06c76a46083783b675e5a5ce418c52a400d350 new file mode 100644 index 0000000000000000000000000000000000000000..8c3ce2187fd20e3d470d42181f2b9850278af8f1 GIT binary patch literal 1307 zcmXpsFfcPQQP4}zEJ-XWDauSLElDkAnA|bD*Ixe8tSvpi0|KRamr-M%zFoqYi(S9IQ`+LN~kJF=a5iGAKh^OAQxS?AXnEYSG}y_{5*!_ z3FY;&30%?>?>v(JeM;t$;;d^wFtvcy>ZMmPxZTve-`rT;y40fj?9P%nHuY;}c`)Tc zo*^E-t|6Yz5R*^LW0eJanBM{aid<979~ej)L0| zuIfXjUVq6Bi#R#s8gei&Y!Mmd8`s{q%TUxDqy&#r3Ag?QN_UwL@0!>**7q z>mQJqlS5EF4hLQ3U$J)XCML%xy1K!xuD$dA{7#dD+5p!9F+16u&HR9KSbd4*iNwuY zxO_M>PcMh5^!Ii0^m8>cGSm%r1_r+$M8^S!vTLu?o12w>yiCwP^k7~r`@cr04yeOT z%pof0eKc9hnx8MRC#?N>)bl4Fy}7FVQB}gdh{qXzjv=05uDW54KA@2I^oKg*#-ax+ zMcpn3pXz|=3G(-M)5}d^nEvtNtSid@LLJU%w*3xV zud*ocY7JCPkgKDMuPaE=lY@N=Cgrg*J-hSFd|{M;&zTQlDo{ni{-Ht6uE7vT`X#K` zu=LE89b#2M|F-e(ejv&z26JRmeo01rQhsS(N@7uEd~Rk=fnGr+!_E+k4$&LmcR!r> zJX~ITgVij>yi};c$@#fSnR%)4z*qyRw6C|lyHDosvM<|qtnJSbeyU|xa0RY1uehWr z5vVvNJ~t6;?k1r{XD6}vq`r8zCYSZB(0;z>_h&;@rxm59R;9)#C+4MOrX-f6f(+lm z{%u9a@4hCzpN9SoH@3VIW|H%OD$hvGDM&4f&jC3F=IW!xENYtKI~Ifm)Hv};oecDU zwTBC;JTtGjAT_xpK0i6Rw5TXGFFCasWI=S@9>w(!jK5z!apJ7s=WLEE-M1{DI>07_ z90fOi_0AdX-ELfBXMIzx!RQ*E}`L zv2=Xi-1to*397OvH9a*iwFv6LB?A2-pLT9}VZv_y>(zgA&5xz;TA>QdQj0RvDpA9O ZZ_fYhTVIp5=({mo!N>W; zxtdj=svO;2{X&BEa#I-AEe*GoPCfVi=7XNMZZ|TY$F2~GhAMLQ3~>zc^!L+CPD^9B z!JplhaP8Eprqh!Chjcl_uQ^?ChN<)S3kmXc3Jvk}a|apuFXWTGBv(EVgO-ZP^M{9Sc z#)I>QOb??k%5E`eZcYuB)2)|)st9llarS^ZeSw}bQ`pW(6|o&X{KmT9J{~#d8wgbv zk9JURYB+4;5nUI)0G2%YW~&rNzwnd8>%SSKQzeMHCQjJI6sf!^29#^X_=2S zV%riJx@u#)&ivZ;9}98i;^=y*6P3Tsy5j8C@mUkpOLIzq3AG?qH@_$|Ju^?YD7B=tD39Sy1n&YBsmoPA zU->!Sy>s_yyWHj$h>pB`kc*VEzL&=ZzRuZhpWzuXt-oAPd8?sm+@}&jEB}J);xeQNyEt8}p9&HZ% QDNsFsVZpT(SN_QW0N2liF#rGn literal 0 HcmV?d00001 diff --git a/research/owned-relation-independent-validation/git-evidence/tree/e6ae7fb7f6eee1465b54989e937f0bc80b1c3a76 b/research/owned-relation-independent-validation/git-evidence/tree/e6ae7fb7f6eee1465b54989e937f0bc80b1c3a76 new file mode 100644 index 0000000000000000000000000000000000000000..3ff895b2ed63c2db6159fa47071b6d7ff382bbb7 GIT binary patch literal 740 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 Date: Sat, 24 Oct 2026 07:45:44 +1100 Subject: [PATCH 2/4] Correct frozen cost source inventory count --- research/owned-relation-independent-validation/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/research/owned-relation-independent-validation/README.md b/research/owned-relation-independent-validation/README.md index b09347bab7..ac03bb766d 100644 --- a/research/owned-relation-independent-validation/README.md +++ b/research/owned-relation-independent-validation/README.md @@ -43,7 +43,7 @@ python3 -I -B research/owned-relation-independent-validation/verify.py python3 -I -O -B research/owned-relation-independent-validation/verify.py ``` -`--integrity-only` checks the full inventory, Merkle paths and frozen cold receipts without running mathematical engines. Full replay runs unchanged independent engines from private temporary directories with read-only source inputs and fresh bytecode namespaces. Every stable mathematical result field must equal its frozen original receipt; runtime seconds alone are excluded. The cost receipt predates additional provenance captures: its original 12 source hashes must match and the current 25-file map is authenticated separately. All inputs are rechecked after execution. +`--integrity-only` checks the full inventory, Merkle paths and frozen cold receipts without running mathematical engines. Full replay runs unchanged independent engines from private temporary directories with read-only source inputs and fresh bytecode namespaces. Every stable mathematical result field must equal its frozen original receipt; runtime seconds alone are excluded. The cost receipt predates additional provenance captures: its original 12 source hashes must match and the current 24-file map is authenticated separately. All inputs are rechecked after execution. Fresh controls include the physical engine's wrong-relation and wrong-snapshot checks; the cost engine's old BIT, closed uniform gap, unfunded endpoint and closed epsilon checks; an actual altered-WORD-byte inventory rejection; and a private copied receipt falsely crediting 16 surrendered rank-nine outputs, rejected by the literal census. No source guard is bypassed or mutant repinned. All checks remain active under optimized Python. From 5645ab543e74f543e3676d490bc04e2a6ba270a3 Mon Sep 17 00:00:00 2001 From: d3lerium Date: Sat, 24 Oct 2026 07:48:01 +1100 Subject: [PATCH 3/4] Correct independent review author attribution --- research/owned-relation-independent-validation/README.md | 2 +- research/owned-relation-independent-validation/TASK.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/research/owned-relation-independent-validation/README.md b/research/owned-relation-independent-validation/README.md index ac03bb766d..45e466532d 100644 --- a/research/owned-relation-independent-validation/README.md +++ b/research/owned-relation-independent-validation/README.md @@ -57,4 +57,4 @@ Frozen reports describe their original review stage, including gates then outsta ## Credit and license -Ali Romman supplied the new relation/word; Cao Yifan supplied final PR4610; Cinna Davis supplied the p16 controller/helper lineage; zxv supplied native/compiler/precision machinery; Jacob Alan Sussman supplied mixed-target recursion; Chris R/Clear1nsight supplied PR5241 independent admission. All attributed native, BIT, phase, physical and analytic predecessors remain credited in exact retained sources. New review prepared for roger-sato with substantial OpenAI Codex assistance; no independent human review or new construction authorship claimed. New work is Apache-2.0 under the repository license. +Ali Romman supplied the new relation/word; Cao Yifan supplied final PR4610; Cinna Davis supplied the p16 controller/helper lineage; zxv supplied native/compiler/precision machinery; Jacob Alan Sussman supplied mixed-target recursion; Chris R/Clear1nsight supplied PR5241 independent admission. All attributed native, BIT, phase, physical and analytic predecessors remain credited in exact retained sources. New review by Chris R / Clear1nsight, with substantial OpenAI Codex assistance; no independent human review or new construction authorship claimed. New work is Apache-2.0 under the repository license. diff --git a/research/owned-relation-independent-validation/TASK.json b/research/owned-relation-independent-validation/TASK.json index 02365f765b..cdaf24f08c 100644 --- a/research/owned-relation-independent-validation/TASK.json +++ b/research/owned-relation-independent-validation/TASK.json @@ -87,7 +87,7 @@ "stop_rule": "One exact-head packet, narrow independent replays and recorded cold evidence; no construction search, selected-record change or historical suites.", "outcome": "completed", "evidence": "README.md; evidence/physical and evidence/cost complete reports; evidence/cold/VALIDATION.json and full logs/receipts; registered fresh independent engine replay", - "author": "Independent review prepared for roger-sato", + "author": "Chris R / Clear1nsight, with substantial OpenAI Codex assistance", "ai_assistance": "Substantial OpenAI Codex assistance; no independent human or formal-kernel acceptance claimed.", "open_questions": [ { From 411648821f0208d60099be8ca42957ca3a1c4316 Mon Sep 17 00:00:00 2001 From: d3lerium Date: Sat, 24 Oct 2026 07:48:23 +1100 Subject: [PATCH 4/4] Correct verifier documentation attribution --- research/owned-relation-independent-validation/verify.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/research/owned-relation-independent-validation/verify.py b/research/owned-relation-independent-validation/verify.py index 83738166b2..af1db685a9 100644 --- a/research/owned-relation-independent-validation/verify.py +++ b/research/owned-relation-independent-validation/verify.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """Independent PR5377 packet replay, standard-library Python, no Git/network. -Prepared for roger-sato with substantial OpenAI Codex assistance. Apache-2.0. +Chris R / Clear1nsight, with substantial OpenAI Codex assistance. Apache-2.0. The two frozen review engines retain their attribution and exact source bytes. """ from pathlib import Path, PurePosixPath