diff --git a/research/p104-qself-owned-lowering/DEPENDENCIES.json b/research/p104-qself-owned-lowering/DEPENDENCIES.json new file mode 100644 index 0000000000..38b1b575f1 --- /dev/null +++ b/research/p104-qself-owned-lowering/DEPENDENCIES.json @@ -0,0 +1,126 @@ +{ + "schema_version": 1, + "files": [ + { + "local_path": "data/caller_efree.json", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "a98df73ddae1d1ea85a62b6bdf2714b28cb7b359", + "original_path": "research/p104-two-chain-findings/data/caller_efree.json", + "git_blob": "5a71ca9f80ced1aeb8a68e97516cab52eb72a52a", + "bytes": 71267, + "sha256": "c5b6c5236462ae84e5431a791a2f8ce795774342f13e11c4af35689092a8af30", + "usage": "runtime" + }, + { + "local_path": "data/root_A_efree.json", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "a98df73ddae1d1ea85a62b6bdf2714b28cb7b359", + "original_path": "research/p104-two-chain-findings/data/root_A_efree.json", + "git_blob": "4a7fbe2fe247090bb1d7d5256f2478856d1c39ad", + "bytes": 16925, + "sha256": "64486cd1c5a879ffc0312195a39ce4a2ef288f81afb47232c244b9b6f46683d0", + "usage": "runtime" + }, + { + "local_path": "data/caller_6936.json", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "03626137d0bd57f09b0bf9597376183ce6fa9683", + "original_path": "research/p104-main-wire-native/data/caller.json", + "git_blob": "08830cee27bf3b02f523e6ba7337d2cff6a3cae7", + "bytes": 76078, + "sha256": "5489eee96950881b0dd8fdecd6c02a3f663c60ba5bed0d5e5cbeed50fb9ae5fb", + "usage": "runtime" + }, + { + "local_path": "data/root_A_6936.json", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "03626137d0bd57f09b0bf9597376183ce6fa9683", + "original_path": "research/p104-main-wire-native/data/root_A.json", + "git_blob": "1f8c2e3152860c56da14bc701692960af339105b", + "bytes": 18515, + "sha256": "b9400ca6087c8fd9d527c3203afa43caaddaa46cb73996cc05a0ac5cbb240e3c", + "usage": "runtime" + }, + { + "local_path": "data/word_6936.json.gz", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "03626137d0bd57f09b0bf9597376183ce6fa9683", + "original_path": "research/p104-main-wire-native/data/word.json.gz", + "git_blob": "d93e67ca7628bf5531ae6e369da4dd7b7907b88f", + "bytes": 349022, + "sha256": "273e81f176f001684b1fa3eb857992bf58b54748004fcfe806b83adb48d2cc00", + "usage": "runtime" + }, + { + "local_path": "reference/FINITE-PRECOMPILATION.md", + "repository": "CrocSwap/integer-mult-bounds", + "commit": "7c49fe32c55de02c2c873655c804b16e4c3fef0a", + "original_path": "research/kappa-rebuild/architecture/FINITE-PRECOMPILATION.md", + "git_blob": "4badb40f0919c515823cb07e44c6470d4d6469ca", + "bytes": 15898, + "sha256": "4cb32f6b8e388ecf6ed41b5bbdeeb4539cb40c8424f194974afea58f7e0921e8", + "usage": "reference-only" + }, + { + "local_path": "reference/jclib_6936.py", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "03626137d0bd57f09b0bf9597376183ce6fa9683", + "original_path": "research/p104-main-wire-native/jclib.py", + "git_blob": "48a55ab03a731315dd27d1dd7dd52be716de0ce8", + "bytes": 14872, + "sha256": "bdbd89da0125a41514ea10330bccd25de5dd626ac8b2d671c88dc2e4b8fb93c4", + "usage": "reference-only" + }, + { + "local_path": "reference/physical_review_6936.py", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "03626137d0bd57f09b0bf9597376183ce6fa9683", + "original_path": "research/p104-main-wire-native/retained/physical-review/verify.py", + "git_blob": "f41390e0246cd6604a94ef5b418f48a817a4208c", + "bytes": 33361, + "sha256": "c303c2812d530849d174088f0330a4d7ddac2698d92b91848dbce7a512573fc2", + "usage": "reference-only" + }, + { + "local_path": "reference/check_6937.py", + "repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "a98df73ddae1d1ea85a62b6bdf2714b28cb7b359", + "original_path": "research/p104-two-chain-findings/check.py", + "git_blob": "cebc2062a3939e5b2e415fe5aa6d3d8ce1d6cdac", + "bytes": 4796, + "sha256": "f25a9960396561e166264f8b695a3012b2d062b46744e39d073d57ecbc43f163", + "usage": "reference-only" + }, + { + "local_path": "vendor/machine.py", + "repository": "CubeJerry/integer-mult-bounds", + "commit": "ab239cb6ee884e7a900dd9101c34448077fad0b0", + "original_path": "research/compiled-owned-bank-lifecycle/machine.py", + "git_blob": "acf475e4fccaff2fb64bd5b0b3f3fc0d246dc592", + "bytes": 14932, + "sha256": "ec597bce13275003ff30e4be481c936401826c1d4af642b55eec0c410774d1df", + "usage": "runtime" + }, + { + "local_path": "vendor/source_ir.py", + "repository": "CubeJerry/integer-mult-bounds", + "commit": "ab239cb6ee884e7a900dd9101c34448077fad0b0", + "original_path": "research/compiled-owned-bank-lifecycle/source_ir.py", + "git_blob": "79c95fa79439f3c893de52991173bd3a5eae2729", + "bytes": 27393, + "sha256": "54dd93bc50bd10e974c70794df1c13da27f0e3d8cdb6cfe6791a63280096f1b1", + "usage": "runtime" + }, + { + "local_path": "reference/SWAP-PROOF.md", + "repository": "CubeJerry/integer-mult-bounds", + "commit": "e2e707fd99125ef0005ad16435d90e5d3a82f31e", + "original_path": "research/current-swap-flat-tables/PROOF.md", + "git_blob": "4ff87d384214aea341b5812968a261aa1f164efb", + "bytes": 15098, + "sha256": "80f8d743754b2d2973a6ff40c3cbf62604bf431f19110effb0da67f98adce397", + "usage": "reference-only; published proof bound, not re-executed here" + } + ], + "scope": "Exact narrowly vendored sources. External head commits are declared here and bytes authenticated directly; they are not misrepresented as reachable canonical Git objects." +} diff --git a/research/p104-qself-owned-lowering/ENVIRONMENT.json b/research/p104-qself-owned-lowering/ENVIRONMENT.json new file mode 100644 index 0000000000..e8b466151e --- /dev/null +++ b/research/p104-qself-owned-lowering/ENVIRONMENT.json @@ -0,0 +1,6 @@ +{ + "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", + "implementation": "CPython", + "platform": "Linux-6.18.57-x86_64-with-glibc2.39", + "dependencies": "Python standard library only" +} diff --git a/research/p104-qself-owned-lowering/PR-DESCRIPTION.md b/research/p104-qself-owned-lowering/PR-DESCRIPTION.md new file mode 100644 index 0000000000..e5e28428ae --- /dev/null +++ b/research/p104-qself-owned-lowering/PR-DESCRIPTION.md @@ -0,0 +1,80 @@ +## Why this matters + +DreamingOfClouds' E-free caller in CrocSwap/integer-mult-bounds#6937 removes +two empty-mask roles but introduces two QSELF instructions. Its shipped +checker does not replay the caller, and the owned/physical/cost connection +for that new instruction needs an explicit argument. + +This package supplies a reproducible formal operator certificate, a +source-bound relative typed owned-bank lowering, and the complete cost comparison with +CrocSwap/integer-mult-bounds#6936. **No new κ; no selected certificate change.** + +## Exact result + +- The actual 2,991-event, 76-input caller has the declared diagonal endpoint + over `Q(i)[q,D_1,...,D_18]/(q^4-1)`, with formal D variables and independent + input coefficients. A separate backward-covector engine uses integer + dyadics and faithful four-character evaluation with D still formal. +- All 192 instances of the two QSELF sites lower to INIT/COPY/query-in/ + PAID(1)/query-out/SWAP/CLEAR in the unchanged lifecycle IR. One reused + owned query bank suffices, with no productive credit. The canonical + owned-storage contract permits its contents and completed-child history. + This package does not install a SERVICE registry for its new `qself6937` + tokens or claim the frozen source-specific binders accept them. +- The query adapters implement inverse Q with exact absolute phase for every + positive column count. Shape, grid, signed-range and actual provider-cost + predicates remain explicit. +- Complete target and paid histograms each lose 192 rank-one entries; all + other ranks match. The moment polynomial and surplus 1520 are unchanged. + New totals: 23,050 productive fields and 117,846 paid calls. Including a + separate 24,576-unit new lifecycle charge and both conservative recharges, + the inherited conditional raw accounting is 811,461,936 < 10^9. + +## Source pins and verification + +Canonical base `7c49fe32c55de02c2c873655c804b16e4c3fef0a`; #6937 source head +`a98df73ddae1d1ea85a62b6bdf2714b28cb7b359`; #6936 native/comparison head +`03626137d0bd57f09b0bf9597376183ce6fa9683`. Every used source file has a +repository/commit/path, byte count, Git blob and SHA256 pin. The packet +contains proofs, exact profiles, all 192 typed expansions and complete PR text. + +```sh +python3 -B scripts/research_package.py --package research/p104-qself-owned-lowering +``` + +Eight registered normal/optimized gates cover the formal identity, separate +covectors, source/phase/owned binding, exact invoice and 27 meaningful negative +controls. A separate 84-case metered scan audit executes unchanged lifecycle +INIT/COPY/CLEAR code and checks its derived constants, actual raw erasure, +head restoration and retained backing. The full Gaussian caller is not +claimed to have run physically. One proposed basis mutant is correctly +reported as equivalent, rather than counted as a rejected control. + +## Scope and remaining obligations + +The full operator theorem assumes commuting Q,D and Q^4=I; only the local +owned substitution holds for arbitrary completed A. All five selected +framework assumptions, plus the candidate's retained native/A6, odd-scalar +and BIT premises, remain. Exact token-to-provider/table dispatch and concrete +header export are unfinished. Physical provider closure, actual return +representability, compiled precision/stock substitution and rounded analytic +recovery are open. The historical scalar/pass tariff is kept distinct from +the new explicit physical scan bound. This does not adopt the candidate's +unreviewed κ or alter the accepted κ 0.003125804. + +## Novelty and credit + +The E-free root, caller, QSELF idea and reported original caller replay belong +to DreamingOfClouds, with Claude Opus assistance. The source README does not +specify whether its D variables remained formal; this package does not +claim that four q characters are insufficient or that the reported result +was wrong. It adds shipped unspecialized certificates and the explicit +owned/source/cost closure. + +Prepared for **@CubeJerry** with substantial OpenAI assistance. Retain Romman, +the native/productive/compiler lineage, @CubeJerry's +CrocSwap/integer-mult-bounds#6912 and CrocSwap/integer-mult-bounds#6914, +unpaidmoon's CrocSwap/integer-mult-bounds#6930, icekylinx's +CrocSwap/integer-mult-bounds#104, and the pinned published lifecycle and +scalar/SWAP packages. Separate AI review is not independent human or +proof-kernel acceptance. diff --git a/research/p104-qself-owned-lowering/PROOF.md b/research/p104-qself-owned-lowering/PROOF.md new file mode 100644 index 0000000000..a351238484 --- /dev/null +++ b/research/p104-qself-owned-lowering/PROOF.md @@ -0,0 +1,403 @@ +# An E-free caller identity and owned-bank lowering of QSELF + +Prepared for **@CubeJerry**, with substantial OpenAI assistance. Apache-2.0. +**No new κ. No unconditional multiplication theorem.** + +## 1. Exact sources, novelty and theorem boundary + +The canonical base is `7c49fe32c55de02c2c873655c804b16e4c3fef0a`. +The proposed source is DreamingOfClouds' [#6937](https://github.com/CrocSwap/integer-mult-bounds/pull/6937), +head `a98df73ddae1d1ea85a62b6bdf2714b28cb7b359`, files +`research/p104-two-chain-findings/data/caller_efree.json` and +`data/root_A_efree.json`. Its unchanged local native word and comparison caller +come from [#6936](https://github.com/CrocSwap/integer-mult-bounds/pull/6936), +head `03626137d0bd57f09b0bf9597376183ce6fa9683`, under +`research/p104-main-wire-native/`. DEPENDENCIES.json authenticates each used +source byte string; the published package does not depend on a mutable branch. + +The E-free construction and the idea of trading an empty-mask role and a +query for one QSELF per chain belong to DreamingOfClouds. That source reports +an exact 76-by-76 caller replay at the four central characters. Its shipped +`check.py` only parses the caller and checks its serialized length; it does +not contain that replay. The README does not say whether the reported replay +kept the 18 D variables formal. This package makes no claim that four q +characters are insufficient, or that the earlier reported identity is false. +Indeed, four exact characters suffice when the D variables remain formal. + +The additions here are a reproducible formal operator certificate and a +separate backward-covector certificate; a source-specific implementation of +both QSELF sites in the existing owned lifecycle alphabet; its complete +target/paid, ordinary-cost and stock comparison; and an explicit all-column +phase/interface proof for the new requests. No root search or replacement +native word is performed. + +**Conditional theorem.** Let V be a complex vector space. Let Q,D_1,...,D_18 +be commuting linear operators on V, with Q^4=I. Interpret the exact 2,991 +source events with the coefficients below, applying each scalar to the whole +field. For all 76 arbitrary, independently variable input fields, the caller +returns exactly its declared diagonal Q^-1 times the selected D products. +Each of its two QSELF source events has a source-bound typed expansion, for +each of its 96 ports, using one completed rank-one request on one disjoint +owned bank, with the query-adapter, COPY, SWAP and physical-clearance contracts. +Given a faithful dispatch registry for its new SERVICE tokens, and under the +retained whole-job, ownership, common-format and cost contracts stated below, +this introduces no additional productive input and no additional paid call +beyond QSELF's declared one. Compared with the exact #6936 caller, both +complete rank-one counts decrease by 192 and all other rank counts agree. + +The full caller theorem is **not** for arbitrary noncommuting Q or D, or for +Q without Q^4=I. Only the local copied-bank substitution lemma in §4 works +for an arbitrary completed operator A. Native all-column correctness, +rounded precision, physical primitive rates, installation of the new token/provider +registry, the recursive compiler join and +analytic recovery remain inherited obligations. This is not physical +execution of the entire caller. + +## 2. Exact source semantics and formal certificate + +Work in the commutative ring + + R = Q(i)[q,D_1,...,D_18] / (q^4-1). + +Every field starts as its own independent input generator. The forward +checker stores each coefficient as two exact Fractions, with a key consisting +of the input generator, q exponent modulo four, and a square-free D mask. +Multiplication by a mask rejects if a factor is already present: it never +silently imposes D_j^2=D_j or drops a repeated factor. Each actual prefix is +checked to remain in this representation. A formal D monomial is not a +numerical probe and no D value is substituted. + +ADD and SCALE are the literal rational row operations. SWAP exchanges the +ordered fields. QUERY(dst,src,k) adds q^k src to dst; QSELF(x,k) multiplies x +by q^k. IDLE_ONE multiplies its field by the product of the listed D stages. +LAMBDA_s multiplies its field by + + ((1+s i) + (1-s i) q^2)/2. + +It acts on the total q operator; this scalar formula is not tensor-powered +one column at a time. At a joint stage j, the type-A four fields (u,v,x,y) +are updated by + + (u,v,x,y) <- D_j (u, v+q^-1 u, x-q y, y). + +The type-B pair (s,t), with the source's alpha=-1 and beta=1/2, is updated +simultaneously by + + (s,t) <- D_j (s+alpha q t, + beta q^-1 s + (1+alpha beta)t). + +These ordered semantics are independently read from the exact predecessor +`jclib.py`; both old rows are used for the dense B update. The source validator +checks all role ranges, disjoint types, exact host coefficients, distinct +operands, positive idle stage sets and the ordered 18 fresh joint contacts. + +Induction over these operations proves that each stored row is exactly its +formal input expansion. Rational arithmetic is exact; the four residue +classes of q form a basis over Q(i)[D_1,...,D_18]. The final row comparison +therefore proves all coefficient identities, rather than checking one +particular vector. The certificate has 76 final monomials and peak 2,713 +stored monomials at source-event boundaries, at most 90 in a field. + +There is a unique homomorphism from this ring to the commutative algebra +generated by any operators satisfying the theorem's hypotheses. Applying it +to every coefficient proves the operator identity on every vector in V. +No dimensional restriction on V is used. D_j need not be involutions or +numeric scalars, and their inverses are not used. + +The two type blocks do not algebraically mix: each tagged scalar event stays +within its own role range, and each J event is the direct sum of the displayed +A and B blocks. Therefore each block identity can be substituted separately +at every actual port, using that port's own Q_q. The 96 A copies and eight B +copies do not require different physical ports to have the same Q operator. +Completing the unchanged native word with its independent helpers before +resuming the caller is the retained contact contract used in this substitution. + +### A different critical check + +`dual_certificate.py` does not import the forward engine. It starts with +independent output covectors and scans the source backwards, multiplying by +the **transposes**, not inverses, of the literal gates. In particular, an +ADD into x contributes to the coefficient of its source, and the dense B +contact is transposed as a simultaneous block. Its exact coefficient type is +an integer pair divided by a power of two; normalization and arithmetic are +separate from the forward Fraction implementation. + +It retains all 18 D variables formally and performs this backward propagation +at q=1,i,-1,-i. Evaluation at these four distinct roots is injective on R: +for each D monomial, a polynomial of q degree at most three vanishing at all +four roots is zero. Thus these are four faithful coefficient checks of the +same universal identity, not finitely sampled operator inputs. This is a +second algorithmic check, not independent human or proof-kernel acceptance. + +## 3. Exact query orientation, absolute phase and ambient format + +The inherited physical audit represents a one-column central Gaussian C_q +by its Walsh-frequency multiplier i^(q dot omega), with binary dot product. +This specifies its absolute phase, not only its projective Clifford action. +It gives C_q^2=X_q, the address translation by q, and C_q^4=I. + +For each actual native port q, the source recipe supplies an orthonormal +nine-axis basis (q,b_1,...,b_8). Define the binary address map + + B(x) = (q dot x, b_1 dot x, ..., b_8 dot x). + +Then B(q)=e_0, B is orthogonal, and B^-1=B^T. Its permutation P_B satisfies + + P_B C_q P_B^-1 = C_e0, + P_B^-1 C_e0 P_B = C_q, + X_q P_B^-1 C_e0 P_B = C_q^-1. + +The last equality is exact because i^h (-1)^h = i^(-h) for h in {0,1}. +It requires the Q^2 translation on return. Omitting it implements Q, rather +than Q^-1. No phase that happens to be harmless at one tensor width is dropped. + +At every positive column count f, tensor these binary maps and C operators +column by column and leave the other 144 coordinate blocks fixed. The rank-one +request acts on the f selected e_0 coordinates; both nine-axis maps preserve +all remaining coordinates. Tensoring the exact displayed equality gives +Q_f^-1 with every absolute phase raised correctly across all f columns. +This is the all-f argument. The executable 49,152 one-column spectral checks +bind its finite bases and signs to the actual 96 new source ports; those +checks alone are not claimed to prove the tensor statement. + +The source's D_j acts only on fresh coordinate blocks +9+8(j-1),...,9+8j-1. These sets are pairwise disjoint and disjoint from the +nine central blocks. Consequently the intended physical Q and D operators +commute and Q^4=I, at every f, under the retained exact native contact contract. +All other local-word maps and helper endpoints remain the #6936 dependency. + +Both query boundaries return to the same complete ambient coordinate order. +The coded implementation additionally requires the same component boundaries, +grids and signed widths on the returned bank and its caller field. In the +unchanged Controller, INIT uses payload 0 as its shape guide. Thus that guide +must have the same complete numerical format too; rank equality alone is not +enough. A whole-job provider must return within this format's representable +range, or the physical execution has no success guarantee. This common-format +and precision obligation is explicit and remains inside precision_tape and +the recursive provider join. The present operator identity does not establish +rounded-state equality or claim that every finite signed input is an exactly +representable Gaussian output. + +## 4. One owned bank, exact history and source-preserving lowering + +The canonical source is +`research/kappa-rebuild/architecture/FINITE-PRECOMPILATION.md`, Git blob +`4badb40f0919c515823cb07e44c6470d4d6469ca` at the stated canonical base. +Section 1 permits: “Constantly many owned fields may be supplied with their +full cost and no productive output credit.” Section 6 expressly permits a +paid child on an owned field containing a copied correlated value; the parent +waits for complete child return before reading or erasing that bank. Each +live unit retains its own distinct banks. These are existing conditional +contracts, not a new restoration waiver or a proof of owned_erasure. + +Let x be the actual caller field and z a disjoint owned bank. The expansion is + + INIT z + COPY z <- x + SERVICE query-in(z) + PAID(z, rank=1) + SERVICE query-out(z) + SERVICE SWAP(x,z) + CLEAR z + +Every opcode is already accepted by the unchanged published lifecycle +`source_ir.Unit.check` and `machine.Controller`. The first five events are the +existing query-bank prefix. The return service uses the exact orientation in +§3; SWAP replaces the old query-add service. There are no Python payload +callbacks or newly assumed free field transfers in this statement. + +This proves **relative typed-IR and lifetime compatibility**, not an installed +physical service dispatcher. The exported tokens contain `qself6937`, and +the SWAP token also differs from the frozen current-caller source grammar. +`Unit.check` checks event structure and lifetimes; it does not validate a +SERVICE registry or numerical provider. This package installs no new registry +and does not claim that an earlier source-specific binder accepts those +tokens. The conditional semantic realization requires an exact mapping of +these tokens to the stated query providers and existing SWAP table, including +their actual headers, ordered fields and common-format predicates. Producing +and validating that dispatch/export is an explicit remaining obligation. + +**Local substitution lemma.** More generally, suppose the three middle +events implement any completed whole-field operator A, with the required +format and spectator preservation. Immediately after COPY, z=x; after complete +return z=Ax and the caller's x is its original value; after SWAP, the ordered +pair is (Ax,x); after CLEAR, it is (Ax,0). Every other public field is unchanged. +This proof does not require Q^4=I, commutation, invertibility or statistical +independence of current values. If the recursive controller parks the parent, +its x is preserved in protected ancestor storage and restored at return; +the same current physical tape need not be untouched while a child runs. + +CLEAR erases the old x **now stored in the owned z bank**. The canonical +contract conditions erasure on bank ownership and completed descendants, +not on the numerical content having originated independently. It does not +require restoring an arbitrary prior value of z. The returned child is +complete before the parent reads, swaps or erases z. Every descendant has a +different owned-bank identity. Borrowed public helpers are never used as z. + +A literal wrapper INIT z; QUERY(z,x,-1); SWAP(x,z); CLEAR z would have two +simultaneously live banks: z and QUERY's internal copied bank. The fused +expansion above uses the internal copied bank as the returned value and +omits the redundant outer zero target and ADD. Its exact semantics follows +from the local lemma; it is not a claim that the two implementations have +identical rounded trajectories. + +The exact source QSELF sites are event 457 on A role 0 and event 575 on A +role 19. Each is applied to the 96 A ports, for 192 expansions and 1,344 IR +events. Their source tokens retain site, port, literal operation and actual +ordered owner. Injective compiler remapping preserves the owned recipient +and the SWAP order. The generated patch is checked through the unchanged IR +class; a separate whole-local-source structural pass accepts 71,144 native +events as 83,790 typed events. Neither pass is a fullcaller tape replay. + +The actual raw source processes each port's complete expansion before the +next one, and every joint native invocation is complete before the next +outer event. One outer query bank is therefore reused across the 416 new +QUERY-or-QSELF instances. It overlaps no local owned lifetime. The local +word still has 51 labels, 54 lifetimes and peak 43; an unreused safe finite +inventory is 18*51+1=919 raw-unit private names, with maximum 43 live locally. +Suspended recursive unit instances retain distinct banks: this is not one +scratch tape per recursion depth. Old erased backing remains counted at its +high-water extent. + +## 5. Positive costs, complete invoices and numerical limitations + +The generic request has two nine-axis conversions, one Q^2 translation and +one rank-one child. It also pays INIT, numerical COPY as addition, both SWAP +outputs, physical raw erasure, all source access, heads, child continuation, +complete child return, and existing descriptor/row services. An initially +dirty bank is disposed of rather than assumed empty. The two work ports of +the published SWAP table are reusable existing primitive work, with current +backing 2V+3; z adds V. Adapter work is retained separately and may be reused +only after successful primitive retirement. + +Here is a physical cost statement independent of a numerical historical cap. +Let V be a complete field's physical coded length, D total initially occupied +bank/work bytes, and q_0 the fixed supplied work/context inventory. Given +actual query-provider costs A_in,A_out and the actual paid-boundary/child +cost B_paid, the new fragment is bounded by + + A_in + A_out + B_paid + 2048(V+1) + 16D + 64q_0. + +This deliberately loose remainder covers the unmodified initialize, +copy_as_add and retire scans and the published SWAP ceiling +1024(V/3+1)+8D+32q_0. Every term is positive. The boundary/child term is not +hidden in a scalar allowance or counted as zero. Provider work, all other +public fields, parked ancestors and descriptors remain in the complete caller +stock. The bound is conditional on their declared physical interfaces; it is +not a construction of those interfaces. + +Here are the scan constants behind that remainder, using the lifecycle's +physical read/write/unit-move metric and charging executed SWAP table rows as +in its published theorem. Set L=V/3. From its current origin, `origin` costs +3 actions; from offset h it costs 2h+3. A raw `retire` of d occupied bytes +therefore costs exactly 5d+7, including both head resets. `read_code` costs +7 actions per present codeword and 1 at the frontier; `write_code` costs 6. +Thus INIT on an initially d-byte dirty bank, guided by a V-byte complete +field, costs 5d+25V/3+17. COPY costs 14L+9b+4V+14, where b<=L is the number +of numerical-bit codewords; it is at most 35V/3+14. CLEAR after the successful +SWAP costs 5V+7. Their sum is at most 25V+5d+38. Adding the SWAP bound gives +at most (1100/3)V+1062+5d+8D_work+32q_0, plus a fixed seven-event dispatch. +It is below the displayed 2048(V+1)+16D+64q_0, for D=d+D_work. Query providers +are separately charged for their own work retirement and head reset; on +successful return through `Controller.primitive` their declared work ports +are blank. These constants count actual coded bytes and both output writes; +they do not equate this tape metric with the historical scalar/pass tariff. + +For comparison with #6936's **inherited scalar/routing accounting convention**, +`invoice.py` reconstructs the local scalar and route terms directly from the +unchanged word, all caller/idle/main/query terms directly from both callers, +and adds a separate 128 ordinary units for each new QSELF instance. This +extra 24,576-unit charge covers four lifecycle/scalar operations at the +retained 32-unit gate envelope, in addition to the thin lifecycle allowance +and the general caller envelope. Both full nine-axis conversions and the +translation are charged at 1,000 each. These retained scalar/pass rates are +not an independent verification of physical precision_tape tariffs. + +The exact results are: + +| Quantity | #6936 comparison caller | E-free caller with owned lowering | +| --- | ---: | ---: | +| Main arbitrary input fields | 4,144 | 3,952 | +| Fresh helper fields over 18 local calls | 19,098 | 19,098 | +| Complete productive count | 23,242 | 23,050 | +| Complete paid calls | 118,038 | 117,846 | +| Outer rank-one QUERY/QSELF calls | 608 | 416 | +| Source local rank-one/other paid calls | unchanged | unchanged | +| Reviewed raw ordinary upper | 832,255,648 | 796,934,944 | +| Extra LAMBDA reading | 12,560,000 | 11,792,000 | +| Per-call 1125 conversion reading | 2,734,992 | 2,734,992 | +| Both extra readings included | 847,550,640 | 811,461,936 | +| Margin below 10^9 in that convention | 152,449,360 | 188,538,064 | + +At each joint call the same 1,461 local public fields map to four A mains per +A port, two B mains per B port, and 1,061 distinct helpers. Those helpers have +fresh stage-specific identities. Neither their arbitrary inputs nor their +productive outputs are erased or replaced by the query bank. The B stream is +byte-for-byte the same sequence of operations after its offset shifts by two. +Every main target in the new caller has a nonempty D mask. + +For every rank r the exact complete profiles satisfy + + T_new(r) = T_old(r) - 192*[r=1], + P_new(r) = P_old(r) - 192*[r=1]. + +Consequently the complete moment polynomial is identical at **every** κ, +not merely at a sampled decimal root. The rank-mass surplus remains 1520; +the new paid rank mass is 317,324. The two removed empty-mask E roles no +longer receive 192 rank-one productive credits, and the corresponding paid +debit falls by the same amount. There is no new κ from this substitution and +no claim that the unreviewed #6936 bound is the accepted frontier. + +These changes must replace the raw-unit counts in any future compiled +precision/stock certificate. It is not enough to observe a smaller scalar +cap. COPY propagates its actual residual as addition; it does not overwrite +an ideal value for free. With adapters E,F and child C satisfying FCE=A, +the output error includes FC times input/copy/entry error, F times child +error, and exit error. SWAP exactly permutes stored words and its errors; +erasure of the other bank does not erase these terms. The full rounded +recursion and source-entry predicates are not established here. + +## 6. A precisely scoped obstruction without owned initialization + +Consider the formal commuting caller algebra above, allowing arbitrary +independent auxiliary fields which must all be restored. QUERY is an +elementary shear of determinant one. Constant scalings and permutations +have q-independent determinants. LAMBDA determinants depend only on q^2; +IDLE determinants depend only on D. The joint HOST/HOST2 determinant is a +power of D and is also unchanged under q -> -q. Thus any finite word in this +alphabet has determinant even in q. + +A single QSELF with every auxiliary field restored would have determinant +q^-1. Evaluating at q=1 and q=-1 (and any fixed nonzero D) contradicts the +evenness of the word's determinant. This excludes that universal single-job +restored-workspace realization in this formal alphabet. + +It does not exclude every concrete Clifford specialization: spectral +restrictions or cancellation in a concrete large determinant require their +own analysis. It also does not exclude the **pair** of QSELF sites; their +combined q determinant is q^-2=q^2, which is even. No bound on a paired +QUERY-only synthesis follows. Owned initialization and erasure invalidate +the restored-arbitrary-workspace hypothesis, exactly as the explicit copied +bank does. This obstruction explains that distinction; it is not a global +impossibility theorem or a substitute for the constructive result. + +## 7. Remaining obligations and credit + +The five selected framework assumptions remain native_all_columns, +owned_erasure, compiler, precision_tape and analytic_recovery. The #6936 +native/A6, odd-scalar exact-return and BIT dependencies also remain. No +selected certificate is changed. Actual all-column native word execution, +all caller field-format predicates, complete rounded-return contracts and +compiled recursive stock/precision substitution still require review. The +new token-to-provider/table registry and concrete header export are also +unfinished; accepting a seven-opcode IR fragment does not discharge them. + +The E-free root, caller, source claim and proposal are DreamingOfClouds' work +with Claude Opus assistance. Retain Romman and the productive native/compiler +lineage; @CubeJerry's [#6912](https://github.com/CrocSwap/integer-mult-bounds/pull/6912) +caller blocks, [#6914](https://github.com/CrocSwap/integer-mult-bounds/pull/6914) +owned-rise work and published lifecycle/scalar/SWAP implementations; +unpaidmoon's [#6930](https://github.com/CrocSwap/integer-mult-bounds/pull/6930) +width-two phase work; and icekylinx's [#104](https://github.com/CrocSwap/integer-mult-bounds/pull/104) +odd-grid contribution. This package was prepared for @CubeJerry with +substantial OpenAI assistance in source analysis, proofs, code and review. diff --git a/research/p104-qself-owned-lowering/QSELF-PATCH.json b/research/p104-qself-owned-lowering/QSELF-PATCH.json new file mode 100644 index 0000000000..24274123dd --- /dev/null +++ b/research/p104-qself-owned-lowering/QSELF-PATCH.json @@ -0,0 +1 @@ +[[457,0,[["INIT",[["outer-query-bank"]],["qself6937",457,0,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,0]],["qself6937",457,0,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,0,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,0,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,0,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,0],["outer-query-bank"]],["SWAP","qself6937",457,0,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,0,["A","QSELF",0,-1]],0]]],[457,1,[["INIT",[["outer-query-bank"]],["qself6937",457,1,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,1]],["qself6937",457,1,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,1,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,1,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,1,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,1],["outer-query-bank"]],["SWAP","qself6937",457,1,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,1,["A","QSELF",0,-1]],0]]],[457,2,[["INIT",[["outer-query-bank"]],["qself6937",457,2,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,2]],["qself6937",457,2,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,2,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,2,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,2,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,2],["outer-query-bank"]],["SWAP","qself6937",457,2,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,2,["A","QSELF",0,-1]],0]]],[457,3,[["INIT",[["outer-query-bank"]],["qself6937",457,3,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,3]],["qself6937",457,3,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,3,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,3,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,3,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,3],["outer-query-bank"]],["SWAP","qself6937",457,3,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,3,["A","QSELF",0,-1]],0]]],[457,4,[["INIT",[["outer-query-bank"]],["qself6937",457,4,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,4]],["qself6937",457,4,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,4,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,4,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,4,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,4],["outer-query-bank"]],["SWAP","qself6937",457,4,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,4,["A","QSELF",0,-1]],0]]],[457,5,[["INIT",[["outer-query-bank"]],["qself6937",457,5,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,5]],["qself6937",457,5,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,5,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,5,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,5,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,5],["outer-query-bank"]],["SWAP","qself6937",457,5,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,5,["A","QSELF",0,-1]],0]]],[457,6,[["INIT",[["outer-query-bank"]],["qself6937",457,6,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,6]],["qself6937",457,6,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,6,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,6,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,6,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,6],["outer-query-bank"]],["SWAP","qself6937",457,6,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,6,["A","QSELF",0,-1]],0]]],[457,7,[["INIT",[["outer-query-bank"]],["qself6937",457,7,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,7]],["qself6937",457,7,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,7,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,7,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,7,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,7],["outer-query-bank"]],["SWAP","qself6937",457,7,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,7,["A","QSELF",0,-1]],0]]],[457,8,[["INIT",[["outer-query-bank"]],["qself6937",457,8,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,8]],["qself6937",457,8,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,8,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,8,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,8,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,8],["outer-query-bank"]],["SWAP","qself6937",457,8,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,8,["A","QSELF",0,-1]],0]]],[457,9,[["INIT",[["outer-query-bank"]],["qself6937",457,9,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,9]],["qself6937",457,9,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,9,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,9,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,9,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,9],["outer-query-bank"]],["SWAP","qself6937",457,9,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,9,["A","QSELF",0,-1]],0]]],[457,10,[["INIT",[["outer-query-bank"]],["qself6937",457,10,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,10]],["qself6937",457,10,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,10,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,10,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,10,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,10],["outer-query-bank"]],["SWAP","qself6937",457,10,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,10,["A","QSELF",0,-1]],0]]],[457,11,[["INIT",[["outer-query-bank"]],["qself6937",457,11,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,11]],["qself6937",457,11,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,11,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,11,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,11,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,11],["outer-query-bank"]],["SWAP","qself6937",457,11,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,11,["A","QSELF",0,-1]],0]]],[457,12,[["INIT",[["outer-query-bank"]],["qself6937",457,12,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,12]],["qself6937",457,12,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,12,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,12,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,12,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,12],["outer-query-bank"]],["SWAP","qself6937",457,12,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,12,["A","QSELF",0,-1]],0]]],[457,13,[["INIT",[["outer-query-bank"]],["qself6937",457,13,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,13]],["qself6937",457,13,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,13,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,13,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,13,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,13],["outer-query-bank"]],["SWAP","qself6937",457,13,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,13,["A","QSELF",0,-1]],0]]],[457,14,[["INIT",[["outer-query-bank"]],["qself6937",457,14,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,14]],["qself6937",457,14,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,14,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,14,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,14,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,14],["outer-query-bank"]],["SWAP","qself6937",457,14,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,14,["A","QSELF",0,-1]],0]]],[457,16,[["INIT",[["outer-query-bank"]],["qself6937",457,16,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,16]],["qself6937",457,16,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,16,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,16,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,16,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,16],["outer-query-bank"]],["SWAP","qself6937",457,16,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,16,["A","QSELF",0,-1]],0]]],[457,18,[["INIT",[["outer-query-bank"]],["qself6937",457,18,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,18]],["qself6937",457,18,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,18,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,18,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,18,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,18],["outer-query-bank"]],["SWAP","qself6937",457,18,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,18,["A","QSELF",0,-1]],0]]],[457,19,[["INIT",[["outer-query-bank"]],["qself6937",457,19,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,19]],["qself6937",457,19,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,19,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,19,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,19,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,19],["outer-query-bank"]],["SWAP","qself6937",457,19,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,19,["A","QSELF",0,-1]],0]]],[457,20,[["INIT",[["outer-query-bank"]],["qself6937",457,20,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,20]],["qself6937",457,20,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,20,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,20,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,20,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,20],["outer-query-bank"]],["SWAP","qself6937",457,20,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,20,["A","QSELF",0,-1]],0]]],[457,21,[["INIT",[["outer-query-bank"]],["qself6937",457,21,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,21]],["qself6937",457,21,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,21,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,21,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,21,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,21],["outer-query-bank"]],["SWAP","qself6937",457,21,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,21,["A","QSELF",0,-1]],0]]],[457,22,[["INIT",[["outer-query-bank"]],["qself6937",457,22,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,22]],["qself6937",457,22,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,22,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,22,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,22,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,22],["outer-query-bank"]],["SWAP","qself6937",457,22,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,22,["A","QSELF",0,-1]],0]]],[457,23,[["INIT",[["outer-query-bank"]],["qself6937",457,23,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,23]],["qself6937",457,23,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,23,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,23,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,23,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,23],["outer-query-bank"]],["SWAP","qself6937",457,23,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,23,["A","QSELF",0,-1]],0]]],[457,24,[["INIT",[["outer-query-bank"]],["qself6937",457,24,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,24]],["qself6937",457,24,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,24,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,24,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,24,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,24],["outer-query-bank"]],["SWAP","qself6937",457,24,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,24,["A","QSELF",0,-1]],0]]],[457,25,[["INIT",[["outer-query-bank"]],["qself6937",457,25,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,25]],["qself6937",457,25,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,25,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,25,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,25,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,25],["outer-query-bank"]],["SWAP","qself6937",457,25,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,25,["A","QSELF",0,-1]],0]]],[457,26,[["INIT",[["outer-query-bank"]],["qself6937",457,26,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,26]],["qself6937",457,26,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,26,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,26,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,26,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,26],["outer-query-bank"]],["SWAP","qself6937",457,26,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,26,["A","QSELF",0,-1]],0]]],[457,28,[["INIT",[["outer-query-bank"]],["qself6937",457,28,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,28]],["qself6937",457,28,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,28,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,28,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,28,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,28],["outer-query-bank"]],["SWAP","qself6937",457,28,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,28,["A","QSELF",0,-1]],0]]],[457,29,[["INIT",[["outer-query-bank"]],["qself6937",457,29,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,29]],["qself6937",457,29,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,29,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,29,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,29,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,29],["outer-query-bank"]],["SWAP","qself6937",457,29,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,29,["A","QSELF",0,-1]],0]]],[457,30,[["INIT",[["outer-query-bank"]],["qself6937",457,30,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,30]],["qself6937",457,30,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,30,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,30,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,30,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,30],["outer-query-bank"]],["SWAP","qself6937",457,30,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,30,["A","QSELF",0,-1]],0]]],[457,31,[["INIT",[["outer-query-bank"]],["qself6937",457,31,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,31]],["qself6937",457,31,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,31,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,31,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,31,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,31],["outer-query-bank"]],["SWAP","qself6937",457,31,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,31,["A","QSELF",0,-1]],0]]],[457,32,[["INIT",[["outer-query-bank"]],["qself6937",457,32,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,32]],["qself6937",457,32,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,32,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,32,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,32,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,32],["outer-query-bank"]],["SWAP","qself6937",457,32,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,32,["A","QSELF",0,-1]],0]]],[457,33,[["INIT",[["outer-query-bank"]],["qself6937",457,33,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,33]],["qself6937",457,33,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,33,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,33,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,33,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,33],["outer-query-bank"]],["SWAP","qself6937",457,33,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,33,["A","QSELF",0,-1]],0]]],[457,36,[["INIT",[["outer-query-bank"]],["qself6937",457,36,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,36]],["qself6937",457,36,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,36,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,36,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,36,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,36],["outer-query-bank"]],["SWAP","qself6937",457,36,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,36,["A","QSELF",0,-1]],0]]],[457,37,[["INIT",[["outer-query-bank"]],["qself6937",457,37,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,37]],["qself6937",457,37,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,37,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,37,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,37,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,37],["outer-query-bank"]],["SWAP","qself6937",457,37,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,37,["A","QSELF",0,-1]],0]]],[457,38,[["INIT",[["outer-query-bank"]],["qself6937",457,38,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,38]],["qself6937",457,38,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,38,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,38,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,38,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,38],["outer-query-bank"]],["SWAP","qself6937",457,38,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,38,["A","QSELF",0,-1]],0]]],[457,39,[["INIT",[["outer-query-bank"]],["qself6937",457,39,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,39]],["qself6937",457,39,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,39,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,39,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,39,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,39],["outer-query-bank"]],["SWAP","qself6937",457,39,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,39,["A","QSELF",0,-1]],0]]],[457,40,[["INIT",[["outer-query-bank"]],["qself6937",457,40,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,40]],["qself6937",457,40,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,40,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,40,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,40,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,40],["outer-query-bank"]],["SWAP","qself6937",457,40,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,40,["A","QSELF",0,-1]],0]]],[457,41,[["INIT",[["outer-query-bank"]],["qself6937",457,41,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,41]],["qself6937",457,41,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,41,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,41,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,41,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,41],["outer-query-bank"]],["SWAP","qself6937",457,41,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,41,["A","QSELF",0,-1]],0]]],[457,43,[["INIT",[["outer-query-bank"]],["qself6937",457,43,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,43]],["qself6937",457,43,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,43,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,43,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,43,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,43],["outer-query-bank"]],["SWAP","qself6937",457,43,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,43,["A","QSELF",0,-1]],0]]],[457,44,[["INIT",[["outer-query-bank"]],["qself6937",457,44,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,44]],["qself6937",457,44,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,44,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,44,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,44,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,44],["outer-query-bank"]],["SWAP","qself6937",457,44,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,44,["A","QSELF",0,-1]],0]]],[457,45,[["INIT",[["outer-query-bank"]],["qself6937",457,45,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,45]],["qself6937",457,45,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,45,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,45,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,45,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,45],["outer-query-bank"]],["SWAP","qself6937",457,45,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,45,["A","QSELF",0,-1]],0]]],[457,46,[["INIT",[["outer-query-bank"]],["qself6937",457,46,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,46]],["qself6937",457,46,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,46,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,46,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,46,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,46],["outer-query-bank"]],["SWAP","qself6937",457,46,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,46,["A","QSELF",0,-1]],0]]],[457,48,[["INIT",[["outer-query-bank"]],["qself6937",457,48,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,48]],["qself6937",457,48,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,48,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,48,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,48,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,48],["outer-query-bank"]],["SWAP","qself6937",457,48,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,48,["A","QSELF",0,-1]],0]]],[457,49,[["INIT",[["outer-query-bank"]],["qself6937",457,49,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,49]],["qself6937",457,49,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,49,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,49,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,49,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,49],["outer-query-bank"]],["SWAP","qself6937",457,49,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,49,["A","QSELF",0,-1]],0]]],[457,50,[["INIT",[["outer-query-bank"]],["qself6937",457,50,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,50]],["qself6937",457,50,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,50,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,50,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,50,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,50],["outer-query-bank"]],["SWAP","qself6937",457,50,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,50,["A","QSELF",0,-1]],0]]],[457,51,[["INIT",[["outer-query-bank"]],["qself6937",457,51,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,51]],["qself6937",457,51,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,51,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,51,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,51,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,51],["outer-query-bank"]],["SWAP","qself6937",457,51,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,51,["A","QSELF",0,-1]],0]]],[457,52,[["INIT",[["outer-query-bank"]],["qself6937",457,52,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,52]],["qself6937",457,52,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,52,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,52,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,52,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,52],["outer-query-bank"]],["SWAP","qself6937",457,52,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,52,["A","QSELF",0,-1]],0]]],[457,53,[["INIT",[["outer-query-bank"]],["qself6937",457,53,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,53]],["qself6937",457,53,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,53,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,53,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,53,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,53],["outer-query-bank"]],["SWAP","qself6937",457,53,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,53,["A","QSELF",0,-1]],0]]],[457,54,[["INIT",[["outer-query-bank"]],["qself6937",457,54,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,54]],["qself6937",457,54,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,54,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,54,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,54,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,54],["outer-query-bank"]],["SWAP","qself6937",457,54,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,54,["A","QSELF",0,-1]],0]]],[457,56,[["INIT",[["outer-query-bank"]],["qself6937",457,56,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,56]],["qself6937",457,56,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,56,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,56,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,56,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,56],["outer-query-bank"]],["SWAP","qself6937",457,56,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,56,["A","QSELF",0,-1]],0]]],[457,57,[["INIT",[["outer-query-bank"]],["qself6937",457,57,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,57]],["qself6937",457,57,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,57,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,57,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,57,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,57],["outer-query-bank"]],["SWAP","qself6937",457,57,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,57,["A","QSELF",0,-1]],0]]],[457,58,[["INIT",[["outer-query-bank"]],["qself6937",457,58,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,58]],["qself6937",457,58,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,58,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,58,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,58,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,58],["outer-query-bank"]],["SWAP","qself6937",457,58,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,58,["A","QSELF",0,-1]],0]]],[457,59,[["INIT",[["outer-query-bank"]],["qself6937",457,59,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,59]],["qself6937",457,59,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,59,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,59,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,59,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,59],["outer-query-bank"]],["SWAP","qself6937",457,59,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,59,["A","QSELF",0,-1]],0]]],[457,60,[["INIT",[["outer-query-bank"]],["qself6937",457,60,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,60]],["qself6937",457,60,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,60,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,60,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,60,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,60],["outer-query-bank"]],["SWAP","qself6937",457,60,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,60,["A","QSELF",0,-1]],0]]],[457,61,[["INIT",[["outer-query-bank"]],["qself6937",457,61,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,61]],["qself6937",457,61,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,61,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,61,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,61,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,61],["outer-query-bank"]],["SWAP","qself6937",457,61,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,61,["A","QSELF",0,-1]],0]]],[457,62,[["INIT",[["outer-query-bank"]],["qself6937",457,62,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,62]],["qself6937",457,62,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,62,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,62,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,62,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,62],["outer-query-bank"]],["SWAP","qself6937",457,62,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,62,["A","QSELF",0,-1]],0]]],[457,63,[["INIT",[["outer-query-bank"]],["qself6937",457,63,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,63]],["qself6937",457,63,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,63,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,63,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,63,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,63],["outer-query-bank"]],["SWAP","qself6937",457,63,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,63,["A","QSELF",0,-1]],0]]],[457,64,[["INIT",[["outer-query-bank"]],["qself6937",457,64,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,64]],["qself6937",457,64,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,64,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,64,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,64,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,64],["outer-query-bank"]],["SWAP","qself6937",457,64,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,64,["A","QSELF",0,-1]],0]]],[457,65,[["INIT",[["outer-query-bank"]],["qself6937",457,65,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,65]],["qself6937",457,65,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,65,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,65,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,65,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,65],["outer-query-bank"]],["SWAP","qself6937",457,65,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,65,["A","QSELF",0,-1]],0]]],[457,66,[["INIT",[["outer-query-bank"]],["qself6937",457,66,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,66]],["qself6937",457,66,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,66,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,66,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,66,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,66],["outer-query-bank"]],["SWAP","qself6937",457,66,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,66,["A","QSELF",0,-1]],0]]],[457,67,[["INIT",[["outer-query-bank"]],["qself6937",457,67,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,67]],["qself6937",457,67,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,67,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,67,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,67,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,67],["outer-query-bank"]],["SWAP","qself6937",457,67,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,67,["A","QSELF",0,-1]],0]]],[457,68,[["INIT",[["outer-query-bank"]],["qself6937",457,68,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,68]],["qself6937",457,68,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,68,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,68,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,68,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,68],["outer-query-bank"]],["SWAP","qself6937",457,68,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,68,["A","QSELF",0,-1]],0]]],[457,69,[["INIT",[["outer-query-bank"]],["qself6937",457,69,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,69]],["qself6937",457,69,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,69,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,69,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,69,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,69],["outer-query-bank"]],["SWAP","qself6937",457,69,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,69,["A","QSELF",0,-1]],0]]],[457,70,[["INIT",[["outer-query-bank"]],["qself6937",457,70,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,70]],["qself6937",457,70,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,70,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,70,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,70,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,70],["outer-query-bank"]],["SWAP","qself6937",457,70,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,70,["A","QSELF",0,-1]],0]]],[457,71,[["INIT",[["outer-query-bank"]],["qself6937",457,71,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,71]],["qself6937",457,71,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,71,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,71,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,71,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,71],["outer-query-bank"]],["SWAP","qself6937",457,71,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,71,["A","QSELF",0,-1]],0]]],[457,72,[["INIT",[["outer-query-bank"]],["qself6937",457,72,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,72]],["qself6937",457,72,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,72,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,72,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,72,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,72],["outer-query-bank"]],["SWAP","qself6937",457,72,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,72,["A","QSELF",0,-1]],0]]],[457,73,[["INIT",[["outer-query-bank"]],["qself6937",457,73,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,73]],["qself6937",457,73,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,73,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,73,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,73,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,73],["outer-query-bank"]],["SWAP","qself6937",457,73,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,73,["A","QSELF",0,-1]],0]]],[457,74,[["INIT",[["outer-query-bank"]],["qself6937",457,74,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,74]],["qself6937",457,74,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,74,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,74,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,74,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,74],["outer-query-bank"]],["SWAP","qself6937",457,74,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,74,["A","QSELF",0,-1]],0]]],[457,75,[["INIT",[["outer-query-bank"]],["qself6937",457,75,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,75]],["qself6937",457,75,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,75,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,75,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,75,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,75],["outer-query-bank"]],["SWAP","qself6937",457,75,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,75,["A","QSELF",0,-1]],0]]],[457,76,[["INIT",[["outer-query-bank"]],["qself6937",457,76,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,76]],["qself6937",457,76,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,76,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,76,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,76,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,76],["outer-query-bank"]],["SWAP","qself6937",457,76,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,76,["A","QSELF",0,-1]],0]]],[457,77,[["INIT",[["outer-query-bank"]],["qself6937",457,77,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,77]],["qself6937",457,77,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,77,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,77,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,77,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,77],["outer-query-bank"]],["SWAP","qself6937",457,77,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,77,["A","QSELF",0,-1]],0]]],[457,78,[["INIT",[["outer-query-bank"]],["qself6937",457,78,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,78]],["qself6937",457,78,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,78,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,78,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,78,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,78],["outer-query-bank"]],["SWAP","qself6937",457,78,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,78,["A","QSELF",0,-1]],0]]],[457,79,[["INIT",[["outer-query-bank"]],["qself6937",457,79,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,79]],["qself6937",457,79,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,79,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,79,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,79,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,79],["outer-query-bank"]],["SWAP","qself6937",457,79,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,79,["A","QSELF",0,-1]],0]]],[457,80,[["INIT",[["outer-query-bank"]],["qself6937",457,80,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,80]],["qself6937",457,80,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,80,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,80,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,80,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,80],["outer-query-bank"]],["SWAP","qself6937",457,80,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,80,["A","QSELF",0,-1]],0]]],[457,81,[["INIT",[["outer-query-bank"]],["qself6937",457,81,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,81]],["qself6937",457,81,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,81,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,81,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,81,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,81],["outer-query-bank"]],["SWAP","qself6937",457,81,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,81,["A","QSELF",0,-1]],0]]],[457,82,[["INIT",[["outer-query-bank"]],["qself6937",457,82,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,82]],["qself6937",457,82,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,82,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,82,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,82,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,82],["outer-query-bank"]],["SWAP","qself6937",457,82,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,82,["A","QSELF",0,-1]],0]]],[457,83,[["INIT",[["outer-query-bank"]],["qself6937",457,83,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,83]],["qself6937",457,83,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,83,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,83,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,83,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,83],["outer-query-bank"]],["SWAP","qself6937",457,83,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,83,["A","QSELF",0,-1]],0]]],[457,84,[["INIT",[["outer-query-bank"]],["qself6937",457,84,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,84]],["qself6937",457,84,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,84,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,84,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,84,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,84],["outer-query-bank"]],["SWAP","qself6937",457,84,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,84,["A","QSELF",0,-1]],0]]],[457,85,[["INIT",[["outer-query-bank"]],["qself6937",457,85,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,85]],["qself6937",457,85,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,85,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,85,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,85,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,85],["outer-query-bank"]],["SWAP","qself6937",457,85,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,85,["A","QSELF",0,-1]],0]]],[457,86,[["INIT",[["outer-query-bank"]],["qself6937",457,86,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,86]],["qself6937",457,86,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,86,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,86,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,86,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,86],["outer-query-bank"]],["SWAP","qself6937",457,86,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,86,["A","QSELF",0,-1]],0]]],[457,87,[["INIT",[["outer-query-bank"]],["qself6937",457,87,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,87]],["qself6937",457,87,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,87,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,87,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,87,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,87],["outer-query-bank"]],["SWAP","qself6937",457,87,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,87,["A","QSELF",0,-1]],0]]],[457,88,[["INIT",[["outer-query-bank"]],["qself6937",457,88,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,88]],["qself6937",457,88,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,88,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,88,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,88,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,88],["outer-query-bank"]],["SWAP","qself6937",457,88,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,88,["A","QSELF",0,-1]],0]]],[457,89,[["INIT",[["outer-query-bank"]],["qself6937",457,89,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,89]],["qself6937",457,89,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,89,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,89,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,89,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,89],["outer-query-bank"]],["SWAP","qself6937",457,89,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,89,["A","QSELF",0,-1]],0]]],[457,90,[["INIT",[["outer-query-bank"]],["qself6937",457,90,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,90]],["qself6937",457,90,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,90,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,90,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,90,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,90],["outer-query-bank"]],["SWAP","qself6937",457,90,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,90,["A","QSELF",0,-1]],0]]],[457,91,[["INIT",[["outer-query-bank"]],["qself6937",457,91,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,91]],["qself6937",457,91,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,91,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,91,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,91,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,91],["outer-query-bank"]],["SWAP","qself6937",457,91,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,91,["A","QSELF",0,-1]],0]]],[457,92,[["INIT",[["outer-query-bank"]],["qself6937",457,92,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,92]],["qself6937",457,92,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,92,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,92,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,92,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,92],["outer-query-bank"]],["SWAP","qself6937",457,92,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,92,["A","QSELF",0,-1]],0]]],[457,93,[["INIT",[["outer-query-bank"]],["qself6937",457,93,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,93]],["qself6937",457,93,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,93,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,93,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,93,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,93],["outer-query-bank"]],["SWAP","qself6937",457,93,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,93,["A","QSELF",0,-1]],0]]],[457,94,[["INIT",[["outer-query-bank"]],["qself6937",457,94,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,94]],["qself6937",457,94,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,94,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,94,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,94,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,94],["outer-query-bank"]],["SWAP","qself6937",457,94,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,94,["A","QSELF",0,-1]],0]]],[457,95,[["INIT",[["outer-query-bank"]],["qself6937",457,95,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,95]],["qself6937",457,95,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,95,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,95,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,95,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,95],["outer-query-bank"]],["SWAP","qself6937",457,95,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,95,["A","QSELF",0,-1]],0]]],[457,96,[["INIT",[["outer-query-bank"]],["qself6937",457,96,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,96]],["qself6937",457,96,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,96,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,96,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,96,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,96],["outer-query-bank"]],["SWAP","qself6937",457,96,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,96,["A","QSELF",0,-1]],0]]],[457,97,[["INIT",[["outer-query-bank"]],["qself6937",457,97,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,97]],["qself6937",457,97,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,97,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,97,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,97,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,97],["outer-query-bank"]],["SWAP","qself6937",457,97,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,97,["A","QSELF",0,-1]],0]]],[457,98,[["INIT",[["outer-query-bank"]],["qself6937",457,98,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,98]],["qself6937",457,98,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,98,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,98,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,98,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,98],["outer-query-bank"]],["SWAP","qself6937",457,98,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,98,["A","QSELF",0,-1]],0]]],[457,99,[["INIT",[["outer-query-bank"]],["qself6937",457,99,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,99]],["qself6937",457,99,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,99,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,99,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,99,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,99],["outer-query-bank"]],["SWAP","qself6937",457,99,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,99,["A","QSELF",0,-1]],0]]],[457,100,[["INIT",[["outer-query-bank"]],["qself6937",457,100,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,100]],["qself6937",457,100,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,100,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,100,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,100,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,100],["outer-query-bank"]],["SWAP","qself6937",457,100,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,100,["A","QSELF",0,-1]],0]]],[457,101,[["INIT",[["outer-query-bank"]],["qself6937",457,101,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,101]],["qself6937",457,101,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,101,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,101,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,101,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,101],["outer-query-bank"]],["SWAP","qself6937",457,101,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,101,["A","QSELF",0,-1]],0]]],[457,102,[["INIT",[["outer-query-bank"]],["qself6937",457,102,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,102]],["qself6937",457,102,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,102,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,102,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,102,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,102],["outer-query-bank"]],["SWAP","qself6937",457,102,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,102,["A","QSELF",0,-1]],0]]],[457,103,[["INIT",[["outer-query-bank"]],["qself6937",457,103,["A","QSELF",0,-1]],0],["COPY",[["outer-query-bank"],["main","A",0,103]],["qself6937",457,103,["A","QSELF",0,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",457,103,["A","QSELF",0,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",457,103,["A","QSELF",0,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",457,103,["A","QSELF",0,-1]],0],["SERVICE",[["main","A",0,103],["outer-query-bank"]],["SWAP","qself6937",457,103,["A","QSELF",0,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",457,103,["A","QSELF",0,-1]],0]]],[575,0,[["INIT",[["outer-query-bank"]],["qself6937",575,0,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,0]],["qself6937",575,0,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,0,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,0,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,0,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,0],["outer-query-bank"]],["SWAP","qself6937",575,0,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,0,["A","QSELF",19,-1]],0]]],[575,1,[["INIT",[["outer-query-bank"]],["qself6937",575,1,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,1]],["qself6937",575,1,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,1,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,1,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,1,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,1],["outer-query-bank"]],["SWAP","qself6937",575,1,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,1,["A","QSELF",19,-1]],0]]],[575,2,[["INIT",[["outer-query-bank"]],["qself6937",575,2,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,2]],["qself6937",575,2,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,2,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,2,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,2,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,2],["outer-query-bank"]],["SWAP","qself6937",575,2,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,2,["A","QSELF",19,-1]],0]]],[575,3,[["INIT",[["outer-query-bank"]],["qself6937",575,3,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,3]],["qself6937",575,3,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,3,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,3,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,3,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,3],["outer-query-bank"]],["SWAP","qself6937",575,3,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,3,["A","QSELF",19,-1]],0]]],[575,4,[["INIT",[["outer-query-bank"]],["qself6937",575,4,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,4]],["qself6937",575,4,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,4,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,4,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,4,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,4],["outer-query-bank"]],["SWAP","qself6937",575,4,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,4,["A","QSELF",19,-1]],0]]],[575,5,[["INIT",[["outer-query-bank"]],["qself6937",575,5,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,5]],["qself6937",575,5,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,5,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,5,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,5,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,5],["outer-query-bank"]],["SWAP","qself6937",575,5,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,5,["A","QSELF",19,-1]],0]]],[575,6,[["INIT",[["outer-query-bank"]],["qself6937",575,6,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,6]],["qself6937",575,6,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,6,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,6,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,6,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,6],["outer-query-bank"]],["SWAP","qself6937",575,6,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,6,["A","QSELF",19,-1]],0]]],[575,7,[["INIT",[["outer-query-bank"]],["qself6937",575,7,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,7]],["qself6937",575,7,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,7,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,7,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,7,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,7],["outer-query-bank"]],["SWAP","qself6937",575,7,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,7,["A","QSELF",19,-1]],0]]],[575,8,[["INIT",[["outer-query-bank"]],["qself6937",575,8,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,8]],["qself6937",575,8,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,8,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,8,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,8,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,8],["outer-query-bank"]],["SWAP","qself6937",575,8,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,8,["A","QSELF",19,-1]],0]]],[575,9,[["INIT",[["outer-query-bank"]],["qself6937",575,9,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,9]],["qself6937",575,9,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,9,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,9,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,9,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,9],["outer-query-bank"]],["SWAP","qself6937",575,9,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,9,["A","QSELF",19,-1]],0]]],[575,10,[["INIT",[["outer-query-bank"]],["qself6937",575,10,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,10]],["qself6937",575,10,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,10,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,10,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,10,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,10],["outer-query-bank"]],["SWAP","qself6937",575,10,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,10,["A","QSELF",19,-1]],0]]],[575,11,[["INIT",[["outer-query-bank"]],["qself6937",575,11,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,11]],["qself6937",575,11,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,11,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,11,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,11,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,11],["outer-query-bank"]],["SWAP","qself6937",575,11,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,11,["A","QSELF",19,-1]],0]]],[575,12,[["INIT",[["outer-query-bank"]],["qself6937",575,12,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,12]],["qself6937",575,12,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,12,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,12,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,12,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,12],["outer-query-bank"]],["SWAP","qself6937",575,12,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,12,["A","QSELF",19,-1]],0]]],[575,13,[["INIT",[["outer-query-bank"]],["qself6937",575,13,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,13]],["qself6937",575,13,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,13,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,13,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,13,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,13],["outer-query-bank"]],["SWAP","qself6937",575,13,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,13,["A","QSELF",19,-1]],0]]],[575,14,[["INIT",[["outer-query-bank"]],["qself6937",575,14,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,14]],["qself6937",575,14,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,14,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,14,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,14,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,14],["outer-query-bank"]],["SWAP","qself6937",575,14,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,14,["A","QSELF",19,-1]],0]]],[575,16,[["INIT",[["outer-query-bank"]],["qself6937",575,16,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,16]],["qself6937",575,16,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,16,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,16,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,16,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,16],["outer-query-bank"]],["SWAP","qself6937",575,16,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,16,["A","QSELF",19,-1]],0]]],[575,18,[["INIT",[["outer-query-bank"]],["qself6937",575,18,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,18]],["qself6937",575,18,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,18,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,18,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,18,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,18],["outer-query-bank"]],["SWAP","qself6937",575,18,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,18,["A","QSELF",19,-1]],0]]],[575,19,[["INIT",[["outer-query-bank"]],["qself6937",575,19,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,19]],["qself6937",575,19,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,19,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,19,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,19,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,19],["outer-query-bank"]],["SWAP","qself6937",575,19,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,19,["A","QSELF",19,-1]],0]]],[575,20,[["INIT",[["outer-query-bank"]],["qself6937",575,20,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,20]],["qself6937",575,20,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,20,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,20,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,20,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,20],["outer-query-bank"]],["SWAP","qself6937",575,20,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,20,["A","QSELF",19,-1]],0]]],[575,21,[["INIT",[["outer-query-bank"]],["qself6937",575,21,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,21]],["qself6937",575,21,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,21,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,21,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,21,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,21],["outer-query-bank"]],["SWAP","qself6937",575,21,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,21,["A","QSELF",19,-1]],0]]],[575,22,[["INIT",[["outer-query-bank"]],["qself6937",575,22,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,22]],["qself6937",575,22,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,22,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,22,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,22,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,22],["outer-query-bank"]],["SWAP","qself6937",575,22,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,22,["A","QSELF",19,-1]],0]]],[575,23,[["INIT",[["outer-query-bank"]],["qself6937",575,23,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,23]],["qself6937",575,23,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,23,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,23,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,23,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,23],["outer-query-bank"]],["SWAP","qself6937",575,23,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,23,["A","QSELF",19,-1]],0]]],[575,24,[["INIT",[["outer-query-bank"]],["qself6937",575,24,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,24]],["qself6937",575,24,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,24,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,24,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,24,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,24],["outer-query-bank"]],["SWAP","qself6937",575,24,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,24,["A","QSELF",19,-1]],0]]],[575,25,[["INIT",[["outer-query-bank"]],["qself6937",575,25,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,25]],["qself6937",575,25,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,25,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,25,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,25,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,25],["outer-query-bank"]],["SWAP","qself6937",575,25,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,25,["A","QSELF",19,-1]],0]]],[575,26,[["INIT",[["outer-query-bank"]],["qself6937",575,26,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,26]],["qself6937",575,26,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,26,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,26,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,26,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,26],["outer-query-bank"]],["SWAP","qself6937",575,26,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,26,["A","QSELF",19,-1]],0]]],[575,28,[["INIT",[["outer-query-bank"]],["qself6937",575,28,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,28]],["qself6937",575,28,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,28,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,28,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,28,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,28],["outer-query-bank"]],["SWAP","qself6937",575,28,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,28,["A","QSELF",19,-1]],0]]],[575,29,[["INIT",[["outer-query-bank"]],["qself6937",575,29,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,29]],["qself6937",575,29,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,29,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,29,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,29,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,29],["outer-query-bank"]],["SWAP","qself6937",575,29,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,29,["A","QSELF",19,-1]],0]]],[575,30,[["INIT",[["outer-query-bank"]],["qself6937",575,30,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,30]],["qself6937",575,30,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,30,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,30,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,30,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,30],["outer-query-bank"]],["SWAP","qself6937",575,30,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,30,["A","QSELF",19,-1]],0]]],[575,31,[["INIT",[["outer-query-bank"]],["qself6937",575,31,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,31]],["qself6937",575,31,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,31,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,31,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,31,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,31],["outer-query-bank"]],["SWAP","qself6937",575,31,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,31,["A","QSELF",19,-1]],0]]],[575,32,[["INIT",[["outer-query-bank"]],["qself6937",575,32,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,32]],["qself6937",575,32,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,32,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,32,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,32,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,32],["outer-query-bank"]],["SWAP","qself6937",575,32,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,32,["A","QSELF",19,-1]],0]]],[575,33,[["INIT",[["outer-query-bank"]],["qself6937",575,33,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,33]],["qself6937",575,33,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,33,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,33,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,33,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,33],["outer-query-bank"]],["SWAP","qself6937",575,33,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,33,["A","QSELF",19,-1]],0]]],[575,36,[["INIT",[["outer-query-bank"]],["qself6937",575,36,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,36]],["qself6937",575,36,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,36,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,36,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,36,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,36],["outer-query-bank"]],["SWAP","qself6937",575,36,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,36,["A","QSELF",19,-1]],0]]],[575,37,[["INIT",[["outer-query-bank"]],["qself6937",575,37,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,37]],["qself6937",575,37,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,37,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,37,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,37,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,37],["outer-query-bank"]],["SWAP","qself6937",575,37,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,37,["A","QSELF",19,-1]],0]]],[575,38,[["INIT",[["outer-query-bank"]],["qself6937",575,38,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,38]],["qself6937",575,38,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,38,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,38,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,38,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,38],["outer-query-bank"]],["SWAP","qself6937",575,38,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,38,["A","QSELF",19,-1]],0]]],[575,39,[["INIT",[["outer-query-bank"]],["qself6937",575,39,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,39]],["qself6937",575,39,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,39,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,39,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,39,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,39],["outer-query-bank"]],["SWAP","qself6937",575,39,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,39,["A","QSELF",19,-1]],0]]],[575,40,[["INIT",[["outer-query-bank"]],["qself6937",575,40,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,40]],["qself6937",575,40,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,40,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,40,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,40,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,40],["outer-query-bank"]],["SWAP","qself6937",575,40,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,40,["A","QSELF",19,-1]],0]]],[575,41,[["INIT",[["outer-query-bank"]],["qself6937",575,41,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,41]],["qself6937",575,41,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,41,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,41,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,41,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,41],["outer-query-bank"]],["SWAP","qself6937",575,41,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,41,["A","QSELF",19,-1]],0]]],[575,43,[["INIT",[["outer-query-bank"]],["qself6937",575,43,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,43]],["qself6937",575,43,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,43,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,43,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,43,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,43],["outer-query-bank"]],["SWAP","qself6937",575,43,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,43,["A","QSELF",19,-1]],0]]],[575,44,[["INIT",[["outer-query-bank"]],["qself6937",575,44,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,44]],["qself6937",575,44,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,44,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,44,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,44,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,44],["outer-query-bank"]],["SWAP","qself6937",575,44,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,44,["A","QSELF",19,-1]],0]]],[575,45,[["INIT",[["outer-query-bank"]],["qself6937",575,45,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,45]],["qself6937",575,45,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,45,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,45,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,45,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,45],["outer-query-bank"]],["SWAP","qself6937",575,45,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,45,["A","QSELF",19,-1]],0]]],[575,46,[["INIT",[["outer-query-bank"]],["qself6937",575,46,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,46]],["qself6937",575,46,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,46,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,46,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,46,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,46],["outer-query-bank"]],["SWAP","qself6937",575,46,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,46,["A","QSELF",19,-1]],0]]],[575,48,[["INIT",[["outer-query-bank"]],["qself6937",575,48,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,48]],["qself6937",575,48,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,48,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,48,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,48,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,48],["outer-query-bank"]],["SWAP","qself6937",575,48,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,48,["A","QSELF",19,-1]],0]]],[575,49,[["INIT",[["outer-query-bank"]],["qself6937",575,49,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,49]],["qself6937",575,49,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,49,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,49,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,49,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,49],["outer-query-bank"]],["SWAP","qself6937",575,49,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,49,["A","QSELF",19,-1]],0]]],[575,50,[["INIT",[["outer-query-bank"]],["qself6937",575,50,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,50]],["qself6937",575,50,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,50,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,50,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,50,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,50],["outer-query-bank"]],["SWAP","qself6937",575,50,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,50,["A","QSELF",19,-1]],0]]],[575,51,[["INIT",[["outer-query-bank"]],["qself6937",575,51,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,51]],["qself6937",575,51,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,51,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,51,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,51,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,51],["outer-query-bank"]],["SWAP","qself6937",575,51,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,51,["A","QSELF",19,-1]],0]]],[575,52,[["INIT",[["outer-query-bank"]],["qself6937",575,52,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,52]],["qself6937",575,52,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,52,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,52,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,52,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,52],["outer-query-bank"]],["SWAP","qself6937",575,52,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,52,["A","QSELF",19,-1]],0]]],[575,53,[["INIT",[["outer-query-bank"]],["qself6937",575,53,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,53]],["qself6937",575,53,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,53,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,53,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,53,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,53],["outer-query-bank"]],["SWAP","qself6937",575,53,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,53,["A","QSELF",19,-1]],0]]],[575,54,[["INIT",[["outer-query-bank"]],["qself6937",575,54,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,54]],["qself6937",575,54,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,54,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,54,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,54,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,54],["outer-query-bank"]],["SWAP","qself6937",575,54,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,54,["A","QSELF",19,-1]],0]]],[575,56,[["INIT",[["outer-query-bank"]],["qself6937",575,56,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,56]],["qself6937",575,56,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,56,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,56,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,56,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,56],["outer-query-bank"]],["SWAP","qself6937",575,56,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,56,["A","QSELF",19,-1]],0]]],[575,57,[["INIT",[["outer-query-bank"]],["qself6937",575,57,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,57]],["qself6937",575,57,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,57,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,57,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,57,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,57],["outer-query-bank"]],["SWAP","qself6937",575,57,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,57,["A","QSELF",19,-1]],0]]],[575,58,[["INIT",[["outer-query-bank"]],["qself6937",575,58,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,58]],["qself6937",575,58,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,58,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,58,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,58,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,58],["outer-query-bank"]],["SWAP","qself6937",575,58,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,58,["A","QSELF",19,-1]],0]]],[575,59,[["INIT",[["outer-query-bank"]],["qself6937",575,59,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,59]],["qself6937",575,59,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,59,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,59,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,59,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,59],["outer-query-bank"]],["SWAP","qself6937",575,59,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,59,["A","QSELF",19,-1]],0]]],[575,60,[["INIT",[["outer-query-bank"]],["qself6937",575,60,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,60]],["qself6937",575,60,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,60,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,60,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,60,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,60],["outer-query-bank"]],["SWAP","qself6937",575,60,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,60,["A","QSELF",19,-1]],0]]],[575,61,[["INIT",[["outer-query-bank"]],["qself6937",575,61,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,61]],["qself6937",575,61,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,61,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,61,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,61,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,61],["outer-query-bank"]],["SWAP","qself6937",575,61,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,61,["A","QSELF",19,-1]],0]]],[575,62,[["INIT",[["outer-query-bank"]],["qself6937",575,62,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,62]],["qself6937",575,62,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,62,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,62,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,62,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,62],["outer-query-bank"]],["SWAP","qself6937",575,62,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,62,["A","QSELF",19,-1]],0]]],[575,63,[["INIT",[["outer-query-bank"]],["qself6937",575,63,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,63]],["qself6937",575,63,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,63,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,63,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,63,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,63],["outer-query-bank"]],["SWAP","qself6937",575,63,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,63,["A","QSELF",19,-1]],0]]],[575,64,[["INIT",[["outer-query-bank"]],["qself6937",575,64,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,64]],["qself6937",575,64,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,64,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,64,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,64,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,64],["outer-query-bank"]],["SWAP","qself6937",575,64,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,64,["A","QSELF",19,-1]],0]]],[575,65,[["INIT",[["outer-query-bank"]],["qself6937",575,65,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,65]],["qself6937",575,65,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,65,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,65,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,65,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,65],["outer-query-bank"]],["SWAP","qself6937",575,65,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,65,["A","QSELF",19,-1]],0]]],[575,66,[["INIT",[["outer-query-bank"]],["qself6937",575,66,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,66]],["qself6937",575,66,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,66,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,66,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,66,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,66],["outer-query-bank"]],["SWAP","qself6937",575,66,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,66,["A","QSELF",19,-1]],0]]],[575,67,[["INIT",[["outer-query-bank"]],["qself6937",575,67,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,67]],["qself6937",575,67,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,67,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,67,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,67,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,67],["outer-query-bank"]],["SWAP","qself6937",575,67,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,67,["A","QSELF",19,-1]],0]]],[575,68,[["INIT",[["outer-query-bank"]],["qself6937",575,68,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,68]],["qself6937",575,68,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,68,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,68,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,68,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,68],["outer-query-bank"]],["SWAP","qself6937",575,68,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,68,["A","QSELF",19,-1]],0]]],[575,69,[["INIT",[["outer-query-bank"]],["qself6937",575,69,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,69]],["qself6937",575,69,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,69,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,69,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,69,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,69],["outer-query-bank"]],["SWAP","qself6937",575,69,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,69,["A","QSELF",19,-1]],0]]],[575,70,[["INIT",[["outer-query-bank"]],["qself6937",575,70,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,70]],["qself6937",575,70,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,70,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,70,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,70,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,70],["outer-query-bank"]],["SWAP","qself6937",575,70,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,70,["A","QSELF",19,-1]],0]]],[575,71,[["INIT",[["outer-query-bank"]],["qself6937",575,71,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,71]],["qself6937",575,71,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,71,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,71,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,71,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,71],["outer-query-bank"]],["SWAP","qself6937",575,71,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,71,["A","QSELF",19,-1]],0]]],[575,72,[["INIT",[["outer-query-bank"]],["qself6937",575,72,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,72]],["qself6937",575,72,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,72,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,72,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,72,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,72],["outer-query-bank"]],["SWAP","qself6937",575,72,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,72,["A","QSELF",19,-1]],0]]],[575,73,[["INIT",[["outer-query-bank"]],["qself6937",575,73,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,73]],["qself6937",575,73,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,73,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,73,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,73,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,73],["outer-query-bank"]],["SWAP","qself6937",575,73,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,73,["A","QSELF",19,-1]],0]]],[575,74,[["INIT",[["outer-query-bank"]],["qself6937",575,74,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,74]],["qself6937",575,74,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,74,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,74,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,74,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,74],["outer-query-bank"]],["SWAP","qself6937",575,74,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,74,["A","QSELF",19,-1]],0]]],[575,75,[["INIT",[["outer-query-bank"]],["qself6937",575,75,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,75]],["qself6937",575,75,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,75,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,75,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,75,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,75],["outer-query-bank"]],["SWAP","qself6937",575,75,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,75,["A","QSELF",19,-1]],0]]],[575,76,[["INIT",[["outer-query-bank"]],["qself6937",575,76,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,76]],["qself6937",575,76,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,76,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,76,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,76,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,76],["outer-query-bank"]],["SWAP","qself6937",575,76,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,76,["A","QSELF",19,-1]],0]]],[575,77,[["INIT",[["outer-query-bank"]],["qself6937",575,77,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,77]],["qself6937",575,77,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,77,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,77,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,77,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,77],["outer-query-bank"]],["SWAP","qself6937",575,77,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,77,["A","QSELF",19,-1]],0]]],[575,78,[["INIT",[["outer-query-bank"]],["qself6937",575,78,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,78]],["qself6937",575,78,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,78,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,78,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,78,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,78],["outer-query-bank"]],["SWAP","qself6937",575,78,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,78,["A","QSELF",19,-1]],0]]],[575,79,[["INIT",[["outer-query-bank"]],["qself6937",575,79,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,79]],["qself6937",575,79,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,79,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,79,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,79,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,79],["outer-query-bank"]],["SWAP","qself6937",575,79,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,79,["A","QSELF",19,-1]],0]]],[575,80,[["INIT",[["outer-query-bank"]],["qself6937",575,80,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,80]],["qself6937",575,80,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,80,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,80,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,80,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,80],["outer-query-bank"]],["SWAP","qself6937",575,80,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,80,["A","QSELF",19,-1]],0]]],[575,81,[["INIT",[["outer-query-bank"]],["qself6937",575,81,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,81]],["qself6937",575,81,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,81,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,81,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,81,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,81],["outer-query-bank"]],["SWAP","qself6937",575,81,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,81,["A","QSELF",19,-1]],0]]],[575,82,[["INIT",[["outer-query-bank"]],["qself6937",575,82,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,82]],["qself6937",575,82,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,82,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,82,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,82,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,82],["outer-query-bank"]],["SWAP","qself6937",575,82,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,82,["A","QSELF",19,-1]],0]]],[575,83,[["INIT",[["outer-query-bank"]],["qself6937",575,83,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,83]],["qself6937",575,83,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,83,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,83,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,83,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,83],["outer-query-bank"]],["SWAP","qself6937",575,83,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,83,["A","QSELF",19,-1]],0]]],[575,84,[["INIT",[["outer-query-bank"]],["qself6937",575,84,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,84]],["qself6937",575,84,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,84,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,84,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,84,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,84],["outer-query-bank"]],["SWAP","qself6937",575,84,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,84,["A","QSELF",19,-1]],0]]],[575,85,[["INIT",[["outer-query-bank"]],["qself6937",575,85,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,85]],["qself6937",575,85,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,85,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,85,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,85,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,85],["outer-query-bank"]],["SWAP","qself6937",575,85,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,85,["A","QSELF",19,-1]],0]]],[575,86,[["INIT",[["outer-query-bank"]],["qself6937",575,86,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,86]],["qself6937",575,86,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,86,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,86,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,86,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,86],["outer-query-bank"]],["SWAP","qself6937",575,86,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,86,["A","QSELF",19,-1]],0]]],[575,87,[["INIT",[["outer-query-bank"]],["qself6937",575,87,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,87]],["qself6937",575,87,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,87,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,87,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,87,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,87],["outer-query-bank"]],["SWAP","qself6937",575,87,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,87,["A","QSELF",19,-1]],0]]],[575,88,[["INIT",[["outer-query-bank"]],["qself6937",575,88,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,88]],["qself6937",575,88,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,88,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,88,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,88,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,88],["outer-query-bank"]],["SWAP","qself6937",575,88,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,88,["A","QSELF",19,-1]],0]]],[575,89,[["INIT",[["outer-query-bank"]],["qself6937",575,89,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,89]],["qself6937",575,89,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,89,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,89,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,89,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,89],["outer-query-bank"]],["SWAP","qself6937",575,89,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,89,["A","QSELF",19,-1]],0]]],[575,90,[["INIT",[["outer-query-bank"]],["qself6937",575,90,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,90]],["qself6937",575,90,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,90,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,90,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,90,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,90],["outer-query-bank"]],["SWAP","qself6937",575,90,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,90,["A","QSELF",19,-1]],0]]],[575,91,[["INIT",[["outer-query-bank"]],["qself6937",575,91,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,91]],["qself6937",575,91,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,91,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,91,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,91,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,91],["outer-query-bank"]],["SWAP","qself6937",575,91,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,91,["A","QSELF",19,-1]],0]]],[575,92,[["INIT",[["outer-query-bank"]],["qself6937",575,92,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,92]],["qself6937",575,92,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,92,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,92,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,92,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,92],["outer-query-bank"]],["SWAP","qself6937",575,92,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,92,["A","QSELF",19,-1]],0]]],[575,93,[["INIT",[["outer-query-bank"]],["qself6937",575,93,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,93]],["qself6937",575,93,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,93,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,93,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,93,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,93],["outer-query-bank"]],["SWAP","qself6937",575,93,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,93,["A","QSELF",19,-1]],0]]],[575,94,[["INIT",[["outer-query-bank"]],["qself6937",575,94,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,94]],["qself6937",575,94,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,94,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,94,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,94,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,94],["outer-query-bank"]],["SWAP","qself6937",575,94,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,94,["A","QSELF",19,-1]],0]]],[575,95,[["INIT",[["outer-query-bank"]],["qself6937",575,95,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,95]],["qself6937",575,95,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,95,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,95,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,95,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,95],["outer-query-bank"]],["SWAP","qself6937",575,95,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,95,["A","QSELF",19,-1]],0]]],[575,96,[["INIT",[["outer-query-bank"]],["qself6937",575,96,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,96]],["qself6937",575,96,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,96,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,96,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,96,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,96],["outer-query-bank"]],["SWAP","qself6937",575,96,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,96,["A","QSELF",19,-1]],0]]],[575,97,[["INIT",[["outer-query-bank"]],["qself6937",575,97,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,97]],["qself6937",575,97,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,97,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,97,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,97,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,97],["outer-query-bank"]],["SWAP","qself6937",575,97,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,97,["A","QSELF",19,-1]],0]]],[575,98,[["INIT",[["outer-query-bank"]],["qself6937",575,98,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,98]],["qself6937",575,98,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,98,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,98,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,98,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,98],["outer-query-bank"]],["SWAP","qself6937",575,98,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,98,["A","QSELF",19,-1]],0]]],[575,99,[["INIT",[["outer-query-bank"]],["qself6937",575,99,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,99]],["qself6937",575,99,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,99,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,99,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,99,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,99],["outer-query-bank"]],["SWAP","qself6937",575,99,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,99,["A","QSELF",19,-1]],0]]],[575,100,[["INIT",[["outer-query-bank"]],["qself6937",575,100,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,100]],["qself6937",575,100,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,100,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,100,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,100,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,100],["outer-query-bank"]],["SWAP","qself6937",575,100,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,100,["A","QSELF",19,-1]],0]]],[575,101,[["INIT",[["outer-query-bank"]],["qself6937",575,101,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,101]],["qself6937",575,101,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,101,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,101,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,101,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,101],["outer-query-bank"]],["SWAP","qself6937",575,101,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,101,["A","QSELF",19,-1]],0]]],[575,102,[["INIT",[["outer-query-bank"]],["qself6937",575,102,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,102]],["qself6937",575,102,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,102,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,102,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,102,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,102],["outer-query-bank"]],["SWAP","qself6937",575,102,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,102,["A","QSELF",19,-1]],0]]],[575,103,[["INIT",[["outer-query-bank"]],["qself6937",575,103,["A","QSELF",19,-1]],0],["COPY",[["outer-query-bank"],["main","A",19,103]],["qself6937",575,103,["A","QSELF",19,-1]],0],["SERVICE",[["outer-query-bank"]],["query-in","qself6937",575,103,["A","QSELF",19,-1]],0],["PAID",[["outer-query-bank"]],["qself6937",575,103,["A","QSELF",19,-1]],1],["SERVICE",[["outer-query-bank"]],["query-out","qself6937",575,103,["A","QSELF",19,-1]],0],["SERVICE",[["main","A",19,103],["outer-query-bank"]],["SWAP","qself6937",575,103,["A","QSELF",19,-1]],0],["CLEAR",[["outer-query-bank"]],["qself6937",575,103,["A","QSELF",19,-1]],0]]]] diff --git a/research/p104-qself-owned-lowering/QUERY-BASES.json b/research/p104-qself-owned-lowering/QUERY-BASES.json new file mode 100644 index 0000000000..b614252b31 --- /dev/null +++ b/research/p104-qself-owned-lowering/QUERY-BASES.json @@ -0,0 +1,1570 @@ +{ + "source_repository": "DreamingOfClouds/integer-mult-bounds", + "source_commit": "03626137d0bd57f09b0bf9597376183ce6fa9683", + "source_path": "research/p104-main-wire-native/retained/runtime/DATA-PHASES.json", + "source_git_blob": "d9a4f84211182ca200c081ea061d724c8a2cfb70", + "source_sha256": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa", + "note": "Derived exact extraction; all basis equations and actual word-port bindings are independently checked, so correctness does not depend on trusting this provenance.", + "records": [ + { + "port": 0, + "q": 11, + "basis": [ + 11, + 13, + 14, + 7, + 16, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 1, + "q": 19, + "basis": [ + 19, + 21, + 22, + 8, + 7, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 2, + "q": 35, + "basis": [ + 35, + 37, + 38, + 8, + 16, + 7, + 64, + 128, + 256 + ] + }, + { + "port": 3, + "q": 131, + "basis": [ + 131, + 133, + 134, + 8, + 16, + 32, + 64, + 7, + 256 + ] + }, + { + "port": 4, + "q": 259, + "basis": [ + 259, + 261, + 262, + 8, + 16, + 32, + 64, + 128, + 7 + ] + }, + { + "port": 5, + "q": 13, + "basis": [ + 13, + 14, + 11, + 7, + 16, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 6, + "q": 21, + "basis": [ + 21, + 22, + 19, + 8, + 7, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 7, + "q": 37, + "basis": [ + 37, + 38, + 35, + 8, + 16, + 7, + 64, + 128, + 256 + ] + }, + { + "port": 8, + "q": 69, + "basis": [ + 69, + 70, + 67, + 8, + 16, + 32, + 7, + 128, + 256 + ] + }, + { + "port": 9, + "q": 133, + "basis": [ + 133, + 134, + 131, + 8, + 16, + 32, + 64, + 7, + 256 + ] + }, + { + "port": 10, + "q": 261, + "basis": [ + 261, + 262, + 259, + 8, + 16, + 32, + 64, + 128, + 7 + ] + }, + { + "port": 11, + "q": 41, + "basis": [ + 41, + 42, + 4, + 35, + 16, + 11, + 64, + 128, + 256 + ] + }, + { + "port": 12, + "q": 73, + "basis": [ + 73, + 74, + 4, + 67, + 16, + 32, + 11, + 128, + 256 + ] + }, + { + "port": 13, + "q": 265, + "basis": [ + 265, + 266, + 4, + 259, + 16, + 32, + 64, + 128, + 11 + ] + }, + { + "port": 14, + "q": 49, + "basis": [ + 49, + 50, + 4, + 8, + 35, + 19, + 64, + 128, + 256 + ] + }, + { + "port": 15, + "q": 81, + "basis": [ + 81, + 82, + 4, + 8, + 67, + 32, + 19, + 128, + 256 + ] + }, + { + "port": 16, + "q": 145, + "basis": [ + 145, + 146, + 4, + 8, + 131, + 32, + 64, + 19, + 256 + ] + }, + { + "port": 17, + "q": 273, + "basis": [ + 273, + 274, + 4, + 8, + 259, + 32, + 64, + 128, + 19 + ] + }, + { + "port": 18, + "q": 161, + "basis": [ + 161, + 162, + 4, + 8, + 16, + 131, + 64, + 35, + 256 + ] + }, + { + "port": 19, + "q": 193, + "basis": [ + 193, + 194, + 4, + 8, + 16, + 32, + 131, + 67, + 256 + ] + }, + { + "port": 20, + "q": 321, + "basis": [ + 321, + 322, + 4, + 8, + 16, + 32, + 259, + 128, + 67 + ] + }, + { + "port": 21, + "q": 385, + "basis": [ + 385, + 386, + 4, + 8, + 16, + 32, + 64, + 259, + 131 + ] + }, + { + "port": 22, + "q": 14, + "basis": [ + 14, + 13, + 11, + 7, + 16, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 23, + "q": 22, + "basis": [ + 22, + 21, + 19, + 8, + 7, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 24, + "q": 38, + "basis": [ + 38, + 37, + 35, + 8, + 16, + 7, + 64, + 128, + 256 + ] + }, + { + "port": 25, + "q": 70, + "basis": [ + 70, + 69, + 67, + 8, + 16, + 32, + 7, + 128, + 256 + ] + }, + { + "port": 26, + "q": 134, + "basis": [ + 134, + 133, + 131, + 8, + 16, + 32, + 64, + 7, + 256 + ] + }, + { + "port": 27, + "q": 262, + "basis": [ + 262, + 261, + 259, + 8, + 16, + 32, + 64, + 128, + 7 + ] + }, + { + "port": 28, + "q": 26, + "basis": [ + 26, + 25, + 4, + 19, + 11, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 29, + "q": 74, + "basis": [ + 74, + 73, + 4, + 67, + 16, + 32, + 11, + 128, + 256 + ] + }, + { + "port": 30, + "q": 138, + "basis": [ + 138, + 137, + 4, + 131, + 16, + 32, + 64, + 11, + 256 + ] + }, + { + "port": 31, + "q": 50, + "basis": [ + 50, + 49, + 4, + 8, + 35, + 19, + 64, + 128, + 256 + ] + }, + { + "port": 32, + "q": 146, + "basis": [ + 146, + 145, + 4, + 8, + 131, + 32, + 64, + 19, + 256 + ] + }, + { + "port": 33, + "q": 274, + "basis": [ + 274, + 273, + 4, + 8, + 259, + 32, + 64, + 128, + 19 + ] + }, + { + "port": 34, + "q": 98, + "basis": [ + 98, + 97, + 4, + 8, + 16, + 67, + 35, + 128, + 256 + ] + }, + { + "port": 35, + "q": 290, + "basis": [ + 290, + 289, + 4, + 8, + 16, + 259, + 64, + 128, + 35 + ] + }, + { + "port": 36, + "q": 194, + "basis": [ + 194, + 193, + 4, + 8, + 16, + 32, + 131, + 67, + 256 + ] + }, + { + "port": 37, + "q": 322, + "basis": [ + 322, + 321, + 4, + 8, + 16, + 32, + 259, + 128, + 67 + ] + }, + { + "port": 38, + "q": 386, + "basis": [ + 386, + 385, + 4, + 8, + 16, + 32, + 64, + 259, + 131 + ] + }, + { + "port": 39, + "q": 28, + "basis": [ + 28, + 2, + 25, + 21, + 13, + 32, + 64, + 128, + 256 + ] + }, + { + "port": 40, + "q": 44, + "basis": [ + 44, + 2, + 41, + 37, + 16, + 13, + 64, + 128, + 256 + ] + }, + { + "port": 41, + "q": 140, + "basis": [ + 140, + 2, + 137, + 133, + 16, + 32, + 64, + 13, + 256 + ] + }, + { + "port": 42, + "q": 268, + "basis": [ + 268, + 2, + 265, + 261, + 16, + 32, + 64, + 128, + 13 + ] + }, + { + "port": 43, + "q": 84, + "basis": [ + 84, + 2, + 81, + 8, + 69, + 32, + 21, + 128, + 256 + ] + }, + { + "port": 44, + "q": 148, + "basis": [ + 148, + 2, + 145, + 8, + 133, + 32, + 64, + 21, + 256 + ] + }, + { + "port": 45, + "q": 276, + "basis": [ + 276, + 2, + 273, + 8, + 261, + 32, + 64, + 128, + 21 + ] + }, + { + "port": 46, + "q": 100, + "basis": [ + 100, + 2, + 97, + 8, + 16, + 69, + 37, + 128, + 256 + ] + }, + { + "port": 47, + "q": 164, + "basis": [ + 164, + 2, + 161, + 8, + 16, + 133, + 64, + 37, + 256 + ] + }, + { + "port": 48, + "q": 292, + "basis": [ + 292, + 2, + 289, + 8, + 16, + 261, + 64, + 128, + 37 + ] + }, + { + "port": 49, + "q": 196, + "basis": [ + 196, + 2, + 193, + 8, + 16, + 32, + 133, + 69, + 256 + ] + }, + { + "port": 50, + "q": 324, + "basis": [ + 324, + 2, + 321, + 8, + 16, + 32, + 261, + 128, + 69 + ] + }, + { + "port": 51, + "q": 388, + "basis": [ + 388, + 2, + 385, + 8, + 16, + 32, + 64, + 261, + 133 + ] + }, + { + "port": 52, + "q": 56, + "basis": [ + 56, + 2, + 4, + 49, + 41, + 25, + 64, + 128, + 256 + ] + }, + { + "port": 53, + "q": 88, + "basis": [ + 88, + 2, + 4, + 81, + 73, + 32, + 25, + 128, + 256 + ] + }, + { + "port": 54, + "q": 152, + "basis": [ + 152, + 2, + 4, + 145, + 137, + 32, + 64, + 25, + 256 + ] + }, + { + "port": 55, + "q": 280, + "basis": [ + 280, + 2, + 4, + 273, + 265, + 32, + 64, + 128, + 25 + ] + }, + { + "port": 56, + "q": 168, + "basis": [ + 168, + 2, + 4, + 161, + 16, + 137, + 64, + 41, + 256 + ] + }, + { + "port": 57, + "q": 296, + "basis": [ + 296, + 2, + 4, + 289, + 16, + 265, + 64, + 128, + 41 + ] + }, + { + "port": 58, + "q": 200, + "basis": [ + 200, + 2, + 4, + 193, + 16, + 32, + 137, + 73, + 256 + ] + }, + { + "port": 59, + "q": 328, + "basis": [ + 328, + 2, + 4, + 321, + 16, + 32, + 265, + 128, + 73 + ] + }, + { + "port": 60, + "q": 392, + "basis": [ + 392, + 2, + 4, + 385, + 16, + 32, + 64, + 265, + 137 + ] + }, + { + "port": 61, + "q": 112, + "basis": [ + 112, + 2, + 4, + 8, + 97, + 81, + 49, + 128, + 256 + ] + }, + { + "port": 62, + "q": 176, + "basis": [ + 176, + 2, + 4, + 8, + 161, + 145, + 64, + 49, + 256 + ] + }, + { + "port": 63, + "q": 304, + "basis": [ + 304, + 2, + 4, + 8, + 289, + 273, + 64, + 128, + 49 + ] + }, + { + "port": 64, + "q": 208, + "basis": [ + 208, + 2, + 4, + 8, + 193, + 32, + 145, + 81, + 256 + ] + }, + { + "port": 65, + "q": 336, + "basis": [ + 336, + 2, + 4, + 8, + 321, + 32, + 273, + 128, + 81 + ] + }, + { + "port": 66, + "q": 400, + "basis": [ + 400, + 2, + 4, + 8, + 385, + 32, + 64, + 273, + 145 + ] + }, + { + "port": 67, + "q": 224, + "basis": [ + 224, + 2, + 4, + 8, + 16, + 193, + 161, + 97, + 256 + ] + }, + { + "port": 68, + "q": 352, + "basis": [ + 352, + 2, + 4, + 8, + 16, + 321, + 289, + 128, + 97 + ] + }, + { + "port": 69, + "q": 416, + "basis": [ + 416, + 2, + 4, + 8, + 16, + 385, + 64, + 289, + 161 + ] + }, + { + "port": 70, + "q": 508, + "basis": [ + 508, + 2, + 505, + 501, + 493, + 477, + 445, + 381, + 253 + ] + }, + { + "port": 71, + "q": 506, + "basis": [ + 506, + 505, + 4, + 499, + 491, + 475, + 443, + 379, + 251 + ] + }, + { + "port": 72, + "q": 502, + "basis": [ + 502, + 501, + 499, + 8, + 487, + 471, + 439, + 375, + 247 + ] + }, + { + "port": 73, + "q": 494, + "basis": [ + 494, + 493, + 491, + 487, + 16, + 463, + 431, + 367, + 239 + ] + }, + { + "port": 74, + "q": 478, + "basis": [ + 478, + 477, + 475, + 471, + 463, + 32, + 415, + 351, + 223 + ] + }, + { + "port": 75, + "q": 446, + "basis": [ + 446, + 445, + 443, + 439, + 431, + 415, + 64, + 319, + 191 + ] + }, + { + "port": 76, + "q": 382, + "basis": [ + 382, + 381, + 379, + 375, + 367, + 351, + 319, + 128, + 127 + ] + }, + { + "port": 77, + "q": 254, + "basis": [ + 254, + 253, + 251, + 247, + 239, + 223, + 191, + 127, + 256 + ] + }, + { + "port": 78, + "q": 505, + "basis": [ + 505, + 506, + 4, + 499, + 491, + 475, + 443, + 379, + 251 + ] + }, + { + "port": 79, + "q": 501, + "basis": [ + 501, + 502, + 499, + 8, + 487, + 471, + 439, + 375, + 247 + ] + }, + { + "port": 80, + "q": 493, + "basis": [ + 493, + 494, + 491, + 487, + 16, + 463, + 431, + 367, + 239 + ] + }, + { + "port": 81, + "q": 477, + "basis": [ + 477, + 478, + 475, + 471, + 463, + 32, + 415, + 351, + 223 + ] + }, + { + "port": 82, + "q": 445, + "basis": [ + 445, + 446, + 443, + 439, + 431, + 415, + 64, + 319, + 191 + ] + }, + { + "port": 83, + "q": 381, + "basis": [ + 381, + 382, + 379, + 375, + 367, + 351, + 319, + 128, + 127 + ] + }, + { + "port": 84, + "q": 253, + "basis": [ + 253, + 254, + 251, + 247, + 239, + 223, + 191, + 127, + 256 + ] + }, + { + "port": 85, + "q": 499, + "basis": [ + 499, + 501, + 502, + 8, + 487, + 471, + 439, + 375, + 247 + ] + }, + { + "port": 86, + "q": 475, + "basis": [ + 475, + 477, + 478, + 471, + 463, + 32, + 415, + 351, + 223 + ] + }, + { + "port": 87, + "q": 443, + "basis": [ + 443, + 445, + 446, + 439, + 431, + 415, + 64, + 319, + 191 + ] + }, + { + "port": 88, + "q": 379, + "basis": [ + 379, + 381, + 382, + 375, + 367, + 351, + 319, + 128, + 127 + ] + }, + { + "port": 89, + "q": 251, + "basis": [ + 251, + 253, + 254, + 247, + 239, + 223, + 191, + 127, + 256 + ] + }, + { + "port": 90, + "q": 487, + "basis": [ + 487, + 493, + 491, + 494, + 16, + 463, + 431, + 367, + 239 + ] + }, + { + "port": 91, + "q": 471, + "basis": [ + 471, + 477, + 475, + 478, + 463, + 32, + 415, + 351, + 223 + ] + }, + { + "port": 92, + "q": 439, + "basis": [ + 439, + 445, + 443, + 446, + 431, + 415, + 64, + 319, + 191 + ] + }, + { + "port": 93, + "q": 375, + "basis": [ + 375, + 381, + 379, + 382, + 367, + 351, + 319, + 128, + 127 + ] + }, + { + "port": 94, + "q": 247, + "basis": [ + 247, + 253, + 251, + 254, + 239, + 223, + 191, + 127, + 256 + ] + }, + { + "port": 95, + "q": 463, + "basis": [ + 463, + 477, + 475, + 471, + 478, + 32, + 415, + 351, + 223 + ] + }, + { + "port": 96, + "q": 431, + "basis": [ + 431, + 445, + 443, + 439, + 446, + 415, + 64, + 319, + 191 + ] + }, + { + "port": 97, + "q": 367, + "basis": [ + 367, + 381, + 379, + 375, + 382, + 351, + 319, + 128, + 127 + ] + }, + { + "port": 98, + "q": 239, + "basis": [ + 239, + 253, + 251, + 247, + 254, + 223, + 191, + 127, + 256 + ] + }, + { + "port": 99, + "q": 415, + "basis": [ + 415, + 445, + 443, + 439, + 431, + 446, + 64, + 319, + 191 + ] + }, + { + "port": 100, + "q": 351, + "basis": [ + 351, + 381, + 379, + 375, + 367, + 382, + 319, + 128, + 127 + ] + }, + { + "port": 101, + "q": 223, + "basis": [ + 223, + 253, + 251, + 247, + 239, + 254, + 191, + 127, + 256 + ] + }, + { + "port": 102, + "q": 319, + "basis": [ + 319, + 381, + 379, + 375, + 367, + 351, + 382, + 128, + 127 + ] + }, + { + "port": 103, + "q": 191, + "basis": [ + 191, + 253, + 251, + 247, + 239, + 223, + 254, + 127, + 256 + ] + } + ] +} diff --git a/research/p104-qself-owned-lowering/README.md b/research/p104-qself-owned-lowering/README.md new file mode 100644 index 0000000000..7a83565940 --- /dev/null +++ b/research/p104-qself-owned-lowering/README.md @@ -0,0 +1,142 @@ +# E-free caller certificate and owned QSELF lowering + +**No new κ. Conditional caller/compiler-interface progress.** Prepared for +**@CubeJerry**, with substantial OpenAI assistance. Apache-2.0. + +DreamingOfClouds' [#6937](https://github.com/CrocSwap/integer-mult-bounds/pull/6937) +supplies an E-free two-chain root and caller, but its new QSELF instruction +is outside the retained public QUERY alphabet. This package gives that exact +caller a reproducible operator certificate, constructs typed expansions of +both QSELF sites in the existing owned-bank lifecycle, and checks the source and cost change +against [#6936](https://github.com/CrocSwap/integer-mult-bounds/pull/6936). + +## Results + +- The exact 2,991-event, 76-field caller is diagonal over + `Q(i)[q,D_1,...,D_18]/(q^4-1)`, with all D variables formal and all input + fields independent. The forward certificate peaks at 2,713 monomials. + A separate reverse-covector engine uses integer dyadics and all four exact + q characters, still retaining every D variable formally. +- Event 457 on A role 0 and event 575 on A role 19 each have 96 instances. + Each expands to INIT, COPY, query-in, PAID(1), query-out, SWAP, CLEAR through + unchanged lifecycle IR classes. One outer query bank is reused; it has no + productive credit. The canonical ownership contract explicitly permits + the correlated copied value and erasure after the completed child returns. + This is a relative typed-IR expansion: this package does not install a + service registry for the new `qself6937` tokens. The old source-specific + binders are not implicitly extended by accepting these IR opcodes. +- Two nine-axis maps and the Q² return translation implement Q^-1 with its + exact absolute phase for every positive tensor-column count. Complete + field shape, grid, signed range and all physical providers remain declared + interface obligations. The prototype never uses a Python Gaussian callback + as evidence of tape execution. +- The complete profiles lose 192 targets and 192 paid calls, all at rank one. + Thus the moment polynomial is unchanged for every κ; surplus remains 1520. + The new complete counts are 23,050 productive fields and 117,846 paid calls. + Under the inherited scalar/routing conventions, including an explicit + extra 24,576-unit lifecycle charge, the conservative double-recharged raw + bill is 811,461,936, below 10⁹ by 188,538,064. +- The standalone copied-bank/SWAP scan remainder has a separately derived + physical bound. The unchanged INIT, COPY and CLEAR routines are metered on + 84 cases with widths 1 through 129, mixed component widths and dirty backing. + Twenty-seven meaningful algebra/source/phase/ownership/invoice controls + reject. A proposed forward-for-inverse basis mutation is correctly classified + as equivalent because all 96 stored bases happen to be involutions. + +See [PROOF.md](PROOF.md) for the quantified theorem, exact operation semantics, +all-column identity, physical scan calculation, stock, error propagation and +the limited formal determinant obstruction. [RESULT.json](RESULT.json) stores +the complete replay receipts; [QSELF-PATCH.json](QSELF-PATCH.json) stores all +192 source-bound IR expansions. That patch is a template artifact, not a +claim that the full physical caller has been executed. + +## Exact dependencies and prior work + +Canonical base: `7c49fe32c55de02c2c873655c804b16e4c3fef0a`; the selected +conditional κ remains **0.003125804**. The proposed caller/root are pinned to +DreamingOfClouds' #6937 head `a98df73ddae1d1ea85a62b6bdf2714b28cb7b359`. +The comparison caller and unchanged native word are pinned to #6936 head +`03626137d0bd57f09b0bf9597376183ce6fa9683`. + +The E-free construction and the original reported caller replay are credited +to DreamingOfClouds, with Claude Opus assistance. The source README reports +four central characters but does not specify whether D stayed formal. Its +shipped checker only parses the caller; no claim is made that the separately +reported calculation was wrong or mathematically incomplete. Our concrete +addition is a reproducible unspecialized certificate and owned/source/cost +closure, not a claim of priority over unpublished details. + +The original lifecycle modules are vendored byte-for-byte from @CubeJerry's +published commit `ab239cb6ee884e7a900dd9101c34448077fad0b0`. The SWAP scan +theorem is pinned to published commit `e2e707fd99125ef0005ad16435d90e5d3a82f31e`. +External source-head objects need not be reachable in canonical Git: +[DEPENDENCIES.json](DEPENDENCIES.json) gives repository, commit, path, Git blob, +SHA256 and byte count, which the verifier checks directly. Reference-only code +is authenticated but not imported. The 104 small basis records are extracted +from a source-pinned phase file and independently checked against actual word +ports and orthogonality; that large reference file is not copied into the package. + +## Reproduction + +Python 3.12 standard library; no network, external executable, install or Git +history is needed for the four package checks: + +```sh +python3 -I -B research/p104-qself-owned-lowering/verify.py --suite formal +python3 -I -B research/p104-qself-owned-lowering/verify.py --suite closure +python3 -I -B research/p104-qself-owned-lowering/verify.py --suite invoice +python3 -I -B research/p104-qself-owned-lowering/verify.py --suite controls +``` + +Expected markers are `PASS_QSELF_OWNED_FORMAL`, `PASS_QSELF_OWNED_CLOSURE`, +`PASS_QSELF_OWNED_INVOICE`, and `PASS_QSELF_OWNED_CONTROLS`. VERIFY.json registers +all four in normal and optimized Python; the checks do not use removable +assert statements. In a canonical checkout, validate and run all registered +gates with: + +```sh +python3 -B scripts/research_package.py --package research/p104-qself-owned-lowering +``` + +`--regenerate` is an explicit developer command which rewrites RESULT.json and +QSELF-PATCH.json; ordinary verification writes neither file. The source inputs +are finite fixed templates, not samples over an unexplored search domain. + +## Limitations + +This is a conditional algebraic and typed-template composition theorem. The +full caller requires commuting operators and Q⁴=I. The local bank substitution +alone works for arbitrary completed A. All five selected framework assumptions +remain: native_all_columns, owned_erasure, compiler, precision_tape and +analytic_recovery. #6936's native/A6, odd-scalar exact-return and BIT premises +remain too. No complete rounded multiplier, physical fullcaller run or selected +supplier admission is asserted. The full numerical new bill uses inherited +scalar/pass rates, which are explicitly distinct from the metered physical +scan bound. An exact representation does not guarantee each Gaussian return +has the required finite signed width or grid. +The exact token-to-provider/table registry and concrete header export remain +unfinished; the typed patch is not a literal executable physical dispatcher. + +## Open next questions + +1. Install and verify an exact registry for the new query and SWAP tokens, + with source provenance, actual headers and the existing provider contracts. + IR opcode acceptance alone is insufficient for this step. +2. Bind every whole-job return to the common coded shape, grid and signed range + used by this source caller, including Controller INIT's payload-0 guide. + This is needed before claiming all-success physical execution. +3. Insert the changed finite raw-unit counts into an admitted compiled + precision/stock and error certificate. Use separate banks for suspended + unit instances and retain erased high-water backing. +4. Review the complete candidate's retained native, odd-scalar, BIT and + analytic premises. The unchanged moment polynomial is not selected-frontier + admission. A paired QUERY-only construction without owned initialization + is also not ruled out by the single-QSELF determinant lemma. + +Retain the native/productive/compiler lineage, Romman, @CubeJerry's +[#6912](https://github.com/CrocSwap/integer-mult-bounds/pull/6912) caller blocks +and [#6914](https://github.com/CrocSwap/integer-mult-bounds/pull/6914) owned-rise +work, unpaidmoon's [#6930](https://github.com/CrocSwap/integer-mult-bounds/pull/6930) +phase work, and icekylinx's [#104](https://github.com/CrocSwap/integer-mult-bounds/pull/104). +This package used substantial OpenAI assistance for analysis, proofs, code and +separate AI review; that is not independent human or proof-kernel acceptance. diff --git a/research/p104-qself-owned-lowering/RESULT.json b/research/p104-qself-owned-lowering/RESULT.json new file mode 100644 index 0000000000..fa7962ca59 --- /dev/null +++ b/research/p104-qself-owned-lowering/RESULT.json @@ -0,0 +1,273 @@ +{ + "closure": { + "adapter_binding": { + "all_positive_columns": "Proved by exact tensor identity in PROOF.md, not inferred from these finite checks.", + "exact_one_column_phase_equations": 49152, + "new_ports": 96, + "nine_axis_maps_per_QSELF": 2, + "provider_status": "Actual tape execution, common precision, signed range and numerical return remain inherited contracts.", + "translations_per_QSELF": 1 + }, + "physical_scan_costs": { + "Gaussian_or_fullcaller_execution": false, + "checked_functions": [ + "initialize", + "copy_as_add", + "retire" + ], + "dirty_copy_control": true, + "normal_head_and_raw_erasure_controls": true, + "physical_cell_actions": 377784, + "physical_scan_cases": 84 + }, + "source_expansion": { + "IR_events": 1344, + "SERVICE_registry_installed": false, + "dispatch_scope": "Relative typed-IR expansion only. New qself6937 tokens need an exact provider/table registry and header/format binding; old source-specific binders are not reused implicitly.", + "event_counts": { + "CLEAR": 192, + "COPY": 192, + "INIT": 192, + "PAID": 192, + "SERVICE": 576 + }, + "instances": 192, + "local_owned_lifetimes": 54, + "local_peak_owned": 43, + "local_source_events": 71144, + "local_typed_events": 83790, + "new_productive_credit": 0, + "patch_sha256": "c27e7ec3e900acdcb975064aca6ceab42b2fee7a179adb7d92b767b289d44304", + "physical_fullcaller_executed": false, + "private_query_banks_per_live_unit": 1, + "sites": [ + 457, + 575 + ], + "source_roles": [ + 0, + 19 + ] + } + }, + "controls": { + "controls": { + "ADD substituted for complete swap": true, + "COPY before initialization": true, + "Q instead of inverse Q": true, + "Q instead of inverse Q / independent covectors": true, + "arbitrary-input contamination": true, + "arbitrary-input contamination / independent covectors": true, + "clear before child return": true, + "deleted first QSELF": true, + "deleted first QSELF / independent covectors": true, + "deleted second QSELF": true, + "duplicate idle stage in one mask": true, + "helper/main allocation alias": true, + "missing Q-squared return translation": true, + "missing new paid debit": true, + "missing physical CLEAR": true, + "nonorthogonal adapter": true, + "omitted inverse ambient basis": true, + "owned public alias": true, + "repeated D across separate events": true, + "repeated D across separate events / independent covectors": true, + "type-B port substituted": true, + "unbound source site": true, + "undercounted paid rank": true, + "wrong q period 2": true, + "wrong q period 8": true, + "wrong source owner": true, + "wrong total-Q LAMBDA phase": true + }, + "equivalent_not_negative": "All 96 stored nine-axis bases are involutions; forward-for-inverse is correctly accepted.", + "rejected": 27 + }, + "formal": { + "forward": { + "D_variables": 18, + "endpoint_sha256": "a1170bbdfdeab23e8d54af136a1b4a7515e9b0e893eac6656a1af47d0b9605b5", + "endpoint_terms": 76, + "events": 2991, + "independent_inputs": 76, + "peak_row_terms": 90, + "peak_terms": 2713, + "q_relation": "q^4=1" + }, + "independent_backward_covectors": [ + { + "formal_D_variables": 18, + "independent_outputs": 76, + "peak_terms": 198, + "q_character_power_of_i": 0 + }, + { + "formal_D_variables": 18, + "independent_outputs": 76, + "peak_terms": 198, + "q_character_power_of_i": 1 + }, + { + "formal_D_variables": 18, + "independent_outputs": 76, + "peak_terms": 439, + "q_character_power_of_i": 2 + }, + { + "formal_D_variables": 18, + "independent_outputs": 76, + "peak_terms": 439, + "q_character_power_of_i": 3 + } + ], + "universal_scope": "Commuting Q,D_1,...,D_18 with Q^4=I; exact independent input coefficients. No finite D substitutions." + }, + "invoice": { + "local_source_counts": { + "allowance": 870150, + "allowance_per_call": 10731150, + "helpers": { + "1": 12, + "2": 17, + "3": 44, + "4": 215, + "5": 68, + "6": 41, + "7": 14, + "8": 62, + "9": 588 + }, + "lifetimes": 54, + "owned_labels": 51, + "owned_rise_mass": 56, + "owned_rises": 23, + "paid": { + "1": 4109, + "2": 878, + "3": 781, + "4": 218, + "5": 304, + "6": 15, + "7": 12, + "8": 6 + }, + "peak_owned": 43, + "public": 1461, + "reviewed_per_call": 11635872, + "reviewed_scalar": 1774872, + "routes": 9861000 + }, + "new_caller_cost": { + "caller_envelope": 132427264, + "idle_maps": 205536000, + "lambda_recharge": 11792000, + "main_maps": 248144000, + "main_normalizers": 102752, + "qself_extra_lifecycle": 24576, + "query_maps": 1248000, + "raw_rest": 587489248, + "thin_lifecycle": 6656 + }, + "new_double_recharged_raw": 811461936, + "new_outer_query_lifetimes": 416, + "new_paid": { + "1": 74378, + "16": 416, + "2": 15804, + "24": 416, + "3": 14058, + "32": 416, + "4": 3924, + "40": 416, + "48": 416, + "5": 5472, + "56": 416, + "6": 270, + "64": 416, + "7": 216, + "8": 812 + }, + "new_paid_rank_mass": 317324, + "new_qself_lifetimes": 192, + "new_reviewed_raw": 796934944, + "new_targets": { + "1": 216, + "145": 208, + "17": 416, + "2": 306, + "25": 416, + "3": 792, + "33": 416, + "4": 3870, + "41": 416, + "49": 416, + "5": 1224, + "57": 416, + "6": 738, + "65": 416, + "7": 252, + "73": 416, + "8": 1116, + "9": 11000 + }, + "old_caller_cost": { + "caller_envelope": 166612480, + "idle_maps": 205536000, + "lambda_recharge": 12560000, + "main_maps": 248720000, + "main_normalizers": 107744, + "qself_extra_lifecycle": 0, + "query_maps": 1824000, + "raw_rest": 622809952, + "thin_lifecycle": 9728 + }, + "old_outer_query_lifetimes": 608, + "old_paid": { + "1": 74570, + "16": 416, + "2": 15804, + "24": 416, + "3": 14058, + "32": 416, + "4": 3924, + "40": 416, + "48": 416, + "5": 5472, + "56": 416, + "6": 270, + "64": 416, + "7": 216, + "8": 812 + }, + "old_reviewed_raw": 832255648, + "old_targets": { + "1": 408, + "145": 208, + "17": 416, + "2": 306, + "25": 416, + "3": 792, + "33": 416, + "4": 3870, + "41": 416, + "49": 416, + "5": 1224, + "57": 416, + "6": 738, + "65": 416, + "7": 252, + "73": 416, + "8": 1116, + "9": 11000 + }, + "ordinary_margin": 188538064, + "owned_query_bank_count": 1, + "paid_count": 117846, + "per_call_scale_recharge": 2734992, + "rank_mass_surplus": 1520, + "selected_kappa_change": false, + "status": "Conditional source invoice; no native, rounded, physical fullcaller or supplier admission follows from counting.", + "target_count": 23050 + }, + "source_files_authenticated": 12 +} diff --git a/research/p104-qself-owned-lowering/REVIEW.md b/research/p104-qself-owned-lowering/REVIEW.md new file mode 100644 index 0000000000..2c04f39c16 --- /dev/null +++ b/research/p104-qself-owned-lowering/REVIEW.md @@ -0,0 +1,60 @@ +# Review and evidence boundaries + +Prepared for @CubeJerry, with substantial OpenAI assistance. No independent +human or proof-kernel acceptance is asserted. + +## Two certificate methods + +The forward engine keeps q as a formal residue class and all 18 D variables +as formal monomials, with exact Gaussian rational input coefficients. +The backward engine uses output covectors, transposed gate propagation, +separate integer-dyadic arithmetic, and four exact q characters while still +keeping every D formal. Injectivity of those four characters supplies the +universal q identity. It does not import the forward implementation. + +The 27 meaningful failure controls include missing/changed QSELF, unrelated +input contamination, repeated D factors, q periods two and eight, total-Q +LAMBDA phase, omitted return translation, omitted inverse basis, ownership +and lifetime faults, understated paid rank and a helper/main alias. Several +critical algebra controls also fail in the separate backward engine. + +A proposed forward-for-inverse basis mutation was initially expected to fail. +It did not: all 96 actual stored bases are involutions. That substitution is +equivalent and is recorded as an accepted equivalence, not counted among the +27 rejected negative controls. Omitting the inverse map altogether is the +meaningful failing control. This is an audit of control validity, not an +implementation defect or evidence of a mathematical obstruction. + +## Lead cross-review + +The lead research agent separately read PROOF.md and the actual source +operation definitions. Its mathematical review checked the generic copied +bank substitution, four-character injectivity, deliberately limited +determinant statement, explicit common-format/rounded-return limitations and +the physical scan derivation. No issue remained within those stated premises. + +The lead also wrote a separate raw-source tally without importing invoice.py. +It confirmed 23,050 targets, 117,846 paid calls, rank-mass surplus 1520 and +paid rank mass 317,324; the exact all-rank difference is -192 in both rank-one +counts and zero at every other rank. It independently counted the 1,061 +helpers, 400 local mains and 71,144 source events, and verified QSELF source +sites 457 and 575. + +A separate lead check used all 96 actual native ports to verify 49,152 exact +one-column phase equations, with 24,576 discriminators for an omitted Q² +translation. Tensor exponent addition was checked at f=1,...,5. The all-f +conclusion uses the written per-column tensor identity; it is not inferred +from those five finite cases. + +The lead identified a dispatch distinction before freezing: new QSELF tokens +are not automatically admitted by earlier source-specific service binders. +The theorem, README, PR description and machine-readable receipt now state +that the package supplies a relative typed-IR substitution, with no installed +new SERVICE registry. That finite token/header/provider binding remains open. + +These checks share the same authenticated source objects and are separate +AI/code-assisted work. They are not a second physical implementation or a +complete independent review of the candidate supplier. The 84 metered +lifecycle scan cases execute only INIT, COPY and CLEAR; the source-bound IR +expansions and complete native structural pass do not execute the full +Gaussian caller. These distinctions remain part of the result. diff --git a/research/p104-qself-owned-lowering/SOURCES.json b/research/p104-qself-owned-lowering/SOURCES.json new file mode 100644 index 0000000000..5768a5cca4 --- /dev/null +++ b/research/p104-qself-owned-lowering/SOURCES.json @@ -0,0 +1,24 @@ +{ + "schema_version": 1, + "base_commit": "7c49fe32c55de02c2c873655c804b16e4c3fef0a", + "files": [ + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "3404fbdd5e7529a0674eef26114b5071e4586cec", + "sha256": "ead6cdc9d0af6d58e8a49744d8ec8c7c15e13d2ba93c276c434bcf9b51b93a81" + }, + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "d59b5035e7b4cbaa9d688a1d32dd0d6eb79c466a", + "sha256": "9b8d0eea95b3bf0dfcb7938a732a6439b87a2685dec2a5ab9e525b3b34debbfa" + }, + { + "path": "research/kappa-rebuild/architecture/FINITE-PRECOMPILATION.md", + "usage": "provenance", + "git_blob": "4badb40f0919c515823cb07e44c6470d4d6469ca", + "sha256": "4cb32f6b8e388ecf6ed41b5bbdeeb4539cb40c8424f194974afea58f7e0921e8" + } + ] +} diff --git a/research/p104-qself-owned-lowering/TASK.json b/research/p104-qself-owned-lowering/TASK.json new file mode 100644 index 0000000000..a8fa2277e1 --- /dev/null +++ b/research/p104-qself-owned-lowering/TASK.json @@ -0,0 +1,93 @@ +{ + "schema_version": 1, + "task_id": "uniform-transfer-audit", + "base_commit": "7c49fe32c55de02c2c873655c804b16e4c3fef0a", + "original_card": { + "id": "uniform-transfer-audit", + "question": "Can one of the selected record's five inherited assumptions be proved at its actual caller?", + "starting_points": [ + "docs/research/current-priorities.md", + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md" + ], + "methods": [ + "Construct and independently check one source-bound instance of the stated first experiment.", + "Seek an exact counterexample or target-specific complete-budget obstruction to that same proposed change." + ], + "acceptance_gate": "Identify the proposition and what would change downstream; do not equate a finite replay with a universal proof.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_selected_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read revision 8, the selected review and live exact-source handoffs. Then follow this card's bounded first_experiment.", + "scope": "Source-bound orientation only, not a supplier replay or theorem proof." + }, + "first_experiment": "Choose one assumption ID (native_all_columns, owned_erasure, compiler, precision_tape, analytic_recovery), one quantified implication and exact dependency closure. Check current handoffs, including #5625 row reentry and #5707 root-prefix lowering, without treating their partial scope as the whole theorem. Prove or falsify that implication with a caller-bound argument; stop at the chosen obligation. Finite tests or root digits do not discharge an all-size statement.", + "bottleneck_link": "Judge the actual current supplier contract and complete signed target/paid bill; frozen-profile ceilings require an applicability proof.", + "allowed_variations": [ + "One exact source head, helper/cut region or quantified proposition and changed hypothesis; check live handoffs first. Different seeds are not different scopes." + ], + "scope_change_triggers": [ + "Changing source head, helper/cut domain, operation alphabet or caller boundary without recording the new scope.", + "Treating an archived proposal or local numerical pass as complete supplier admission." + ], + "overlap_terms": [ + "native_all_columns", + "owned_erasure", + "compiler", + "precision_tape", + "analytic_recovery" + ], + "existing_checks": [ + { + "scope": "PR #4100: proposed unconditional construction and finite checks, without independent acceptance.", + "evidence": "research/unconditional-batched-crt/README.md", + "remaining": "Independent proof audit of one caller-bound all-size implication; all other premises remain explicit.", + "status": "author-checked", + "source_commit": "337d04939571a637aeab54a0f58f54fde811663a", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "Selected PR5599: complete helper-subspace construction and independent caller replay; five framework assumptions remain.", + "evidence": "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md", + "remaining": "The next experiment must identify uncovered source-specific work. Successor archive intake does not transfer this admission.", + "status": "reviewed", + "source_commit": "09dd0965711ca7eeb169057a420abab1c9052137", + "selected_record_sha256": "2a0220e866417774606e0f991e41b9c1d26b1f43b97857238cf478dbc7d330b5" + } + ] + }, + "scope_status": "refined", + "scope_change_reason": "Lead-assigned wave-3 scope at fresh #6937: the E-free root already exists; verify its formal caller and close its two QSELF operations through the existing owned lifecycle, without recreating the root or entering unrelated native work.", + "actual_scope": "Exact unspecialized caller identity, separate backward covectors, relative typed-IR one-bank QSELF lowering, source phase/format contracts, and complete target/paid and positive cost/stock comparison with #6936. No new SERVICE registry or physical dispatcher is installed.", + "bottleneck_link": "Makes the E-free candidate independent of empty-mask main productive credits and reduces new-QSELF admission to existing explicit owned/native/format/compiler contracts. No selected fundamental assumption is wholly discharged.", + "stop_rule": "Complete this exact two-site source class and its certificate/cost join; exclude other roots, native redesign, paired gadget search and new kappa claims.", + "evidence": "PROOF.md, RESULT.json, QSELF-PATCH.json; exact formal arithmetic, independent reverse covectors, 27 failure controls and 84 unchanged lifecycle scan cases.", + "author": "@CubeJerry", + "ai_assistance": "Substantial OpenAI assistance in source analysis, mathematics, implementation and verification. Separate AI review is not independent human or proof-kernel acceptance.", + "outcome": "completed", + "open_questions": [ + { + "question": "Install an exact token-to-provider/table registry and concrete header export for qself6937 services.", + "why_it_matters": "Unit.check validates event/lifetime structure, not executable service dispatch or numerical contracts.", + "first_step": "Bind actual source site/port/field tokens to the existing SWAP table and admitted query adapter/leaf providers with every header and format predicate.", + "blocked_by": "Explicit finite binder and provider-join work remains." + }, + { + "question": "Bind every actual returned field to the common coded shape, grid and signed range, including INIT guide payload0.", + "why_it_matters": "The physical success theorem needs these source predicates, not merely matching ranks.", + "first_step": "Join exact native/recursive query returns to the coded provider endpoint and complete error contract.", + "blocked_by": "Native and precision_tape provider obligations." + }, + { + "question": "Substitute the new finite raw-unit inventory into complete compiled precision and stock bounds.", + "why_it_matters": "Smaller moment counts do not automatically supply recursive lifecycle or rounded error guarantees.", + "first_step": "Carry the explicit one-bank-per-live-unit lifetime, retained backing and complete new scalar/paid counts through the existing compiler.", + "blocked_by": "Compiler, common-format, numeric and analytic interfaces remain conditional." + } + ] +} diff --git a/research/p104-qself-owned-lowering/VERIFY.json b/research/p104-qself-owned-lowering/VERIFY.json new file mode 100644 index 0000000000..5c278956b2 --- /dev/null +++ b/research/p104-qself-owned-lowering/VERIFY.json @@ -0,0 +1,123 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/p104-qself-owned-lowering/data/caller_efree.json", + "research/p104-qself-owned-lowering/data/root_A_efree.json", + "research/p104-qself-owned-lowering/data/caller_6936.json", + "research/p104-qself-owned-lowering/data/root_A_6936.json", + "research/p104-qself-owned-lowering/data/word_6936.json.gz", + "research/p104-qself-owned-lowering/reference/FINITE-PRECOMPILATION.md", + "research/p104-qself-owned-lowering/reference/jclib_6936.py", + "research/p104-qself-owned-lowering/reference/physical_review_6936.py", + "research/p104-qself-owned-lowering/reference/check_6937.py", + "research/p104-qself-owned-lowering/vendor/machine.py", + "research/p104-qself-owned-lowering/vendor/source_ir.py", + "research/p104-qself-owned-lowering/reference/SWAP-PROOF.md", + "research/p104-qself-owned-lowering/QUERY-BASES.json" + ], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "formal" + ], + "timeout_seconds": 120, + "checks": "Normal formal exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "closure" + ], + "timeout_seconds": 120, + "checks": "Normal closure exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "invoice" + ], + "timeout_seconds": 120, + "checks": "Normal invoice exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "controls" + ], + "timeout_seconds": 120, + "checks": "Normal controls exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "formal" + ], + "timeout_seconds": 120, + "checks": "Optimized formal exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "closure" + ], + "timeout_seconds": 120, + "checks": "Optimized closure exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "invoice" + ], + "timeout_seconds": 120, + "checks": "Optimized invoice exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "research/p104-qself-owned-lowering/verify.py", + "--suite", + "controls" + ], + "timeout_seconds": 120, + "checks": "Optimized controls exact certificate, ownership/source/cost checks with negative controls and explicit inherited scope." + } + ] +} diff --git a/research/p104-qself-owned-lowering/check_controls.py b/research/p104-qself-owned-lowering/check_controls.py new file mode 100644 index 0000000000..5824cee7a4 --- /dev/null +++ b/research/p104-qself-owned-lowering/check_controls.py @@ -0,0 +1,83 @@ +"""Meaningful source, algebra, ownership, phase and billing failure controls.""" +from pathlib import Path +from copy import deepcopy +import json +import sys + +sys.path.insert(0, str(Path(__file__).resolve().parent)) +from source_binding import inputs +import operator_ring as P +import dual_certificate as D +import owned_lowering as O +import invoice as I + + +def rejection(action): + try: + action() + except ValueError: + return True + raise ValueError('negative control was not rejected') + + +def verify(): + caller, old, word, bases = inputs() + result = {} + def mutation(name, edit, dual=False): + bad = deepcopy(caller); edit(bad) + result[name] = rejection(lambda: P.replay(bad)) + if dual: + result[name+' / independent covectors'] = rejection(lambda: D.certificate(bad)) + mutation('deleted first QSELF', lambda c: c['events'].pop(457), True) + mutation('deleted second QSELF', lambda c: c['events'].pop(575)) + mutation('Q instead of inverse Q', lambda c: c['events'][457].__setitem__(3, 1), True) + mutation('wrong source owner', lambda c: c['events'][575].__setitem__(2, 20)) + mutation('arbitrary-input contamination', lambda c: c['events'].append(['A', 'ADD', 0, 1, '1']), True) + selected = next(i+1 for i, b in enumerate(caller['types']['A']['diagonal'][0][2:]) if b) + mutation('repeated D across separate events', lambda c: c['events'].append(['A', 'IDLE_ONE', 0, [selected]]), True) + idle = next(i for i, e in enumerate(caller['events']) if e[0] == 'A' and e[1] == 'IDLE_ONE') + mutation('duplicate idle stage in one mask', lambda c: c['events'][idle][3].append(c['events'][idle][3][0])) + lam = next(i for i, e in enumerate(caller['events']) if e[0] == 'A' and e[1] == 'LAMBDA') + mutation('wrong total-Q LAMBDA phase', lambda c: c['events'][lam].__setitem__(3, -c['events'][lam][3])) + for modulus in (2, 8): + result['wrong q period '+str(modulus)] = rejection(lambda modulus=modulus: P.replay(caller, modulus=modulus)) + result['missing Q-squared return translation'] = rejection(lambda: O.adapter_records(caller, word, bases, omit_translation=True)) + result['omitted inverse ambient basis'] = rejection(lambda: O.adapter_records(caller, word, bases, omit_inverse=True)) + bad_basis = deepcopy(bases); bad_basis['records'][0]['basis'][1] = bad_basis['records'][0]['basis'][0] + result['nonorthogonal adapter'] = rejection(lambda: O.adapter_records(caller, word, bad_basis)) + port = caller['types']['A']['ports'][0] + unit = O.expansion(caller, 457, port) + def altered(events, owned=None): + return O.IR.Unit(unit.name, unit.roles, unit.owned if owned is None else owned, tuple(events)) + result['owned public alias'] = rejection(lambda: O.expansion(caller, 457, port, bank=unit.roles[0][0])) + result['missing physical CLEAR'] = rejection(lambda: O.check_expansion(altered(unit.events[:-1]), caller, 457, port)) + result['COPY before initialization'] = rejection(lambda: O.check_expansion(altered((unit.events[1], unit.events[0])+unit.events[2:]), caller, 457, port)) + result['clear before child return'] = rejection(lambda: O.check_expansion(altered(unit.events[:3]+(unit.events[-1],)+unit.events[3:-1]), caller, 457, port)) + bad = list(unit.events); e = bad[3]; bad[3] = O.IR.Event(e.op, e.fields, e.token, 2) + result['undercounted paid rank'] = rejection(lambda: O.check_expansion(altered(bad), caller, 457, port)) + bad = list(unit.events); e = bad[5]; bad[5] = O.IR.Event(e.op, e.fields, ('query-add',)+e.token[1:]) + result['ADD substituted for complete swap'] = rejection(lambda: O.check_expansion(altered(bad), caller, 457, port)) + result['unbound source site'] = rejection(lambda: O.expansion(caller, 458, port)) + result['type-B port substituted'] = rejection(lambda: O.expansion(caller, 457, caller['types']['B']['ports'][0])) + bad = deepcopy(caller); bad['events'].pop(457) + result['missing new paid debit'] = rejection(lambda: I.verify(old, bad, word)) + bad_word = deepcopy(word); bad_word['hosted']['X2'][0] = bad_word['hosted']['Y2'][0] + result['helper/main allocation alias'] = rejection(lambda: I.verify(old, caller, bad_word)) + # The stored bases happen to be involutions. Reusing B for B^-1 is + # equivalent here and must not be reported as a rejected negative control. + equivalent = True + for row in bases['records']: + if row['port'] not in caller['types']['A']['ports']: + continue + basis = row['basis'] + def B(x): + return sum(((a & x).bit_count() % 2) << i for i, a in enumerate(basis)) + equivalent &= all(B(B(x)) == x for x in range(512)) + P.need(equivalent, 'equivalent forward/inverse substitution is correctly classified') + return {'rejected': len(result), 'controls': result, + 'equivalent_not_negative': 'All 96 stored nine-axis bases are involutions; forward-for-inverse is correctly accepted.'} + + +if __name__ == '__main__': + print(json.dumps(verify(), sort_keys=True)) + print('PASS_QSELF_OWNED_CONTROLS') diff --git a/research/p104-qself-owned-lowering/data/caller_6936.json b/research/p104-qself-owned-lowering/data/caller_6936.json new file mode 100644 index 0000000000..08830cee27 --- /dev/null +++ b/research/p104-qself-owned-lowering/data/caller_6936.json @@ -0,0 +1 @@ +{"schema":"mixed-root-caller/1","stages":18,"ambient_rank":153,"roles":78,"types":{"A":{"form":"two-chain-HOST2","roles":40,"offset":0,"ports":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,36,37,38,39,40,41,43,44,45,46,48,49,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103],"alpha2":"-1","beta2":"0","diagonal":[[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,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,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,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],[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,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,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,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]]},"B":{"form":"hosted-HOST","roles":38,"offset":40,"ports":[15,17,27,34,35,42,47,55],"diagonal":[[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,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,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1]],"pairs":[[0,1,"-1","1/2","-1/2"],[2,3,"-1","1/2","-1/2"],[4,5,"-1","1/2","-1/2"],[6,7,"-1","1/2","-1/2"],[8,9,"-1","1/2","-1/2"],[10,11,"-1","1/2","-1/2"],[12,13,"-1","1/2","-1/2"],[14,15,"-1","1/2","-1/2"],[16,17,"-1","1/2","-1/2"],[22,23,"-1","1/2","-1/2"],[24,25,"-1","1/2","-1/2"],[26,27,"-1","1/2","-1/2"],[28,29,"-1","1/2","-1/2"],[30,31,"-1","1/2","-1/2"],[32,33,"-1","1/2","-1/2"],[34,35,"-1","1/2","-1/2"],[36,37,"-1","1/2","-1/2"],[38,39,"-1","1/2","-1/2"]]}},"events":[["A","ADD",0,1,"-1"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","SWAP",20,21],["A","SCALE",21,"-1"],["A","LAMBDA",20,1],["B","ADD",42,43,"-2"],["B","ADD",41,43,"1"],["B","ADD",40,43,"2"],["B","ADD",41,42,"1"],["B","ADD",40,42,"1"],["B","ADD",40,41,"-2"],["B","SCALE",41,"256"],["B","ADD",43,41,"-1/128"],["B","ADD",42,41,"1/128"],["B","SCALE",40,"128"],["B","ADD",43,40,"-1/128"],["B","ADD",42,40,"1/64"],["B","ADD",41,40,"1"],["B","LAMBDA",40,-1],["J",1,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",1,2,"1"],["A","ADD",0,2,"-1"],["A","SCALE",1,"-1"],["A","SWAP",1,2],["A","ADD",2,0,"-1"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","ADD",21,22,"1"],["A","ADD",20,22,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,22],["A","SCALE",20,"-1"],["A","ADD",22,20,"1"],["A","SWAP",20,21],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",42,[1]],["B","IDLE_ONE",43,[1]],["B","ADD",44,45,"-2"],["B","ADD",42,45,"-2"],["B","ADD",41,45,"-256"],["B","ADD",40,45,"-128"],["B","ADD",43,44,"1"],["B","ADD",42,44,"-2"],["B","ADD",41,44,"-256"],["B","ADD",41,43,"256"],["B","ADD",40,43,"-128"],["B","ADD",40,42,"-128"],["B","ADD",43,42,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",45,41,"-1/128"],["B","ADD",44,41,"1/128"],["B","ADD",43,41,"1/128"],["B","ADD",42,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",45,40,"1/128"],["B","ADD",43,40,"-1/128"],["B","ADD",42,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",2,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",2,[2,3,4,5,6,7,8,9]],["A","ADD",1,3,"1"],["A","ADD",0,3,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,3],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",22,[2,3,4,5,6,7,8,9]],["A","ADD",21,23,"1"],["A","ADD",20,23,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,23],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",42,[2,3,4,5,6,7,8,9]],["B","IDLE_ONE",43,[2,3,4,5,6,7,8,9]],["B","IDLE_ONE",44,[2]],["B","IDLE_ONE",45,[2]],["B","ADD",46,47,"-2"],["B","ADD",44,47,"-2"],["B","ADD",41,47,"-256"],["B","ADD",40,47,"-128"],["B","ADD",45,46,"1"],["B","ADD",44,46,"-2"],["B","ADD",41,46,"-256"],["B","ADD",41,45,"256"],["B","ADD",40,45,"-128"],["B","ADD",40,44,"-128"],["B","ADD",45,44,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",47,41,"-1/128"],["B","ADD",46,41,"1/128"],["B","ADD",45,41,"1/128"],["B","ADD",44,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",47,40,"1/128"],["B","ADD",45,40,"-1/128"],["B","ADD",44,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",3,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",3,[3,4,5,6,7,8,9]],["A","ADD",1,4,"1"],["A","ADD",0,4,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,4],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",23,[3,4,5,6,7,8,9]],["A","ADD",21,24,"1"],["A","ADD",20,24,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,24],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",44,[3,4,5,6,7,8,9]],["B","IDLE_ONE",45,[3,4,5,6,7,8,9]],["B","IDLE_ONE",46,[3]],["B","IDLE_ONE",47,[3]],["B","ADD",48,49,"-2"],["B","ADD",46,49,"-2"],["B","ADD",41,49,"-256"],["B","ADD",40,49,"-128"],["B","ADD",47,48,"1"],["B","ADD",46,48,"-2"],["B","ADD",41,48,"-256"],["B","ADD",41,47,"256"],["B","ADD",40,47,"-128"],["B","ADD",40,46,"-128"],["B","ADD",47,46,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",49,41,"-1/128"],["B","ADD",48,41,"1/128"],["B","ADD",47,41,"1/128"],["B","ADD",46,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",49,40,"1/128"],["B","ADD",47,40,"-1/128"],["B","ADD",46,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",4,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",4,[4,5,6,7,8,9]],["A","ADD",1,5,"1"],["A","ADD",0,5,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,5],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",24,[4,5,6,7,8,9]],["A","ADD",21,25,"1"],["A","ADD",20,25,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,25],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",46,[4,5,6,7,8,9]],["B","IDLE_ONE",47,[4,5,6,7,8,9]],["B","IDLE_ONE",48,[4]],["B","IDLE_ONE",49,[4]],["B","ADD",50,51,"-2"],["B","ADD",48,51,"-2"],["B","ADD",41,51,"-256"],["B","ADD",40,51,"-128"],["B","ADD",49,50,"1"],["B","ADD",48,50,"-2"],["B","ADD",41,50,"-256"],["B","ADD",41,49,"256"],["B","ADD",40,49,"-128"],["B","ADD",40,48,"-128"],["B","ADD",49,48,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",51,41,"-1/128"],["B","ADD",50,41,"1/128"],["B","ADD",49,41,"1/128"],["B","ADD",48,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",51,40,"1/128"],["B","ADD",49,40,"-1/128"],["B","ADD",48,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",5,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",5,[5,6,7,8,9]],["A","ADD",1,6,"1"],["A","ADD",0,6,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,6],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",25,[5,6,7,8,9]],["A","ADD",21,26,"1"],["A","ADD",20,26,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,26],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",48,[5,6,7,8,9]],["B","IDLE_ONE",49,[5,6,7,8,9]],["B","IDLE_ONE",50,[5]],["B","IDLE_ONE",51,[5]],["B","ADD",52,53,"-2"],["B","ADD",50,53,"-2"],["B","ADD",41,53,"-256"],["B","ADD",40,53,"-128"],["B","ADD",51,52,"1"],["B","ADD",50,52,"-2"],["B","ADD",41,52,"-256"],["B","ADD",41,51,"256"],["B","ADD",40,51,"-128"],["B","ADD",40,50,"-128"],["B","ADD",51,50,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",53,41,"-1/128"],["B","ADD",52,41,"1/128"],["B","ADD",51,41,"1/128"],["B","ADD",50,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",53,40,"1/128"],["B","ADD",51,40,"-1/128"],["B","ADD",50,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",6,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",6,[6,7,8,9]],["A","ADD",1,7,"1"],["A","ADD",0,7,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,7],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",26,[6,7,8,9]],["A","ADD",21,27,"1"],["A","ADD",20,27,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,27],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",50,[6,7,8,9]],["B","IDLE_ONE",51,[6,7,8,9]],["B","IDLE_ONE",52,[6]],["B","IDLE_ONE",53,[6]],["B","ADD",54,55,"-2"],["B","ADD",52,55,"-2"],["B","ADD",41,55,"-256"],["B","ADD",40,55,"-128"],["B","ADD",53,54,"1"],["B","ADD",52,54,"-2"],["B","ADD",41,54,"-256"],["B","ADD",41,53,"256"],["B","ADD",40,53,"-128"],["B","ADD",40,52,"-128"],["B","ADD",53,52,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",55,41,"-1/128"],["B","ADD",54,41,"1/128"],["B","ADD",53,41,"1/128"],["B","ADD",52,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",55,40,"1/128"],["B","ADD",53,40,"-1/128"],["B","ADD",52,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",7,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",7,[7,8,9]],["A","ADD",1,8,"1"],["A","ADD",0,8,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,8],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",27,[7,8,9]],["A","ADD",21,28,"1"],["A","ADD",20,28,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,28],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",52,[7,8,9]],["B","IDLE_ONE",53,[7,8,9]],["B","IDLE_ONE",54,[7]],["B","IDLE_ONE",55,[7]],["B","ADD",56,57,"-2"],["B","ADD",54,57,"-2"],["B","ADD",41,57,"-256"],["B","ADD",40,57,"-128"],["B","ADD",55,56,"1"],["B","ADD",54,56,"-2"],["B","ADD",41,56,"-256"],["B","ADD",41,55,"256"],["B","ADD",40,55,"-128"],["B","ADD",40,54,"-128"],["B","ADD",55,54,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",57,41,"-1/128"],["B","ADD",56,41,"1/128"],["B","ADD",55,41,"1/128"],["B","ADD",54,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",57,40,"1/128"],["B","ADD",55,40,"-1/128"],["B","ADD",54,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",8,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",8,[8,9]],["A","ADD",1,9,"1"],["A","ADD",0,9,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,9],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",28,[8,9]],["A","ADD",21,29,"1"],["A","ADD",20,29,"-2"],["A","ADD",20,21,"2"],["A","SCALE",20,"-1"],["A","ADD",21,20,"1"],["A","SWAP",20,29],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",54,[8,9]],["B","IDLE_ONE",55,[8,9]],["B","IDLE_ONE",56,[8]],["B","IDLE_ONE",57,[8]],["B","ADD",58,59,"-2"],["B","ADD",56,59,"-2"],["B","ADD",41,59,"-256"],["B","ADD",40,59,"-128"],["B","ADD",57,58,"1"],["B","ADD",56,58,"-2"],["B","ADD",41,58,"-256"],["B","ADD",41,57,"256"],["B","ADD",40,57,"-128"],["B","ADD",40,56,"-128"],["B","ADD",57,56,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",59,41,"-1/128"],["B","ADD",58,41,"1/128"],["B","ADD",57,41,"1/128"],["B","ADD",56,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",59,40,"1/128"],["B","ADD",57,40,"-1/128"],["B","ADD",56,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",9,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",9,[9]],["A","SWAP",8,9],["A","SWAP",7,9],["A","SWAP",6,9],["A","SWAP",5,9],["A","SWAP",4,9],["A","SWAP",3,9],["A","SWAP",2,9],["A","ADD",0,1,"1"],["A","SCALE",1,"-1"],["A","SWAP",1,9],["A","ADD",9,0,"1"],["A","ADD",8,0,"2"],["A","ADD",7,0,"2"],["A","ADD",6,0,"2"],["A","ADD",5,0,"2"],["A","ADD",4,0,"2"],["A","ADD",3,0,"2"],["A","ADD",2,0,"2"],["A","ADD",1,0,"2"],["A","ADD",19,1,"-1"],["A","ADD",18,1,"-1"],["A","ADD",17,1,"-1"],["A","ADD",16,1,"-1"],["A","ADD",15,1,"-1"],["A","ADD",14,1,"-1"],["A","ADD",13,1,"-1"],["A","ADD",12,1,"-1"],["A","ADD",11,1,"-1"],["A","ADD",10,1,"-1"],["A","ADD",9,1,"-1"],["A","ADD",8,1,"-1"],["A","ADD",7,1,"-1"],["A","ADD",6,1,"-1"],["A","ADD",5,1,"-1"],["A","ADD",4,1,"-1"],["A","ADD",3,1,"-1"],["A","ADD",2,1,"-1"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","QUERY",0,1,-1],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","ADD",19,0,"1"],["A","ADD",18,0,"1"],["A","ADD",17,0,"1"],["A","ADD",16,0,"1"],["A","ADD",15,0,"1"],["A","ADD",14,0,"1"],["A","ADD",13,0,"1"],["A","ADD",12,0,"1"],["A","ADD",11,0,"1"],["A","ADD",10,0,"1"],["A","ADD",9,0,"1"],["A","ADD",8,0,"1"],["A","ADD",7,0,"1"],["A","ADD",6,0,"1"],["A","ADD",5,0,"1"],["A","ADD",4,0,"1"],["A","ADD",3,0,"1"],["A","ADD",2,0,"1"],["A","SWAP",0,1],["A","ADD",1,19,"-1"],["A","ADD",1,18,"-1"],["A","ADD",1,17,"1"],["A","ADD",1,16,"-1"],["A","ADD",1,15,"1"],["A","ADD",1,14,"-1"],["A","ADD",1,13,"1"],["A","ADD",1,12,"-1"],["A","ADD",1,11,"1"],["A","ADD",1,10,"-1"],["A","ADD",1,9,"1"],["A","ADD",1,8,"-1"],["A","ADD",1,7,"1"],["A","ADD",1,6,"-1"],["A","ADD",1,5,"1"],["A","ADD",1,4,"-1"],["A","ADD",1,3,"1"],["A","ADD",1,2,"-1"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",18,0,"-2"],["A","ADD",17,0,"-2"],["A","ADD",16,0,"-2"],["A","ADD",15,0,"-2"],["A","ADD",14,0,"-2"],["A","ADD",13,0,"-2"],["A","ADD",12,0,"-2"],["A","ADD",11,0,"-2"],["A","ADD",10,0,"-2"],["A","ADD",1,0,"-2"],["A","LAMBDA",0,-1],["A","QUERY",0,1,-1],["A","LAMBDA",0,1],["A","ADD",1,19,"-1"],["A","ADD",0,19,"-1"],["A","ADD",1,18,"-1"],["A","ADD",0,18,"-1"],["A","ADD",19,18,"2"],["A","SWAP",18,19],["A","ADD",1,17,"1"],["A","ADD",0,17,"1"],["A","ADD",18,17,"-2"],["A","SWAP",17,18],["A","ADD",1,16,"-1"],["A","ADD",0,16,"-1"],["A","ADD",17,16,"2"],["A","SWAP",16,17],["A","ADD",1,15,"1"],["A","ADD",0,15,"1"],["A","ADD",16,15,"-2"],["A","SWAP",15,16],["A","ADD",1,14,"-1"],["A","ADD",0,14,"-1"],["A","ADD",15,14,"2"],["A","SWAP",14,15],["A","ADD",1,13,"1"],["A","ADD",0,13,"1"],["A","ADD",14,13,"-2"],["A","SWAP",13,14],["A","ADD",1,12,"-1"],["A","ADD",0,12,"-1"],["A","ADD",13,12,"2"],["A","SWAP",12,13],["A","ADD",1,11,"1"],["A","ADD",0,11,"1"],["A","ADD",12,11,"-2"],["A","SWAP",11,12],["A","ADD",1,10,"-1"],["A","ADD",0,10,"-1"],["A","ADD",11,10,"2"],["A","SWAP",10,11],["A","ADD",1,9,"1"],["A","ADD",0,9,"1"],["A","ADD",10,9,"-2"],["A","SWAP",9,10],["A","ADD",1,8,"-1"],["A","ADD",0,8,"-1"],["A","ADD",9,8,"2"],["A","SWAP",8,9],["A","ADD",1,7,"1"],["A","ADD",0,7,"1"],["A","ADD",8,7,"-2"],["A","SWAP",7,8],["A","ADD",1,6,"-1"],["A","ADD",0,6,"-1"],["A","ADD",7,6,"2"],["A","SWAP",6,7],["A","ADD",1,5,"1"],["A","ADD",0,5,"1"],["A","ADD",6,5,"-2"],["A","SWAP",5,6],["A","ADD",1,4,"-1"],["A","ADD",0,4,"-1"],["A","ADD",5,4,"2"],["A","SWAP",4,5],["A","ADD",1,3,"1"],["A","ADD",0,3,"1"],["A","ADD",4,3,"-2"],["A","SWAP",3,4],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","ADD",3,2,"2"],["A","SWAP",2,3],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",2,1,"-2"],["A","SWAP",1,2],["A","ADD",1,0,"1"],["A","LAMBDA",0,-1],["A","QUERY",0,1,-1],["A","LAMBDA",0,1],["A","ADD",1,19,"-2"],["A","ADD",0,19,"-2"],["A","ADD",1,18,"2"],["A","ADD",0,18,"2"],["A","ADD",1,17,"-2"],["A","ADD",0,17,"-2"],["A","SWAP",17,19],["A","ADD",1,16,"2"],["A","ADD",0,16,"2"],["A","SWAP",16,18],["A","ADD",1,15,"-2"],["A","ADD",0,15,"-2"],["A","SWAP",15,19],["A","ADD",1,14,"2"],["A","ADD",0,14,"2"],["A","SWAP",14,18],["A","ADD",1,13,"-2"],["A","ADD",0,13,"-2"],["A","SWAP",13,19],["A","ADD",1,12,"2"],["A","ADD",0,12,"2"],["A","SWAP",12,18],["A","ADD",1,11,"-1"],["A","SCALE",11,"-1"],["A","SWAP",11,19],["A","ADD",1,10,"2"],["A","ADD",0,10,"2"],["A","SWAP",10,18],["A","ADD",1,9,"-2"],["A","ADD",0,9,"-2"],["A","SWAP",9,17],["A","ADD",1,8,"2"],["A","ADD",0,8,"2"],["A","SWAP",8,16],["A","ADD",1,7,"-2"],["A","ADD",0,7,"-2"],["A","SWAP",7,15],["A","ADD",1,6,"2"],["A","ADD",0,6,"2"],["A","SWAP",6,14],["A","ADD",1,5,"-2"],["A","ADD",0,5,"-2"],["A","SWAP",5,13],["A","ADD",1,4,"2"],["A","ADD",0,4,"2"],["A","SWAP",4,12],["A","ADD",1,3,"-2"],["A","ADD",0,3,"-2"],["A","SWAP",3,11],["A","ADD",1,2,"2"],["A","ADD",0,2,"2"],["A","SWAP",2,10],["A","ADD",0,1,"-1"],["A","SWAP",1,19],["A","ADD",19,0,"-1"],["A","ADD",1,0,"2"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",29,[9]],["A","SWAP",28,29],["A","SWAP",27,29],["A","SWAP",26,29],["A","SWAP",25,29],["A","SWAP",24,29],["A","SWAP",23,29],["A","SWAP",22,29],["A","ADD",20,21,"1"],["A","SCALE",21,"-1"],["A","SWAP",21,29],["A","ADD",29,20,"1"],["A","ADD",28,20,"2"],["A","ADD",27,20,"2"],["A","ADD",26,20,"2"],["A","ADD",25,20,"2"],["A","ADD",24,20,"2"],["A","ADD",23,20,"2"],["A","ADD",22,20,"2"],["A","ADD",21,20,"2"],["A","ADD",39,21,"-1"],["A","ADD",38,21,"-1"],["A","ADD",37,21,"-1"],["A","ADD",36,21,"-1"],["A","ADD",35,21,"-1"],["A","ADD",34,21,"-1"],["A","ADD",33,21,"-1"],["A","ADD",32,21,"-1"],["A","ADD",31,21,"-1"],["A","ADD",30,21,"-1"],["A","ADD",29,21,"-1"],["A","ADD",28,21,"-1"],["A","ADD",27,21,"-1"],["A","ADD",26,21,"-1"],["A","ADD",25,21,"-1"],["A","ADD",24,21,"-1"],["A","ADD",23,21,"-1"],["A","ADD",22,21,"-1"],["A","SWAP",20,21],["A","LAMBDA",20,-1],["A","QUERY",20,21,-1],["A","LAMBDA",20,1],["A","ADD",20,21,"-1"],["A","ADD",39,20,"1"],["A","ADD",38,20,"1"],["A","ADD",37,20,"1"],["A","ADD",36,20,"1"],["A","ADD",35,20,"1"],["A","ADD",34,20,"1"],["A","ADD",33,20,"1"],["A","ADD",32,20,"1"],["A","ADD",31,20,"1"],["A","ADD",30,20,"1"],["A","ADD",29,20,"1"],["A","ADD",28,20,"1"],["A","ADD",27,20,"1"],["A","ADD",26,20,"1"],["A","ADD",25,20,"1"],["A","ADD",24,20,"1"],["A","ADD",23,20,"1"],["A","ADD",22,20,"1"],["A","SWAP",20,21],["A","ADD",21,39,"-1"],["A","ADD",21,38,"-1"],["A","ADD",21,37,"1"],["A","ADD",21,36,"-1"],["A","ADD",21,35,"1"],["A","ADD",21,34,"-1"],["A","ADD",21,33,"1"],["A","ADD",21,32,"-1"],["A","ADD",21,31,"1"],["A","ADD",21,30,"-1"],["A","ADD",21,29,"1"],["A","ADD",21,28,"-1"],["A","ADD",21,27,"1"],["A","ADD",21,26,"-1"],["A","ADD",21,25,"1"],["A","ADD",21,24,"-1"],["A","ADD",21,23,"1"],["A","ADD",21,22,"-1"],["A","SCALE",21,"-1"],["A","SCALE",20,"-1"],["A","ADD",38,20,"-2"],["A","ADD",37,20,"-2"],["A","ADD",36,20,"-2"],["A","ADD",35,20,"-2"],["A","ADD",34,20,"-2"],["A","ADD",33,20,"-2"],["A","ADD",32,20,"-2"],["A","ADD",31,20,"-2"],["A","ADD",30,20,"-2"],["A","ADD",21,20,"-2"],["A","LAMBDA",20,-1],["A","QUERY",20,21,-1],["A","LAMBDA",20,1],["A","ADD",21,39,"-1"],["A","ADD",20,39,"-1"],["A","ADD",21,38,"-1"],["A","ADD",20,38,"-1"],["A","ADD",39,38,"2"],["A","SWAP",38,39],["A","ADD",21,37,"1"],["A","ADD",20,37,"1"],["A","ADD",38,37,"-2"],["A","SWAP",37,38],["A","ADD",21,36,"-1"],["A","ADD",20,36,"-1"],["A","ADD",37,36,"2"],["A","SWAP",36,37],["A","ADD",21,35,"1"],["A","ADD",20,35,"1"],["A","ADD",36,35,"-2"],["A","SWAP",35,36],["A","ADD",21,34,"-1"],["A","ADD",20,34,"-1"],["A","ADD",35,34,"2"],["A","SWAP",34,35],["A","ADD",21,33,"1"],["A","ADD",20,33,"1"],["A","ADD",34,33,"-2"],["A","SWAP",33,34],["A","ADD",21,32,"-1"],["A","ADD",20,32,"-1"],["A","ADD",33,32,"2"],["A","SWAP",32,33],["A","ADD",21,31,"1"],["A","ADD",20,31,"1"],["A","ADD",32,31,"-2"],["A","SWAP",31,32],["A","ADD",21,30,"-1"],["A","ADD",20,30,"-1"],["A","ADD",31,30,"2"],["A","SWAP",30,31],["A","ADD",21,29,"1"],["A","ADD",20,29,"1"],["A","ADD",30,29,"-2"],["A","SWAP",29,30],["A","ADD",21,28,"-1"],["A","ADD",20,28,"-1"],["A","ADD",29,28,"2"],["A","SWAP",28,29],["A","ADD",21,27,"1"],["A","ADD",20,27,"1"],["A","ADD",28,27,"-2"],["A","SWAP",27,28],["A","ADD",21,26,"-1"],["A","ADD",20,26,"-1"],["A","ADD",27,26,"2"],["A","SWAP",26,27],["A","ADD",21,25,"1"],["A","ADD",20,25,"1"],["A","ADD",26,25,"-2"],["A","SWAP",25,26],["A","ADD",21,24,"-1"],["A","ADD",20,24,"-1"],["A","ADD",25,24,"2"],["A","SWAP",24,25],["A","ADD",21,23,"1"],["A","ADD",20,23,"1"],["A","ADD",24,23,"-2"],["A","SWAP",23,24],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","ADD",23,22,"2"],["A","SWAP",22,23],["A","ADD",20,21,"-1"],["A","SCALE",21,"-1"],["A","ADD",22,21,"-2"],["A","SWAP",21,22],["A","ADD",21,20,"1"],["A","LAMBDA",20,-1],["A","QUERY",20,21,-1],["A","LAMBDA",20,1],["A","ADD",21,39,"-2"],["A","ADD",20,39,"-2"],["A","ADD",21,38,"2"],["A","ADD",20,38,"2"],["A","ADD",21,37,"-2"],["A","ADD",20,37,"-2"],["A","SWAP",37,39],["A","ADD",21,36,"2"],["A","ADD",20,36,"2"],["A","SWAP",36,38],["A","ADD",21,35,"-2"],["A","ADD",20,35,"-2"],["A","SWAP",35,39],["A","ADD",21,34,"2"],["A","ADD",20,34,"2"],["A","SWAP",34,38],["A","ADD",21,33,"-2"],["A","ADD",20,33,"-2"],["A","SWAP",33,39],["A","ADD",21,32,"2"],["A","ADD",20,32,"2"],["A","SWAP",32,38],["A","ADD",21,31,"-1"],["A","SCALE",31,"-1"],["A","SWAP",31,39],["A","ADD",21,30,"2"],["A","ADD",20,30,"2"],["A","SWAP",30,38],["A","ADD",21,29,"-2"],["A","ADD",20,29,"-2"],["A","SWAP",29,37],["A","ADD",21,28,"2"],["A","ADD",20,28,"2"],["A","SWAP",28,36],["A","ADD",21,27,"-2"],["A","ADD",20,27,"-2"],["A","SWAP",27,35],["A","ADD",21,26,"2"],["A","ADD",20,26,"2"],["A","SWAP",26,34],["A","ADD",21,25,"-2"],["A","ADD",20,25,"-2"],["A","SWAP",25,33],["A","ADD",21,24,"2"],["A","ADD",20,24,"2"],["A","SWAP",24,32],["A","ADD",21,23,"-2"],["A","ADD",20,23,"-2"],["A","SWAP",23,31],["A","ADD",21,22,"2"],["A","ADD",20,22,"2"],["A","SWAP",22,30],["A","ADD",20,21,"-1"],["A","SWAP",21,39],["A","SCALE",20,"-1"],["A","ADD",39,20,"1"],["A","ADD",21,20,"-2"],["A","SWAP",20,21],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",56,[9]],["B","IDLE_ONE",57,[9]],["B","IDLE_ONE",58,[9]],["B","IDLE_ONE",59,[9]],["B","ADD",58,77,"1"],["B","ADD",57,77,"1"],["B","ADD",55,77,"1"],["B","ADD",53,77,"1"],["B","ADD",51,77,"1"],["B","ADD",49,77,"1"],["B","ADD",47,77,"1"],["B","ADD",45,77,"1"],["B","ADD",43,77,"1"],["B","ADD",41,77,"-128"],["B","ADD",40,77,"64"],["B","ADD",58,75,"-1"],["B","ADD",57,75,"-1"],["B","ADD",55,75,"-1"],["B","ADD",53,75,"-1"],["B","ADD",51,75,"-1"],["B","ADD",49,75,"-1"],["B","ADD",47,75,"-1"],["B","ADD",45,75,"-1"],["B","ADD",43,75,"-1"],["B","ADD",41,75,"128"],["B","ADD",40,75,"-64"],["B","ADD",58,74,"2"],["B","ADD",57,74,"2"],["B","ADD",55,74,"2"],["B","ADD",53,74,"2"],["B","ADD",51,74,"2"],["B","ADD",49,74,"2"],["B","ADD",47,74,"2"],["B","ADD",45,74,"2"],["B","ADD",43,74,"2"],["B","ADD",41,74,"-256"],["B","ADD",40,74,"128"],["B","ADD",58,73,"-1"],["B","ADD",57,73,"-1"],["B","ADD",55,73,"-1"],["B","ADD",53,73,"-1"],["B","ADD",51,73,"-1"],["B","ADD",49,73,"-1"],["B","ADD",47,73,"-1"],["B","ADD",45,73,"-1"],["B","ADD",43,73,"-1"],["B","ADD",41,73,"128"],["B","ADD",40,73,"-64"],["B","ADD",58,71,"1"],["B","ADD",57,71,"1"],["B","ADD",55,71,"1"],["B","ADD",53,71,"1"],["B","ADD",51,71,"1"],["B","ADD",49,71,"1"],["B","ADD",47,71,"1"],["B","ADD",45,71,"1"],["B","ADD",43,71,"1"],["B","ADD",41,71,"-128"],["B","ADD",40,71,"64"],["B","ADD",58,70,"-2"],["B","ADD",57,70,"-2"],["B","ADD",55,70,"-2"],["B","ADD",53,70,"-2"],["B","ADD",51,70,"-2"],["B","ADD",49,70,"-2"],["B","ADD",47,70,"-2"],["B","ADD",45,70,"-2"],["B","ADD",43,70,"-2"],["B","ADD",41,70,"256"],["B","ADD",40,70,"-128"],["B","ADD",58,69,"1"],["B","ADD",57,69,"1"],["B","ADD",55,69,"1"],["B","ADD",53,69,"1"],["B","ADD",51,69,"1"],["B","ADD",49,69,"1"],["B","ADD",47,69,"1"],["B","ADD",45,69,"1"],["B","ADD",43,69,"1"],["B","ADD",41,69,"-128"],["B","ADD",40,69,"64"],["B","ADD",58,67,"-1"],["B","ADD",57,67,"-1"],["B","ADD",55,67,"-1"],["B","ADD",53,67,"-1"],["B","ADD",51,67,"-1"],["B","ADD",49,67,"-1"],["B","ADD",47,67,"-1"],["B","ADD",45,67,"-1"],["B","ADD",43,67,"-1"],["B","ADD",41,67,"128"],["B","ADD",40,67,"-64"],["B","ADD",58,66,"2"],["B","ADD",57,66,"2"],["B","ADD",55,66,"2"],["B","ADD",53,66,"2"],["B","ADD",51,66,"2"],["B","ADD",49,66,"2"],["B","ADD",47,66,"2"],["B","ADD",45,66,"2"],["B","ADD",43,66,"2"],["B","ADD",41,66,"-256"],["B","ADD",40,66,"128"],["B","ADD",58,65,"-1"],["B","ADD",57,65,"-1"],["B","ADD",55,65,"-1"],["B","ADD",53,65,"-1"],["B","ADD",51,65,"-1"],["B","ADD",49,65,"-1"],["B","ADD",47,65,"-1"],["B","ADD",45,65,"-1"],["B","ADD",43,65,"-1"],["B","ADD",41,65,"128"],["B","ADD",40,65,"-64"],["B","ADD",58,63,"1"],["B","ADD",57,63,"1"],["B","ADD",55,63,"1"],["B","ADD",53,63,"1"],["B","ADD",51,63,"1"],["B","ADD",49,63,"1"],["B","ADD",47,63,"1"],["B","ADD",45,63,"1"],["B","ADD",43,63,"1"],["B","ADD",41,63,"-128"],["B","ADD",40,63,"64"],["B","ADD",58,62,"-2"],["B","ADD",57,62,"-2"],["B","ADD",55,62,"-2"],["B","ADD",53,62,"-2"],["B","ADD",51,62,"-2"],["B","ADD",49,62,"-2"],["B","ADD",47,62,"-2"],["B","ADD",45,62,"-2"],["B","ADD",43,62,"-2"],["B","ADD",41,62,"256"],["B","ADD",40,62,"-128"],["B","ADD",58,61,"1"],["B","ADD",57,61,"1"],["B","ADD",55,61,"1"],["B","ADD",53,61,"1"],["B","ADD",51,61,"1"],["B","ADD",49,61,"1"],["B","ADD",47,61,"1"],["B","ADD",45,61,"1"],["B","ADD",43,61,"1"],["B","ADD",41,61,"-128"],["B","ADD",40,61,"64"],["B","ADD",41,59,"256"],["B","ADD",40,59,"-128"],["B","ADD",57,58,"-3/2"],["B","ADD",55,58,"-1"],["B","ADD",53,58,"-1"],["B","ADD",51,58,"-1"],["B","ADD",49,58,"-1"],["B","ADD",47,58,"-1"],["B","ADD",45,58,"-1"],["B","ADD",43,58,"-1"],["B","ADD",41,58,"128"],["B","ADD",40,58,"-64"],["B","SCALE",58,"1/2"],["B","ADD",55,57,"-1"],["B","ADD",53,57,"-1"],["B","ADD",51,57,"-1"],["B","ADD",49,57,"-1"],["B","ADD",47,57,"-1"],["B","ADD",45,57,"-1"],["B","ADD",43,57,"-1"],["B","ADD",41,57,"128"],["B","ADD",40,57,"64"],["B","SCALE",57,"-1"],["B","ADD",59,57,"1"],["B","SWAP",57,58],["B","ADD",55,56,"1/2"],["B","ADD",53,56,"1/2"],["B","ADD",51,56,"1/2"],["B","ADD",49,56,"1/2"],["B","ADD",47,56,"1/2"],["B","ADD",45,56,"1/2"],["B","ADD",43,56,"1/2"],["B","ADD",41,56,"-64"],["B","ADD",40,56,"-32"],["B","ADD",59,56,"1/2"],["B","ADD",58,56,"1/2"],["B","ADD",57,56,"1/2"],["B","ADD",53,54,"-1/2"],["B","ADD",51,54,"-1/2"],["B","ADD",49,54,"-1/2"],["B","ADD",47,54,"-1/2"],["B","ADD",45,54,"-1/2"],["B","ADD",43,54,"-1/2"],["B","ADD",41,54,"64"],["B","ADD",40,54,"32"],["B","ADD",59,54,"-1/2"],["B","ADD",58,54,"-1/2"],["B","ADD",57,54,"-1/2"],["B","ADD",55,54,"-1/2"],["B","ADD",51,53,"-1"],["B","ADD",49,53,"-2"],["B","ADD",47,53,"-1"],["B","ADD",45,53,"-1"],["B","ADD",43,53,"-1"],["B","ADD",41,53,"128"],["B","ADD",40,53,"64"],["B","ADD",59,53,"-1"],["B","ADD",58,53,"-1"],["B","ADD",57,53,"-1"],["B","ADD",55,53,"-1"],["B","ADD",49,52,"1/2"],["B","ADD",53,52,"-1/2"],["B","ADD",49,51,"-1"],["B","ADD",47,51,"-1"],["B","ADD",45,51,"-1"],["B","ADD",43,51,"-1"],["B","ADD",41,51,"128"],["B","ADD",40,51,"64"],["B","SCALE",51,"-1"],["B","ADD",59,51,"1"],["B","ADD",58,51,"1"],["B","ADD",57,51,"1"],["B","ADD",55,51,"1"],["B","SWAP",51,53],["B","ADD",49,50,"-1/2"],["B","ADD",51,50,"1/2"],["B","ADD",47,49,"-1"],["B","ADD",45,49,"-1"],["B","ADD",43,49,"-1"],["B","ADD",41,49,"128"],["B","ADD",40,49,"64"],["B","SCALE",49,"-1"],["B","ADD",59,49,"1"],["B","ADD",58,49,"1"],["B","ADD",57,49,"1"],["B","ADD",55,49,"1"],["B","ADD",53,49,"1"],["B","SWAP",49,51],["B","ADD",47,48,"1/2"],["B","ADD",45,48,"1/2"],["B","ADD",43,48,"1/2"],["B","ADD",41,48,"-64"],["B","ADD",40,48,"-32"],["B","ADD",59,48,"1/2"],["B","ADD",58,48,"1/2"],["B","ADD",57,48,"1/2"],["B","ADD",55,48,"1/2"],["B","ADD",53,48,"1/2"],["B","ADD",51,48,"1/2"],["B","ADD",49,48,"1/2"],["B","ADD",45,46,"-1/2"],["B","ADD",43,46,"-1/2"],["B","ADD",41,46,"64"],["B","ADD",40,46,"32"],["B","ADD",59,46,"-1/2"],["B","ADD",58,46,"-1/2"],["B","ADD",57,46,"-1/2"],["B","ADD",55,46,"-1/2"],["B","ADD",53,46,"-1/2"],["B","ADD",51,46,"-1/2"],["B","ADD",49,46,"-1/2"],["B","ADD",47,46,"-1/2"],["B","ADD",43,45,"-1"],["B","ADD",41,45,"128"],["B","ADD",40,45,"64"],["B","SCALE",45,"2"],["B","ADD",59,45,"-1/2"],["B","ADD",58,45,"-1/2"],["B","ADD",57,45,"-1/2"],["B","ADD",55,45,"-1/2"],["B","ADD",53,45,"-1/2"],["B","ADD",51,45,"-1/2"],["B","ADD",49,45,"-1/2"],["B","ADD",47,45,"-1/2"],["B","ADD",45,44,"-1"],["B","ADD",41,43,"128"],["B","ADD",40,43,"64"],["B","SCALE",43,"-1"],["B","ADD",59,43,"1"],["B","ADD",58,43,"1"],["B","ADD",57,43,"1"],["B","ADD",55,43,"1"],["B","ADD",53,43,"1"],["B","ADD",51,43,"1"],["B","ADD",49,43,"1"],["B","ADD",47,43,"1"],["B","SWAP",43,45],["B","ADD",43,42,"1"],["B","ADD",40,41,"-1/2"],["B","SCALE",41,"1/128"],["B","ADD",59,41,"1"],["B","ADD",58,41,"1"],["B","ADD",57,41,"1"],["B","ADD",55,41,"1"],["B","ADD",53,41,"1"],["B","ADD",51,41,"1"],["B","ADD",49,41,"1"],["B","ADD",47,41,"1"],["B","ADD",45,41,"1"],["B","SWAP",41,43],["B","SCALE",40,"1/128"],["B","ADD",59,40,"2"],["B","ADD",58,40,"2"],["B","ADD",57,40,"1"],["B","ADD",55,40,"1"],["B","ADD",53,40,"1"],["B","ADD",51,40,"1"],["B","ADD",49,40,"1"],["B","ADD",47,40,"1"],["B","ADD",45,40,"1"],["B","ADD",43,40,"1"],["B","ADD",41,40,"1"],["B","LAMBDA",40,-1],["B","QUERY",40,41,-1],["B","LAMBDA",40,1],["B","ADD",40,41,"-1"],["B","ADD",41,77,"-1"],["B","ADD",41,75,"1"],["B","ADD",41,74,"-2"],["B","ADD",41,73,"1"],["B","ADD",41,71,"-1"],["B","ADD",41,70,"2"],["B","ADD",41,69,"-1"],["B","ADD",41,67,"1"],["B","ADD",41,66,"-2"],["B","ADD",41,65,"1"],["B","ADD",41,63,"-1"],["B","ADD",41,62,"2"],["B","ADD",41,61,"-1"],["B","ADD",41,58,"-1"],["B","ADD",41,57,"2"],["B","ADD",41,56,"-1"],["B","ADD",41,54,"1"],["B","ADD",41,53,"-2"],["B","ADD",41,52,"1"],["B","ADD",41,50,"-1"],["B","ADD",41,49,"2"],["B","ADD",41,48,"-1"],["B","ADD",41,46,"1"],["B","ADD",41,45,"-2"],["B","ADD",41,44,"1"],["B","ADD",41,42,"-1"],["B","ADD",40,41,"-1"],["B","ADD",59,41,"-1"],["B","ADD",58,41,"-2"],["B","ADD",57,41,"-1"],["B","ADD",56,41,"-2"],["B","ADD",55,41,"-1"],["B","ADD",54,41,"-2"],["B","ADD",53,41,"-1"],["B","ADD",52,41,"-2"],["B","ADD",51,41,"-1"],["B","ADD",50,41,"-2"],["B","ADD",49,41,"-1"],["B","ADD",48,41,"-2"],["B","ADD",47,41,"-1"],["B","ADD",46,41,"-2"],["B","ADD",45,41,"-1"],["B","ADD",44,41,"-2"],["B","ADD",43,41,"-1"],["B","ADD",42,41,"-2"],["B","SCALE",40,"1/2"],["B","ADD",76,40,"-1"],["B","ADD",74,40,"-1"],["B","ADD",72,40,"-1"],["B","ADD",70,40,"-1"],["B","ADD",68,40,"-1"],["B","ADD",66,40,"-1"],["B","ADD",64,40,"-1"],["B","ADD",62,40,"-1"],["B","ADD",60,40,"-1"],["B","ADD",59,40,"-1"],["B","ADD",58,40,"-2"],["B","ADD",57,40,"-1"],["B","ADD",56,40,"-2"],["B","ADD",55,40,"-1"],["B","ADD",54,40,"-2"],["B","ADD",53,40,"-1"],["B","ADD",52,40,"-2"],["B","ADD",51,40,"-1"],["B","ADD",50,40,"-2"],["B","ADD",49,40,"-1"],["B","ADD",48,40,"-2"],["B","ADD",47,40,"-1"],["B","ADD",46,40,"-2"],["B","ADD",45,40,"-1"],["B","ADD",44,40,"-2"],["B","ADD",43,40,"-1"],["B","ADD",42,40,"-2"],["B","ADD",41,40,"1"],["B","LAMBDA",40,-1],["B","QUERY",40,41,-1],["B","LAMBDA",40,1],["B","ADD",40,41,"-1"],["B","SCALE",40,"2"],["B","ADD",77,40,"-1"],["B","ADD",76,40,"-1/2"],["B","ADD",75,40,"-1"],["B","ADD",74,40,"-1/2"],["B","ADD",73,40,"-1"],["B","ADD",72,40,"-1/2"],["B","ADD",71,40,"-1"],["B","ADD",70,40,"-1/2"],["B","ADD",69,40,"-1"],["B","ADD",68,40,"-1/2"],["B","ADD",67,40,"-1"],["B","ADD",66,40,"-1/2"],["B","ADD",65,40,"-1"],["B","ADD",64,40,"-1/2"],["B","ADD",63,40,"-1"],["B","ADD",62,40,"-1/2"],["B","ADD",61,40,"-1"],["B","ADD",60,40,"-1/2"],["B","ADD",59,40,"-1/2"],["B","ADD",57,40,"-1/2"],["B","ADD",55,40,"-1/2"],["B","ADD",53,40,"-1/2"],["B","ADD",51,40,"-1/2"],["B","ADD",49,40,"-1/2"],["B","ADD",47,40,"-1/2"],["B","ADD",45,40,"-1/2"],["B","ADD",43,40,"-1/2"],["B","ADD",41,40,"1/2"],["B","LAMBDA",40,-1],["B","QUERY",40,41,-1],["B","LAMBDA",40,1],["B","ADD",40,41,"-1"],["B","ADD",76,77,"-1/2"],["B","ADD",75,77,"-1"],["B","ADD",74,77,"-1"],["B","ADD",73,77,"-1"],["B","ADD",72,77,"-1"],["B","ADD",71,77,"-1"],["B","ADD",70,77,"-1"],["B","ADD",69,77,"-1"],["B","ADD",68,77,"-1"],["B","ADD",67,77,"-1"],["B","ADD",66,77,"-1"],["B","ADD",65,77,"-1"],["B","ADD",64,77,"-1"],["B","ADD",63,77,"-1"],["B","ADD",62,77,"-1"],["B","ADD",61,77,"-1"],["B","ADD",60,77,"-1"],["B","ADD",58,77,"1"],["B","ADD",56,77,"1"],["B","ADD",54,77,"1"],["B","ADD",52,77,"1"],["B","ADD",50,77,"1"],["B","ADD",48,77,"1"],["B","ADD",46,77,"1"],["B","ADD",44,77,"1"],["B","ADD",42,77,"1"],["B","ADD",40,77,"1"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"2"],["B","ADD",74,76,"2"],["B","ADD",73,76,"2"],["B","ADD",72,76,"2"],["B","ADD",71,76,"2"],["B","ADD",70,76,"2"],["B","ADD",69,76,"2"],["B","ADD",68,76,"2"],["B","ADD",67,76,"2"],["B","ADD",66,76,"2"],["B","ADD",65,76,"2"],["B","ADD",64,76,"2"],["B","ADD",63,76,"2"],["B","ADD",62,76,"2"],["B","ADD",61,76,"2"],["B","ADD",60,76,"2"],["B","ADD",58,76,"-2"],["B","ADD",56,76,"-2"],["B","ADD",54,76,"-2"],["B","ADD",52,76,"-2"],["B","ADD",50,76,"-2"],["B","ADD",48,76,"-2"],["B","ADD",46,76,"-2"],["B","ADD",44,76,"-2"],["B","ADD",42,76,"-2"],["B","ADD",40,76,"-2"],["B","SCALE",76,"2"],["B","ADD",77,76,"3/2"],["B","SWAP",76,77],["B","ADD",73,74,"-1/2"],["B","ADD",72,74,"-1"],["B","ADD",71,74,"-1"],["B","ADD",70,74,"-1"],["B","ADD",69,74,"-1"],["B","ADD",68,74,"-1"],["B","ADD",67,74,"-1"],["B","ADD",66,74,"-1"],["B","ADD",65,74,"-1"],["B","ADD",64,74,"-1"],["B","ADD",63,74,"-1"],["B","ADD",62,74,"-1"],["B","ADD",61,74,"-1"],["B","ADD",60,74,"-1"],["B","ADD",58,74,"1"],["B","ADD",56,74,"1"],["B","ADD",54,74,"1"],["B","ADD",52,74,"1"],["B","ADD",50,74,"1"],["B","ADD",48,74,"1"],["B","ADD",46,74,"1"],["B","ADD",44,74,"1"],["B","ADD",42,74,"1"],["B","ADD",40,74,"1"],["B","SCALE",74,"-1/2"],["B","ADD",77,74,"2"],["B","ADD",76,74,"2"],["B","ADD",75,74,"2"],["B","ADD",72,73,"2"],["B","ADD",71,73,"2"],["B","ADD",70,73,"2"],["B","ADD",69,73,"2"],["B","ADD",68,73,"2"],["B","ADD",67,73,"2"],["B","ADD",66,73,"2"],["B","ADD",65,73,"2"],["B","ADD",64,73,"2"],["B","ADD",63,73,"2"],["B","ADD",62,73,"2"],["B","ADD",61,73,"2"],["B","ADD",60,73,"2"],["B","ADD",58,73,"-2"],["B","ADD",56,73,"-2"],["B","ADD",54,73,"-2"],["B","ADD",52,73,"-2"],["B","ADD",50,73,"-2"],["B","ADD",48,73,"-2"],["B","ADD",46,73,"-2"],["B","ADD",44,73,"-2"],["B","ADD",42,73,"-2"],["B","ADD",40,73,"-2"],["B","SCALE",73,"2"],["B","ADD",77,73,"1"],["B","ADD",76,73,"1"],["B","ADD",75,73,"1"],["B","ADD",74,73,"3/2"],["B","SWAP",73,74],["B","ADD",71,72,"-1"],["B","ADD",70,72,"-1/2"],["B","ADD",69,72,"-1"],["B","ADD",68,72,"-1"],["B","ADD",67,72,"-1"],["B","ADD",66,72,"-1"],["B","ADD",65,72,"-1"],["B","ADD",64,72,"-1"],["B","ADD",63,72,"-1"],["B","ADD",62,72,"-1"],["B","ADD",61,72,"-1"],["B","ADD",60,72,"-1"],["B","ADD",58,72,"1"],["B","ADD",56,72,"1"],["B","ADD",54,72,"1"],["B","ADD",52,72,"1"],["B","ADD",50,72,"1"],["B","ADD",48,72,"1"],["B","ADD",46,72,"1"],["B","ADD",44,72,"1"],["B","ADD",42,72,"1"],["B","ADD",40,72,"1"],["B","SCALE",72,"-1/2"],["B","ADD",77,72,"2"],["B","ADD",76,72,"2"],["B","ADD",75,72,"2"],["B","ADD",74,72,"2"],["B","ADD",73,72,"2"],["B","ADD",70,71,"1/2"],["B","ADD",69,71,"-1"],["B","ADD",68,71,"-1"],["B","ADD",67,71,"-1"],["B","ADD",66,71,"-1"],["B","ADD",65,71,"-1"],["B","ADD",64,71,"-1"],["B","ADD",63,71,"-1"],["B","ADD",62,71,"-1"],["B","ADD",61,71,"-1"],["B","ADD",60,71,"-1"],["B","ADD",58,71,"1"],["B","ADD",56,71,"1"],["B","ADD",54,71,"1"],["B","ADD",52,71,"1"],["B","ADD",50,71,"1"],["B","ADD",48,71,"1"],["B","ADD",46,71,"1"],["B","ADD",44,71,"1"],["B","ADD",42,71,"1"],["B","ADD",40,71,"1"],["B","SCALE",71,"-1"],["B","ADD",77,71,"1"],["B","ADD",76,71,"1"],["B","ADD",75,71,"1"],["B","ADD",74,71,"1"],["B","ADD",73,71,"1"],["B","ADD",72,71,"3/2"],["B","SWAP",71,72],["B","ADD",69,70,"2"],["B","ADD",68,70,"2"],["B","ADD",67,70,"2"],["B","ADD",66,70,"2"],["B","ADD",65,70,"2"],["B","ADD",64,70,"2"],["B","ADD",63,70,"2"],["B","ADD",62,70,"2"],["B","ADD",61,70,"2"],["B","ADD",60,70,"2"],["B","ADD",58,70,"-2"],["B","ADD",56,70,"-2"],["B","ADD",54,70,"-2"],["B","ADD",52,70,"-2"],["B","ADD",50,70,"-2"],["B","ADD",48,70,"-2"],["B","ADD",46,70,"-2"],["B","ADD",44,70,"-2"],["B","ADD",42,70,"-2"],["B","ADD",40,70,"-2"],["B","SCALE",70,"2"],["B","ADD",77,70,"1"],["B","ADD",76,70,"1"],["B","ADD",75,70,"1"],["B","ADD",74,70,"1"],["B","ADD",73,70,"1"],["B","ADD",72,70,"1"],["B","ADD",71,70,"3/2"],["B","SWAP",70,71],["B","ADD",68,69,"-1/2"],["B","ADD",67,69,"-1"],["B","ADD",66,69,"-1"],["B","ADD",65,69,"-1"],["B","ADD",64,69,"-1"],["B","ADD",63,69,"-1"],["B","ADD",62,69,"-1"],["B","ADD",61,69,"-1"],["B","ADD",60,69,"-1"],["B","ADD",58,69,"1"],["B","ADD",56,69,"1"],["B","ADD",54,69,"1"],["B","ADD",52,69,"1"],["B","ADD",50,69,"1"],["B","ADD",48,69,"1"],["B","ADD",46,69,"1"],["B","ADD",44,69,"1"],["B","ADD",42,69,"1"],["B","ADD",40,69,"1"],["B","SCALE",69,"-1/2"],["B","ADD",77,69,"2"],["B","ADD",76,69,"2"],["B","ADD",75,69,"2"],["B","ADD",74,69,"2"],["B","ADD",73,69,"2"],["B","ADD",72,69,"2"],["B","ADD",71,69,"2"],["B","ADD",70,69,"2"],["B","ADD",67,68,"2"],["B","ADD",66,68,"2"],["B","ADD",65,68,"2"],["B","ADD",64,68,"2"],["B","ADD",63,68,"2"],["B","ADD",62,68,"2"],["B","ADD",61,68,"2"],["B","ADD",60,68,"2"],["B","ADD",58,68,"-2"],["B","ADD",56,68,"-2"],["B","ADD",54,68,"-2"],["B","ADD",52,68,"-2"],["B","ADD",50,68,"-2"],["B","ADD",48,68,"-2"],["B","ADD",46,68,"-2"],["B","ADD",44,68,"-2"],["B","ADD",42,68,"-2"],["B","ADD",40,68,"-2"],["B","SCALE",68,"2"],["B","ADD",77,68,"1"],["B","ADD",76,68,"1"],["B","ADD",75,68,"1"],["B","ADD",74,68,"1"],["B","ADD",73,68,"1"],["B","ADD",72,68,"1"],["B","ADD",71,68,"1"],["B","ADD",70,68,"1"],["B","ADD",69,68,"3/2"],["B","SWAP",68,69],["B","ADD",65,66,"-1/2"],["B","ADD",64,66,"-1"],["B","ADD",63,66,"-1"],["B","ADD",62,66,"-1"],["B","ADD",61,66,"-1"],["B","ADD",60,66,"-1"],["B","ADD",58,66,"1"],["B","ADD",56,66,"1"],["B","ADD",54,66,"1"],["B","ADD",52,66,"1"],["B","ADD",50,66,"1"],["B","ADD",48,66,"1"],["B","ADD",46,66,"1"],["B","ADD",44,66,"1"],["B","ADD",42,66,"1"],["B","ADD",40,66,"1"],["B","SCALE",66,"-1/2"],["B","ADD",77,66,"2"],["B","ADD",76,66,"2"],["B","ADD",75,66,"2"],["B","ADD",74,66,"2"],["B","ADD",73,66,"2"],["B","ADD",72,66,"2"],["B","ADD",71,66,"2"],["B","ADD",70,66,"2"],["B","ADD",69,66,"2"],["B","ADD",68,66,"2"],["B","ADD",67,66,"2"],["B","ADD",64,65,"2"],["B","ADD",63,65,"2"],["B","ADD",62,65,"2"],["B","ADD",61,65,"2"],["B","ADD",60,65,"2"],["B","ADD",58,65,"-2"],["B","ADD",56,65,"-2"],["B","ADD",54,65,"-2"],["B","ADD",52,65,"-2"],["B","ADD",50,65,"-2"],["B","ADD",48,65,"-2"],["B","ADD",46,65,"-2"],["B","ADD",44,65,"-2"],["B","ADD",42,65,"-2"],["B","ADD",40,65,"-2"],["B","SCALE",65,"2"],["B","ADD",77,65,"1"],["B","ADD",76,65,"1"],["B","ADD",75,65,"1"],["B","ADD",74,65,"1"],["B","ADD",73,65,"1"],["B","ADD",72,65,"1"],["B","ADD",71,65,"1"],["B","ADD",70,65,"1"],["B","ADD",69,65,"1"],["B","ADD",68,65,"1"],["B","ADD",67,65,"1"],["B","ADD",66,65,"3/2"],["B","SWAP",65,66],["B","ADD",63,64,"-1"],["B","ADD",62,64,"-1/2"],["B","ADD",61,64,"-1"],["B","ADD",60,64,"-1"],["B","ADD",58,64,"1"],["B","ADD",56,64,"1"],["B","ADD",54,64,"1"],["B","ADD",52,64,"1"],["B","ADD",50,64,"1"],["B","ADD",48,64,"1"],["B","ADD",46,64,"1"],["B","ADD",44,64,"1"],["B","ADD",42,64,"1"],["B","ADD",40,64,"1"],["B","SCALE",64,"-1/2"],["B","ADD",77,64,"2"],["B","ADD",76,64,"2"],["B","ADD",75,64,"2"],["B","ADD",74,64,"2"],["B","ADD",73,64,"2"],["B","ADD",72,64,"2"],["B","ADD",71,64,"2"],["B","ADD",70,64,"2"],["B","ADD",69,64,"2"],["B","ADD",68,64,"2"],["B","ADD",67,64,"2"],["B","ADD",66,64,"2"],["B","ADD",65,64,"2"],["B","ADD",62,63,"1/2"],["B","ADD",61,63,"-1"],["B","ADD",60,63,"-1"],["B","ADD",58,63,"1"],["B","ADD",56,63,"1"],["B","ADD",54,63,"1"],["B","ADD",52,63,"1"],["B","ADD",50,63,"1"],["B","ADD",48,63,"1"],["B","ADD",46,63,"1"],["B","ADD",44,63,"1"],["B","ADD",42,63,"1"],["B","ADD",40,63,"1"],["B","SCALE",63,"-1"],["B","ADD",77,63,"1"],["B","ADD",76,63,"1"],["B","ADD",75,63,"1"],["B","ADD",74,63,"1"],["B","ADD",73,63,"1"],["B","ADD",72,63,"1"],["B","ADD",71,63,"1"],["B","ADD",70,63,"1"],["B","ADD",69,63,"1"],["B","ADD",68,63,"1"],["B","ADD",67,63,"1"],["B","ADD",66,63,"1"],["B","ADD",65,63,"1"],["B","ADD",64,63,"3/2"],["B","SWAP",63,64],["B","ADD",61,62,"2"],["B","ADD",60,62,"2"],["B","ADD",58,62,"-2"],["B","ADD",56,62,"-2"],["B","ADD",54,62,"-2"],["B","ADD",52,62,"-2"],["B","ADD",50,62,"-2"],["B","ADD",48,62,"-2"],["B","ADD",46,62,"-2"],["B","ADD",44,62,"-2"],["B","ADD",42,62,"-2"],["B","ADD",40,62,"-2"],["B","SCALE",62,"2"],["B","ADD",77,62,"1"],["B","ADD",76,62,"1"],["B","ADD",75,62,"1"],["B","ADD",74,62,"1"],["B","ADD",73,62,"1"],["B","ADD",72,62,"1"],["B","ADD",71,62,"1"],["B","ADD",70,62,"1"],["B","ADD",69,62,"1"],["B","ADD",68,62,"1"],["B","ADD",67,62,"1"],["B","ADD",66,62,"1"],["B","ADD",65,62,"1"],["B","ADD",64,62,"1"],["B","ADD",63,62,"3/2"],["B","SWAP",62,63],["B","ADD",60,61,"-1/2"],["B","ADD",58,61,"1"],["B","ADD",56,61,"1"],["B","ADD",54,61,"1"],["B","ADD",52,61,"1"],["B","ADD",50,61,"1"],["B","ADD",48,61,"1"],["B","ADD",46,61,"1"],["B","ADD",44,61,"1"],["B","ADD",42,61,"1"],["B","ADD",40,61,"1"],["B","SCALE",61,"-1/2"],["B","ADD",77,61,"2"],["B","ADD",76,61,"2"],["B","ADD",75,61,"2"],["B","ADD",74,61,"2"],["B","ADD",73,61,"2"],["B","ADD",72,61,"2"],["B","ADD",71,61,"2"],["B","ADD",70,61,"2"],["B","ADD",69,61,"2"],["B","ADD",68,61,"2"],["B","ADD",67,61,"2"],["B","ADD",66,61,"2"],["B","ADD",65,61,"2"],["B","ADD",64,61,"2"],["B","ADD",63,61,"2"],["B","ADD",62,61,"2"],["B","ADD",58,60,"-2"],["B","ADD",56,60,"-2"],["B","ADD",54,60,"-2"],["B","ADD",52,60,"-2"],["B","ADD",50,60,"-2"],["B","ADD",48,60,"-2"],["B","ADD",46,60,"-2"],["B","ADD",44,60,"-2"],["B","ADD",42,60,"-2"],["B","ADD",40,60,"-2"],["B","SCALE",60,"2"],["B","ADD",77,60,"1"],["B","ADD",76,60,"1"],["B","ADD",75,60,"1"],["B","ADD",74,60,"1"],["B","ADD",73,60,"1"],["B","ADD",72,60,"1"],["B","ADD",71,60,"1"],["B","ADD",70,60,"1"],["B","ADD",69,60,"1"],["B","ADD",68,60,"1"],["B","ADD",67,60,"1"],["B","ADD",66,60,"1"],["B","ADD",65,60,"1"],["B","ADD",64,60,"1"],["B","ADD",63,60,"1"],["B","ADD",62,60,"1"],["B","ADD",61,60,"3/2"],["B","SWAP",60,61],["B","ADD",58,59,"-2"],["B","ADD",56,59,"-2"],["B","ADD",54,59,"-2"],["B","ADD",52,59,"-2"],["B","ADD",50,59,"-2"],["B","ADD",48,59,"-2"],["B","ADD",46,59,"-2"],["B","ADD",44,59,"-2"],["B","ADD",42,59,"-2"],["B","ADD",40,59,"-2"],["B","ADD",77,59,"2"],["B","ADD",76,59,"2"],["B","ADD",75,59,"2"],["B","ADD",74,59,"2"],["B","ADD",73,59,"2"],["B","ADD",72,59,"2"],["B","ADD",71,59,"2"],["B","ADD",70,59,"2"],["B","ADD",69,59,"2"],["B","ADD",68,59,"2"],["B","ADD",67,59,"2"],["B","ADD",66,59,"2"],["B","ADD",65,59,"2"],["B","ADD",64,59,"2"],["B","ADD",63,59,"2"],["B","ADD",62,59,"2"],["B","ADD",61,59,"2"],["B","ADD",60,59,"2"],["B","ADD",56,58,"-2"],["B","ADD",54,58,"-2"],["B","ADD",52,58,"-2"],["B","ADD",50,58,"-2"],["B","ADD",48,58,"-2"],["B","ADD",46,58,"-2"],["B","ADD",44,58,"-2"],["B","ADD",42,58,"-2"],["B","ADD",40,58,"-2"],["B","SCALE",58,"-1"],["B","ADD",77,58,"-2"],["B","ADD",76,58,"-2"],["B","ADD",75,58,"-2"],["B","ADD",74,58,"-2"],["B","ADD",73,58,"-2"],["B","ADD",72,58,"-2"],["B","ADD",71,58,"-2"],["B","ADD",70,58,"-2"],["B","ADD",69,58,"-2"],["B","ADD",68,58,"-2"],["B","ADD",67,58,"-2"],["B","ADD",66,58,"-2"],["B","ADD",65,58,"-2"],["B","ADD",64,58,"-2"],["B","ADD",63,58,"-2"],["B","ADD",62,58,"-2"],["B","ADD",61,58,"-2"],["B","ADD",60,58,"-2"],["B","ADD",56,57,"2"],["B","ADD",54,57,"2"],["B","ADD",52,57,"2"],["B","ADD",50,57,"2"],["B","ADD",48,57,"2"],["B","ADD",46,57,"2"],["B","ADD",44,57,"2"],["B","ADD",42,57,"2"],["B","ADD",40,57,"2"],["B","ADD",77,57,"-2"],["B","ADD",76,57,"-2"],["B","ADD",75,57,"-2"],["B","ADD",74,57,"-2"],["B","ADD",73,57,"-2"],["B","ADD",72,57,"-2"],["B","ADD",71,57,"-2"],["B","ADD",70,57,"-2"],["B","ADD",69,57,"-2"],["B","ADD",68,57,"-2"],["B","ADD",67,57,"-2"],["B","ADD",66,57,"-2"],["B","ADD",65,57,"-2"],["B","ADD",64,57,"-2"],["B","ADD",63,57,"-2"],["B","ADD",62,57,"-2"],["B","ADD",61,57,"-2"],["B","ADD",60,57,"-2"],["B","ADD",58,57,"2"],["B","ADD",54,55,"-2"],["B","ADD",52,55,"-2"],["B","ADD",50,55,"-2"],["B","ADD",48,55,"-2"],["B","ADD",46,55,"-2"],["B","ADD",44,55,"-2"],["B","ADD",42,55,"-2"],["B","ADD",40,55,"-2"],["B","ADD",77,55,"2"],["B","ADD",76,55,"2"],["B","ADD",75,55,"2"],["B","ADD",74,55,"2"],["B","ADD",73,55,"2"],["B","ADD",72,55,"2"],["B","ADD",71,55,"2"],["B","ADD",70,55,"2"],["B","ADD",69,55,"2"],["B","ADD",68,55,"2"],["B","ADD",67,55,"2"],["B","ADD",66,55,"2"],["B","ADD",65,55,"2"],["B","ADD",64,55,"2"],["B","ADD",63,55,"2"],["B","ADD",62,55,"2"],["B","ADD",61,55,"2"],["B","ADD",60,55,"2"],["B","ADD",58,55,"-2"],["B","ADD",56,55,"-2"],["B","ADD",52,54,"-2"],["B","ADD",50,54,"-2"],["B","ADD",48,54,"-2"],["B","ADD",46,54,"-2"],["B","ADD",44,54,"-2"],["B","ADD",42,54,"-2"],["B","ADD",40,54,"-2"],["B","SCALE",54,"-1"],["B","ADD",77,54,"-2"],["B","ADD",76,54,"-2"],["B","ADD",75,54,"-2"],["B","ADD",74,54,"-2"],["B","ADD",73,54,"-2"],["B","ADD",72,54,"-2"],["B","ADD",71,54,"-2"],["B","ADD",70,54,"-2"],["B","ADD",69,54,"-2"],["B","ADD",68,54,"-2"],["B","ADD",67,54,"-2"],["B","ADD",66,54,"-2"],["B","ADD",65,54,"-2"],["B","ADD",64,54,"-2"],["B","ADD",63,54,"-2"],["B","ADD",62,54,"-2"],["B","ADD",61,54,"-2"],["B","ADD",60,54,"-2"],["B","ADD",58,54,"2"],["B","ADD",56,54,"2"],["B","ADD",52,53,"2"],["B","ADD",50,53,"2"],["B","ADD",48,53,"2"],["B","ADD",46,53,"2"],["B","ADD",44,53,"2"],["B","ADD",42,53,"2"],["B","ADD",40,53,"2"],["B","ADD",77,53,"-2"],["B","ADD",76,53,"-2"],["B","ADD",75,53,"-2"],["B","ADD",74,53,"-2"],["B","ADD",73,53,"-2"],["B","ADD",72,53,"-2"],["B","ADD",71,53,"-2"],["B","ADD",70,53,"-2"],["B","ADD",69,53,"-2"],["B","ADD",68,53,"-2"],["B","ADD",67,53,"-2"],["B","ADD",66,53,"-2"],["B","ADD",65,53,"-2"],["B","ADD",64,53,"-2"],["B","ADD",63,53,"-2"],["B","ADD",62,53,"-2"],["B","ADD",61,53,"-2"],["B","ADD",60,53,"-2"],["B","ADD",58,53,"2"],["B","ADD",56,53,"2"],["B","ADD",54,53,"2"],["B","ADD",50,51,"-2"],["B","ADD",48,51,"-2"],["B","ADD",46,51,"-2"],["B","ADD",44,51,"-2"],["B","ADD",42,51,"-2"],["B","ADD",40,51,"-2"],["B","ADD",77,51,"2"],["B","ADD",76,51,"2"],["B","ADD",75,51,"2"],["B","ADD",74,51,"2"],["B","ADD",73,51,"2"],["B","ADD",72,51,"2"],["B","ADD",71,51,"2"],["B","ADD",70,51,"2"],["B","ADD",69,51,"2"],["B","ADD",68,51,"2"],["B","ADD",67,51,"2"],["B","ADD",66,51,"2"],["B","ADD",65,51,"2"],["B","ADD",64,51,"2"],["B","ADD",63,51,"2"],["B","ADD",62,51,"2"],["B","ADD",61,51,"2"],["B","ADD",60,51,"2"],["B","ADD",58,51,"-2"],["B","ADD",56,51,"-2"],["B","ADD",54,51,"-2"],["B","ADD",52,51,"-2"],["B","ADD",48,50,"-2"],["B","ADD",46,50,"-2"],["B","ADD",44,50,"-2"],["B","ADD",42,50,"-2"],["B","ADD",40,50,"-2"],["B","SCALE",50,"-1"],["B","ADD",77,50,"-2"],["B","ADD",76,50,"-2"],["B","ADD",75,50,"-2"],["B","ADD",74,50,"-2"],["B","ADD",73,50,"-2"],["B","ADD",72,50,"-2"],["B","ADD",71,50,"-2"],["B","ADD",70,50,"-2"],["B","ADD",69,50,"-2"],["B","ADD",68,50,"-2"],["B","ADD",67,50,"-2"],["B","ADD",66,50,"-2"],["B","ADD",65,50,"-2"],["B","ADD",64,50,"-2"],["B","ADD",63,50,"-2"],["B","ADD",62,50,"-2"],["B","ADD",61,50,"-2"],["B","ADD",60,50,"-2"],["B","ADD",58,50,"2"],["B","ADD",56,50,"2"],["B","ADD",54,50,"2"],["B","ADD",52,50,"2"],["B","ADD",48,49,"2"],["B","ADD",46,49,"2"],["B","ADD",44,49,"2"],["B","ADD",42,49,"2"],["B","ADD",40,49,"2"],["B","ADD",77,49,"-2"],["B","ADD",76,49,"-2"],["B","ADD",75,49,"-2"],["B","ADD",74,49,"-2"],["B","ADD",73,49,"-2"],["B","ADD",72,49,"-2"],["B","ADD",71,49,"-2"],["B","ADD",70,49,"-2"],["B","ADD",69,49,"-2"],["B","ADD",68,49,"-2"],["B","ADD",67,49,"-2"],["B","ADD",66,49,"-2"],["B","ADD",65,49,"-2"],["B","ADD",64,49,"-2"],["B","ADD",63,49,"-2"],["B","ADD",62,49,"-2"],["B","ADD",61,49,"-2"],["B","ADD",60,49,"-2"],["B","ADD",58,49,"2"],["B","ADD",56,49,"2"],["B","ADD",54,49,"2"],["B","ADD",52,49,"2"],["B","ADD",50,49,"2"],["B","ADD",46,47,"-2"],["B","ADD",44,47,"-2"],["B","ADD",42,47,"-2"],["B","ADD",40,47,"-2"],["B","ADD",77,47,"2"],["B","ADD",76,47,"2"],["B","ADD",75,47,"2"],["B","ADD",74,47,"2"],["B","ADD",73,47,"2"],["B","ADD",72,47,"2"],["B","ADD",71,47,"2"],["B","ADD",70,47,"2"],["B","ADD",69,47,"2"],["B","ADD",68,47,"2"],["B","ADD",67,47,"2"],["B","ADD",66,47,"2"],["B","ADD",65,47,"2"],["B","ADD",64,47,"2"],["B","ADD",63,47,"2"],["B","ADD",62,47,"2"],["B","ADD",61,47,"2"],["B","ADD",60,47,"2"],["B","ADD",58,47,"-2"],["B","ADD",56,47,"-2"],["B","ADD",54,47,"-2"],["B","ADD",52,47,"-2"],["B","ADD",50,47,"-2"],["B","ADD",48,47,"-2"],["B","ADD",44,46,"-2"],["B","ADD",42,46,"-2"],["B","ADD",40,46,"-2"],["B","SCALE",46,"-1"],["B","ADD",77,46,"-2"],["B","ADD",76,46,"-2"],["B","ADD",75,46,"-2"],["B","ADD",74,46,"-2"],["B","ADD",73,46,"-2"],["B","ADD",72,46,"-2"],["B","ADD",71,46,"-2"],["B","ADD",70,46,"-2"],["B","ADD",69,46,"-2"],["B","ADD",68,46,"-2"],["B","ADD",67,46,"-2"],["B","ADD",66,46,"-2"],["B","ADD",65,46,"-2"],["B","ADD",64,46,"-2"],["B","ADD",63,46,"-2"],["B","ADD",62,46,"-2"],["B","ADD",61,46,"-2"],["B","ADD",60,46,"-2"],["B","ADD",58,46,"2"],["B","ADD",56,46,"2"],["B","ADD",54,46,"2"],["B","ADD",52,46,"2"],["B","ADD",50,46,"2"],["B","ADD",48,46,"2"],["B","ADD",44,45,"2"],["B","ADD",42,45,"2"],["B","ADD",40,45,"2"],["B","ADD",77,45,"-2"],["B","ADD",76,45,"-2"],["B","ADD",75,45,"-2"],["B","ADD",74,45,"-2"],["B","ADD",73,45,"-2"],["B","ADD",72,45,"-2"],["B","ADD",71,45,"-2"],["B","ADD",70,45,"-2"],["B","ADD",69,45,"-2"],["B","ADD",68,45,"-2"],["B","ADD",67,45,"-2"],["B","ADD",66,45,"-2"],["B","ADD",65,45,"-2"],["B","ADD",64,45,"-2"],["B","ADD",63,45,"-2"],["B","ADD",62,45,"-2"],["B","ADD",61,45,"-2"],["B","ADD",60,45,"-2"],["B","ADD",58,45,"2"],["B","ADD",56,45,"2"],["B","ADD",54,45,"2"],["B","ADD",52,45,"2"],["B","ADD",50,45,"2"],["B","ADD",48,45,"2"],["B","ADD",46,45,"2"],["B","ADD",42,43,"-2"],["B","ADD",40,43,"-2"],["B","ADD",77,43,"2"],["B","ADD",76,43,"2"],["B","ADD",75,43,"2"],["B","ADD",74,43,"2"],["B","ADD",73,43,"2"],["B","ADD",72,43,"2"],["B","ADD",71,43,"2"],["B","ADD",70,43,"2"],["B","ADD",69,43,"2"],["B","ADD",68,43,"2"],["B","ADD",67,43,"2"],["B","ADD",66,43,"2"],["B","ADD",65,43,"2"],["B","ADD",64,43,"2"],["B","ADD",63,43,"2"],["B","ADD",62,43,"2"],["B","ADD",61,43,"2"],["B","ADD",60,43,"2"],["B","ADD",58,43,"-2"],["B","ADD",56,43,"-2"],["B","ADD",54,43,"-2"],["B","ADD",52,43,"-2"],["B","ADD",50,43,"-2"],["B","ADD",48,43,"-2"],["B","ADD",46,43,"-2"],["B","ADD",44,43,"-2"],["B","ADD",40,42,"-2"],["B","SCALE",42,"-1"],["B","ADD",77,42,"-2"],["B","ADD",76,42,"-2"],["B","ADD",75,42,"-2"],["B","ADD",74,42,"-2"],["B","ADD",73,42,"-2"],["B","ADD",72,42,"-2"],["B","ADD",71,42,"-2"],["B","ADD",70,42,"-2"],["B","ADD",69,42,"-2"],["B","ADD",68,42,"-2"],["B","ADD",67,42,"-2"],["B","ADD",66,42,"-2"],["B","ADD",65,42,"-2"],["B","ADD",64,42,"-2"],["B","ADD",63,42,"-2"],["B","ADD",62,42,"-2"],["B","ADD",61,42,"-2"],["B","ADD",60,42,"-2"],["B","ADD",58,42,"2"],["B","ADD",56,42,"2"],["B","ADD",54,42,"2"],["B","ADD",52,42,"2"],["B","ADD",50,42,"2"],["B","ADD",48,42,"2"],["B","ADD",46,42,"2"],["B","ADD",44,42,"2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"-2"],["B","ADD",76,41,"-2"],["B","ADD",75,41,"-2"],["B","ADD",74,41,"-2"],["B","ADD",73,41,"-2"],["B","ADD",72,41,"-2"],["B","ADD",71,41,"-2"],["B","ADD",70,41,"-2"],["B","ADD",69,41,"-2"],["B","ADD",68,41,"-2"],["B","ADD",67,41,"-2"],["B","ADD",66,41,"-2"],["B","ADD",65,41,"-2"],["B","ADD",64,41,"-2"],["B","ADD",63,41,"-2"],["B","ADD",62,41,"-2"],["B","ADD",61,41,"-2"],["B","ADD",60,41,"-2"],["B","SCALE",40,"1/2"],["B","ADD",77,40,"2"],["B","ADD",76,40,"2"],["B","ADD",75,40,"2"],["B","ADD",74,40,"2"],["B","ADD",73,40,"2"],["B","ADD",72,40,"2"],["B","ADD",71,40,"2"],["B","ADD",70,40,"2"],["B","ADD",69,40,"2"],["B","ADD",68,40,"2"],["B","ADD",67,40,"2"],["B","ADD",66,40,"2"],["B","ADD",65,40,"2"],["B","ADD",64,40,"2"],["B","ADD",63,40,"2"],["B","ADD",62,40,"2"],["B","ADD",61,40,"2"],["B","ADD",60,40,"2"],["B","ADD",58,40,"-2"],["B","ADD",56,40,"-2"],["B","ADD",54,40,"-2"],["B","ADD",52,40,"-2"],["B","ADD",50,40,"-2"],["B","ADD",48,40,"-2"],["B","ADD",46,40,"-2"],["B","ADD",44,40,"-2"],["B","ADD",42,40,"-2"],["B","SWAP",40,41],["B","LAMBDA",40,-1],["B","QUERY",40,41,-1],["B","LAMBDA",40,1],["B","ADD",40,41,"-1"],["B","ADD",41,77,"1"],["B","ADD",74,76,"-1"],["B","ADD",72,76,"-1"],["B","ADD",70,76,"-1"],["B","ADD",68,76,"-1"],["B","ADD",66,76,"-1"],["B","ADD",64,76,"-1"],["B","ADD",60,76,"-1/2"],["B","ADD",41,76,"1"],["B","SWAP",75,77],["B","ADD",41,74,"1"],["B","SWAP",74,76],["B","ADD",41,73,"-1"],["B","ADD",41,72,"1"],["B","ADD",41,70,"-1"],["B","ADD",41,69,"1"],["B","ADD",41,68,"-1"],["B","SWAP",67,71],["B","ADD",41,66,"1"],["B","SWAP",66,70],["B","ADD",41,65,"-1"],["B","SWAP",65,73],["B","ADD",41,64,"1"],["B","SWAP",64,72],["B","SWAP",63,77],["B","ADD",41,62,"-1"],["B","SWAP",62,76],["B","ADD",60,61,"-1"],["B","ADD",40,61,"1"],["B","SCALE",61,"-2"],["B","ADD",77,61,"1"],["B","ADD",76,61,"1"],["B","SWAP",61,75],["B","SCALE",60,"-2"],["B","ADD",74,60,"-1"],["B","ADD",72,60,"1"],["B","ADD",70,60,"1"],["B","ADD",68,60,"1"],["B","ADD",66,60,"1"],["B","ADD",64,60,"1"],["B","ADD",62,60,"1"],["B","ADD",41,59,"-1"],["B","ADD",41,58,"1"],["B","ADD",41,57,"-1"],["B","ADD",41,55,"1"],["B","ADD",41,54,"-1"],["B","ADD",41,53,"1"],["B","ADD",41,51,"-1"],["B","ADD",41,50,"1"],["B","ADD",41,49,"-1"],["B","ADD",41,47,"1"],["B","ADD",41,46,"-1"],["B","ADD",41,45,"1"],["B","ADD",41,43,"-1"],["B","ADD",41,42,"1"],["B","ADD",40,41,"1"],["B","SCALE",41,"-128"],["B","ADD",74,41,"1/64"],["B","ADD",72,41,"-1/64"],["B","ADD",70,41,"-1/64"],["B","ADD",68,41,"-1/64"],["B","ADD",66,41,"-1/64"],["B","ADD",64,41,"-1/64"],["B","ADD",62,41,"-1/64"],["B","ADD",60,41,"-1/64"],["B","SCALE",40,"128"],["B","ADD",77,40,"1/32"],["B","ADD",76,40,"1/64"],["B","ADD",75,40,"1/32"],["B","ADD",74,40,"-1/64"],["B","SWAP",40,41],["B","LAMBDA",40,-1],["J",10,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",2,[10]],["A","IDLE_ONE",3,[10,11]],["A","IDLE_ONE",4,[10,11,12]],["A","IDLE_ONE",5,[10,11,12,13]],["A","IDLE_ONE",6,[10,11,12,13,14]],["A","IDLE_ONE",7,[10,11,12,13,14,15]],["A","IDLE_ONE",8,[10,11,12,13,14,15,16]],["A","IDLE_ONE",9,[10,11,12,13,14,15,16,17]],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","ADD",20,21,"-1"],["A","IDLE_ONE",22,[10]],["A","IDLE_ONE",23,[10,11]],["A","IDLE_ONE",24,[10,11,12]],["A","IDLE_ONE",25,[10,11,12,13]],["A","IDLE_ONE",26,[10,11,12,13,14]],["A","IDLE_ONE",27,[10,11,12,13,14,15]],["A","IDLE_ONE",28,[10,11,12,13,14,15,16]],["A","IDLE_ONE",29,[10,11,12,13,14,15,16,17]],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",60,[10,11,12,13,14,15,16,17]],["B","IDLE_ONE",61,[10,11,12,13,14,15,16,17]],["B","IDLE_ONE",62,[10,11,12,13,14,15,16]],["B","IDLE_ONE",63,[10,11,12,13,14,15,16]],["B","IDLE_ONE",64,[10,11,12,13,14,15]],["B","IDLE_ONE",65,[10,11,12,13,14,15]],["B","IDLE_ONE",66,[10,11,12,13,14]],["B","IDLE_ONE",67,[10,11,12,13,14]],["B","IDLE_ONE",68,[10,11,12,13]],["B","IDLE_ONE",69,[10,11,12,13]],["B","IDLE_ONE",70,[10,11,12]],["B","IDLE_ONE",71,[10,11,12]],["B","IDLE_ONE",72,[10,11]],["B","IDLE_ONE",73,[10,11]],["B","IDLE_ONE",74,[10]],["B","IDLE_ONE",75,[10]],["B","IDLE_ONE",76,[10]],["B","IDLE_ONE",77,[10]],["B","ADD",76,77,"-1/2"],["B","ADD",75,77,"-1"],["B","ADD",74,77,"1/2"],["B","ADD",41,77,"-64"],["B","SCALE",77,"1/4"],["B","ADD",74,76,"-2"],["B","SCALE",76,"2"],["B","ADD",77,76,"1/2"],["B","ADD",74,75,"3/2"],["B","ADD",41,75,"64"],["B","ADD",40,75,"64"],["B","SCALE",75,"2"],["B","ADD",77,75,"-5/8"],["B","ADD",76,75,"-3/2"],["B","SWAP",75,77],["B","ADD",40,74,"-64"],["B","ADD",76,74,"2"],["B","ADD",75,74,"3/2"],["B","SWAP",74,75],["B","SWAP",73,75],["B","SWAP",72,74],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","SWAP",63,65],["B","SWAP",62,64],["B","SWAP",61,63],["B","SWAP",60,62],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",61,41,"1/64"],["B","ADD",60,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",61,40,"-1/64"],["B","ADD",60,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",11,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[11]],["B","IDLE_ONE",77,[11]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"2"],["B","ADD",76,75,"-1"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1"],["B","ADD",75,74,"1"],["B","SWAP",73,75],["B","SWAP",72,74],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","SWAP",63,65],["B","SWAP",62,64],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",63,41,"1/64"],["B","ADD",62,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",63,40,"-1/64"],["B","ADD",62,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",12,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[12]],["B","IDLE_ONE",77,[12]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"2"],["B","ADD",76,75,"-1"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1"],["B","ADD",75,74,"1"],["B","SWAP",73,75],["B","SWAP",72,74],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",65,41,"1/64"],["B","ADD",64,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",65,40,"-1/64"],["B","ADD",64,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",13,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[13]],["B","IDLE_ONE",77,[13]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"2"],["B","ADD",76,75,"-1"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1"],["B","ADD",75,74,"1"],["B","SWAP",73,75],["B","SWAP",72,74],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",67,41,"1/64"],["B","ADD",66,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",67,40,"-1/64"],["B","ADD",66,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",14,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[14]],["B","IDLE_ONE",77,[14]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"2"],["B","ADD",76,75,"-1"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1"],["B","ADD",75,74,"1"],["B","SWAP",73,75],["B","SWAP",72,74],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",69,41,"1/64"],["B","ADD",68,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",69,40,"-1/64"],["B","ADD",68,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",15,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[15]],["B","IDLE_ONE",77,[15]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"2"],["B","ADD",76,75,"-1"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1"],["B","ADD",75,74,"1"],["B","SWAP",73,75],["B","SWAP",72,74],["B","SWAP",71,73],["B","SWAP",70,72],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",71,41,"1/64"],["B","ADD",70,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",71,40,"-1/64"],["B","ADD",70,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",16,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[16]],["B","IDLE_ONE",77,[16]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/2"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"2"],["B","ADD",76,75,"-1"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1"],["B","ADD",75,74,"1"],["B","SWAP",73,75],["B","SWAP",72,74],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/32"],["B","ADD",76,41,"-1/64"],["B","ADD",73,41,"1/64"],["B","ADD",72,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/32"],["B","ADD",73,40,"-1/64"],["B","ADD",72,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",17,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","ADD",21,22,"-1"],["A","ADD",20,22,"-1"],["A","SCALE",22,"-1"],["A","SWAP",22,38],["A","ADD",20,21,"-1"],["A","ADD",38,21,"-2"],["A","ADD",38,20,"2"],["A","ADD",21,20,"-1"],["A","SWAP",20,38],["A","LAMBDA",20,1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[17]],["B","IDLE_ONE",77,[17]],["B","ADD",76,77,"1"],["B","ADD",74,77,"-1/4"],["B","ADD",41,77,"-64"],["B","SCALE",77,"-1/4"],["B","ADD",75,76,"1/2"],["B","ADD",74,76,"1/2"],["B","ADD",41,76,"64"],["B","ADD",40,76,"32"],["B","SCALE",76,"1/2"],["B","SWAP",76,77],["B","ADD",74,75,"-1/2"],["B","ADD",41,75,"-128"],["B","SCALE",75,"-1"],["B","ADD",77,75,"1"],["B","ADD",76,75,"-1/2"],["B","ADD",40,74,"128"],["B","SCALE",74,"-2"],["B","ADD",76,74,"1/2"],["B","ADD",75,74,"1"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"-1"],["B","ADD",77,41,"1/64"],["B","ADD",76,41,"-1/128"],["B","ADD",75,41,"1/64"],["B","ADD",74,41,"1/128"],["B","SCALE",40,"-1"],["B","ADD",77,40,"-1/64"],["B","ADD",75,40,"-1/64"],["B","ADD",74,40,"-1/64"],["B","ADD",41,40,"-1"],["B","LAMBDA",40,-1],["J",18,[1,0,20,21],[41,40,"-1","1/2"]],["A","LAMBDA",20,-1],["A","SCALE",21,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","SWAP",2,18],["A","ADD",0,1,"-2"],["A","SWAP",1,18],["A","SCALE",0,"-1"],["A","ADD",18,0,"-1"],["A","LAMBDA",0,-1],["A","LAMBDA",1,-1],["A","LAMBDA",2,-1],["A","LAMBDA",3,-1],["A","LAMBDA",4,-1],["A","LAMBDA",5,-1],["A","LAMBDA",6,-1],["A","LAMBDA",7,-1],["A","LAMBDA",8,-1],["A","LAMBDA",9,-1],["A","LAMBDA",10,-1],["A","LAMBDA",11,-1],["A","LAMBDA",12,-1],["A","LAMBDA",13,-1],["A","LAMBDA",14,-1],["A","LAMBDA",15,-1],["A","LAMBDA",16,-1],["A","LAMBDA",17,-1],["A","LAMBDA",18,-1],["A","LAMBDA",19,-1],["A","SWAP",37,38],["A","SWAP",36,38],["A","SWAP",35,38],["A","SWAP",34,38],["A","SWAP",33,38],["A","SWAP",32,38],["A","SWAP",31,38],["A","SWAP",30,38],["A","SWAP",29,38],["A","SWAP",28,38],["A","SWAP",27,38],["A","SWAP",26,38],["A","SWAP",25,38],["A","SWAP",24,38],["A","SWAP",23,38],["A","SWAP",22,38],["A","ADD",20,21,"-2"],["A","SWAP",21,38],["A","SCALE",20,"-1"],["A","ADD",38,20,"-1"],["A","LAMBDA",20,-1],["A","LAMBDA",21,-1],["A","LAMBDA",22,-1],["A","LAMBDA",23,-1],["A","LAMBDA",24,-1],["A","LAMBDA",25,-1],["A","LAMBDA",26,-1],["A","LAMBDA",27,-1],["A","LAMBDA",28,-1],["A","LAMBDA",29,-1],["A","LAMBDA",30,-1],["A","LAMBDA",31,-1],["A","LAMBDA",32,-1],["A","LAMBDA",33,-1],["A","LAMBDA",34,-1],["A","LAMBDA",35,-1],["A","LAMBDA",36,-1],["A","LAMBDA",37,-1],["A","LAMBDA",38,-1],["A","LAMBDA",39,-1],["B","LAMBDA",40,1],["B","IDLE_ONE",76,[18]],["B","IDLE_ONE",77,[18]],["B","ADD",41,77,"-128"],["B","ADD",40,77,"64"],["B","SCALE",77,"-1"],["B","ADD",40,76,"128"],["B","SCALE",76,"-1"],["B","ADD",77,76,"2"],["B","ADD",40,41,"1/2"],["B","SCALE",41,"1/128"],["B","ADD",77,41,"-2"],["B","ADD",76,41,"-1"],["B","SCALE",40,"1/128"],["B","ADD",77,40,"2"],["B","ADD",76,40,"2"],["B","SWAP",40,41],["B","LAMBDA",40,-1],["B","LAMBDA",41,-1],["B","LAMBDA",42,-1],["B","LAMBDA",43,-1],["B","LAMBDA",44,-1],["B","LAMBDA",45,-1],["B","LAMBDA",46,-1],["B","LAMBDA",47,-1],["B","LAMBDA",48,-1],["B","LAMBDA",49,-1],["B","LAMBDA",50,-1],["B","LAMBDA",51,-1],["B","LAMBDA",52,-1],["B","LAMBDA",53,-1],["B","LAMBDA",54,-1],["B","LAMBDA",55,-1],["B","LAMBDA",56,-1],["B","LAMBDA",57,-1],["B","LAMBDA",58,-1],["B","LAMBDA",59,-1],["B","LAMBDA",60,-1],["B","LAMBDA",61,-1],["B","LAMBDA",62,-1],["B","LAMBDA",63,-1],["B","LAMBDA",64,-1],["B","LAMBDA",65,-1],["B","LAMBDA",66,-1],["B","LAMBDA",67,-1],["B","LAMBDA",68,-1],["B","LAMBDA",69,-1],["B","LAMBDA",70,-1],["B","LAMBDA",71,-1],["B","LAMBDA",72,-1],["B","LAMBDA",73,-1],["B","LAMBDA",74,-1],["B","LAMBDA",75,-1],["B","LAMBDA",76,-1],["B","LAMBDA",77,-1]]} \ No newline at end of file diff --git a/research/p104-qself-owned-lowering/data/caller_efree.json b/research/p104-qself-owned-lowering/data/caller_efree.json new file mode 100644 index 0000000000..5a71ca9f80 --- /dev/null +++ b/research/p104-qself-owned-lowering/data/caller_efree.json @@ -0,0 +1 @@ +{"schema":"mixed-root-caller/1","stages":18,"ambient_rank":153,"roles":76,"types":{"A":{"form":"two-chain-HOST2","roles":38,"offset":0,"ports":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,36,37,38,39,40,41,43,44,45,46,48,49,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103],"alpha2":"-1","beta2":"0","diagonal":[[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,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,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,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,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1]]},"B":{"form":"hosted-HOST","roles":38,"offset":38,"ports":[15,17,27,34,35,42,47,55],"diagonal":[[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,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,1,1,0,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],[-1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1]],"pairs":[[0,1,"-1","1/2","-1/2"],[2,3,"-1","1/2","-1/2"],[4,5,"-1","1/2","-1/2"],[6,7,"-1","1/2","-1/2"],[8,9,"-1","1/2","-1/2"],[10,11,"-1","1/2","-1/2"],[12,13,"-1","1/2","-1/2"],[14,15,"-1","1/2","-1/2"],[16,17,"-1","1/2","-1/2"],[22,23,"-1","1/2","-1/2"],[24,25,"-1","1/2","-1/2"],[26,27,"-1","1/2","-1/2"],[28,29,"-1","1/2","-1/2"],[30,31,"-1","1/2","-1/2"],[32,33,"-1","1/2","-1/2"],[34,35,"-1","1/2","-1/2"],[36,37,"-1","1/2","-1/2"],[38,39,"-1","1/2","-1/2"]]}},"events":[["A","ADD",0,1,"-1"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","SWAP",19,20],["A","SCALE",20,"-1"],["A","LAMBDA",19,1],["B","ADD",40,41,"-2"],["B","ADD",39,41,"1"],["B","ADD",38,41,"2"],["B","ADD",39,40,"1"],["B","ADD",38,40,"1"],["B","ADD",38,39,"-2"],["B","SCALE",39,"256"],["B","ADD",41,39,"-1/128"],["B","ADD",40,39,"1/128"],["B","SCALE",38,"128"],["B","ADD",41,38,"-1/128"],["B","ADD",40,38,"1/64"],["B","ADD",39,38,"1"],["B","LAMBDA",38,-1],["J",1,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",1,2,"1"],["A","ADD",0,2,"-1"],["A","SCALE",1,"-1"],["A","SWAP",1,2],["A","ADD",2,0,"-1"],["A","SWAP",0,1],["A","LAMBDA",0,-1],["A","ADD",20,21,"1"],["A","ADD",19,21,"-1"],["A","SCALE",20,"-1"],["A","SWAP",20,21],["A","SCALE",19,"-1"],["A","ADD",21,19,"1"],["A","SWAP",19,20],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",40,[1]],["B","IDLE_ONE",41,[1]],["B","ADD",42,43,"-2"],["B","ADD",40,43,"-2"],["B","ADD",39,43,"-256"],["B","ADD",38,43,"-128"],["B","ADD",41,42,"1"],["B","ADD",40,42,"-2"],["B","ADD",39,42,"-256"],["B","ADD",39,41,"256"],["B","ADD",38,41,"-128"],["B","ADD",38,40,"-128"],["B","ADD",41,40,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",43,39,"-1/128"],["B","ADD",42,39,"1/128"],["B","ADD",41,39,"1/128"],["B","ADD",40,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",43,38,"1/128"],["B","ADD",41,38,"-1/128"],["B","ADD",40,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",2,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",2,[2,3,4,5,6,7,8,9]],["A","ADD",1,3,"1"],["A","ADD",0,3,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,3],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",21,[2,3,4,5,6,7,8,9]],["A","ADD",20,22,"1"],["A","ADD",19,22,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,22],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",40,[2,3,4,5,6,7,8,9]],["B","IDLE_ONE",41,[2,3,4,5,6,7,8,9]],["B","IDLE_ONE",42,[2]],["B","IDLE_ONE",43,[2]],["B","ADD",44,45,"-2"],["B","ADD",42,45,"-2"],["B","ADD",39,45,"-256"],["B","ADD",38,45,"-128"],["B","ADD",43,44,"1"],["B","ADD",42,44,"-2"],["B","ADD",39,44,"-256"],["B","ADD",39,43,"256"],["B","ADD",38,43,"-128"],["B","ADD",38,42,"-128"],["B","ADD",43,42,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",45,39,"-1/128"],["B","ADD",44,39,"1/128"],["B","ADD",43,39,"1/128"],["B","ADD",42,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",45,38,"1/128"],["B","ADD",43,38,"-1/128"],["B","ADD",42,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",3,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",3,[3,4,5,6,7,8,9]],["A","ADD",1,4,"1"],["A","ADD",0,4,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,4],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",22,[3,4,5,6,7,8,9]],["A","ADD",20,23,"1"],["A","ADD",19,23,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,23],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",42,[3,4,5,6,7,8,9]],["B","IDLE_ONE",43,[3,4,5,6,7,8,9]],["B","IDLE_ONE",44,[3]],["B","IDLE_ONE",45,[3]],["B","ADD",46,47,"-2"],["B","ADD",44,47,"-2"],["B","ADD",39,47,"-256"],["B","ADD",38,47,"-128"],["B","ADD",45,46,"1"],["B","ADD",44,46,"-2"],["B","ADD",39,46,"-256"],["B","ADD",39,45,"256"],["B","ADD",38,45,"-128"],["B","ADD",38,44,"-128"],["B","ADD",45,44,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",47,39,"-1/128"],["B","ADD",46,39,"1/128"],["B","ADD",45,39,"1/128"],["B","ADD",44,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",47,38,"1/128"],["B","ADD",45,38,"-1/128"],["B","ADD",44,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",4,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",4,[4,5,6,7,8,9]],["A","ADD",1,5,"1"],["A","ADD",0,5,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,5],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",23,[4,5,6,7,8,9]],["A","ADD",20,24,"1"],["A","ADD",19,24,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,24],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",44,[4,5,6,7,8,9]],["B","IDLE_ONE",45,[4,5,6,7,8,9]],["B","IDLE_ONE",46,[4]],["B","IDLE_ONE",47,[4]],["B","ADD",48,49,"-2"],["B","ADD",46,49,"-2"],["B","ADD",39,49,"-256"],["B","ADD",38,49,"-128"],["B","ADD",47,48,"1"],["B","ADD",46,48,"-2"],["B","ADD",39,48,"-256"],["B","ADD",39,47,"256"],["B","ADD",38,47,"-128"],["B","ADD",38,46,"-128"],["B","ADD",47,46,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",49,39,"-1/128"],["B","ADD",48,39,"1/128"],["B","ADD",47,39,"1/128"],["B","ADD",46,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",49,38,"1/128"],["B","ADD",47,38,"-1/128"],["B","ADD",46,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",5,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",5,[5,6,7,8,9]],["A","ADD",1,6,"1"],["A","ADD",0,6,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,6],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",24,[5,6,7,8,9]],["A","ADD",20,25,"1"],["A","ADD",19,25,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,25],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",46,[5,6,7,8,9]],["B","IDLE_ONE",47,[5,6,7,8,9]],["B","IDLE_ONE",48,[5]],["B","IDLE_ONE",49,[5]],["B","ADD",50,51,"-2"],["B","ADD",48,51,"-2"],["B","ADD",39,51,"-256"],["B","ADD",38,51,"-128"],["B","ADD",49,50,"1"],["B","ADD",48,50,"-2"],["B","ADD",39,50,"-256"],["B","ADD",39,49,"256"],["B","ADD",38,49,"-128"],["B","ADD",38,48,"-128"],["B","ADD",49,48,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",51,39,"-1/128"],["B","ADD",50,39,"1/128"],["B","ADD",49,39,"1/128"],["B","ADD",48,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",51,38,"1/128"],["B","ADD",49,38,"-1/128"],["B","ADD",48,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",6,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",6,[6,7,8,9]],["A","ADD",1,7,"1"],["A","ADD",0,7,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,7],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",25,[6,7,8,9]],["A","ADD",20,26,"1"],["A","ADD",19,26,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,26],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",48,[6,7,8,9]],["B","IDLE_ONE",49,[6,7,8,9]],["B","IDLE_ONE",50,[6]],["B","IDLE_ONE",51,[6]],["B","ADD",52,53,"-2"],["B","ADD",50,53,"-2"],["B","ADD",39,53,"-256"],["B","ADD",38,53,"-128"],["B","ADD",51,52,"1"],["B","ADD",50,52,"-2"],["B","ADD",39,52,"-256"],["B","ADD",39,51,"256"],["B","ADD",38,51,"-128"],["B","ADD",38,50,"-128"],["B","ADD",51,50,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",53,39,"-1/128"],["B","ADD",52,39,"1/128"],["B","ADD",51,39,"1/128"],["B","ADD",50,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",53,38,"1/128"],["B","ADD",51,38,"-1/128"],["B","ADD",50,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",7,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",7,[7,8,9]],["A","ADD",1,8,"1"],["A","ADD",0,8,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,8],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",26,[7,8,9]],["A","ADD",20,27,"1"],["A","ADD",19,27,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,27],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",50,[7,8,9]],["B","IDLE_ONE",51,[7,8,9]],["B","IDLE_ONE",52,[7]],["B","IDLE_ONE",53,[7]],["B","ADD",54,55,"-2"],["B","ADD",52,55,"-2"],["B","ADD",39,55,"-256"],["B","ADD",38,55,"-128"],["B","ADD",53,54,"1"],["B","ADD",52,54,"-2"],["B","ADD",39,54,"-256"],["B","ADD",39,53,"256"],["B","ADD",38,53,"-128"],["B","ADD",38,52,"-128"],["B","ADD",53,52,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",55,39,"-1/128"],["B","ADD",54,39,"1/128"],["B","ADD",53,39,"1/128"],["B","ADD",52,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",55,38,"1/128"],["B","ADD",53,38,"-1/128"],["B","ADD",52,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",8,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",8,[8,9]],["A","ADD",1,9,"1"],["A","ADD",0,9,"-2"],["A","ADD",0,1,"2"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",1,0,"-1"],["A","SWAP",0,9],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",27,[8,9]],["A","ADD",20,28,"1"],["A","ADD",19,28,"-2"],["A","ADD",19,20,"2"],["A","SCALE",19,"-1"],["A","ADD",20,19,"1"],["A","SWAP",19,28],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",52,[8,9]],["B","IDLE_ONE",53,[8,9]],["B","IDLE_ONE",54,[8]],["B","IDLE_ONE",55,[8]],["B","ADD",56,57,"-2"],["B","ADD",54,57,"-2"],["B","ADD",39,57,"-256"],["B","ADD",38,57,"-128"],["B","ADD",55,56,"1"],["B","ADD",54,56,"-2"],["B","ADD",39,56,"-256"],["B","ADD",39,55,"256"],["B","ADD",38,55,"-128"],["B","ADD",38,54,"-128"],["B","ADD",55,54,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",57,39,"-1/128"],["B","ADD",56,39,"1/128"],["B","ADD",55,39,"1/128"],["B","ADD",54,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",57,38,"1/128"],["B","ADD",55,38,"-1/128"],["B","ADD",54,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",9,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",9,[9]],["A","SWAP",9,8],["A","SWAP",9,7],["A","SWAP",9,6],["A","SWAP",9,5],["A","SWAP",9,4],["A","SWAP",9,3],["A","SWAP",9,2],["A","ADD",0,1,"1"],["A","SCALE",1,"-1"],["A","SWAP",9,1],["A","ADD",18,0,"1"],["A","ADD",17,0,"1"],["A","ADD",16,0,"1"],["A","ADD",15,0,"1"],["A","ADD",14,0,"1"],["A","ADD",13,0,"1"],["A","ADD",12,0,"1"],["A","ADD",11,0,"1"],["A","ADD",10,0,"1"],["A","ADD",8,0,"1"],["A","ADD",7,0,"1"],["A","ADD",6,0,"1"],["A","ADD",5,0,"1"],["A","ADD",4,0,"1"],["A","ADD",3,0,"1"],["A","ADD",2,0,"1"],["A","ADD",1,0,"1"],["A","LAMBDA",0,1],["A","QSELF",0,-1],["A","ADD",1,18,"-1"],["A","ADD",1,17,"1"],["A","ADD",1,16,"-1"],["A","ADD",1,15,"1"],["A","ADD",1,14,"-1"],["A","ADD",1,13,"1"],["A","ADD",1,12,"-1"],["A","ADD",1,11,"1"],["A","ADD",1,10,"-1"],["A","ADD",1,9,"1"],["A","ADD",1,8,"-1"],["A","ADD",1,7,"1"],["A","ADD",1,6,"-1"],["A","ADD",1,5,"1"],["A","ADD",1,4,"-1"],["A","ADD",1,3,"1"],["A","ADD",1,2,"-1"],["A","SCALE",1,"-1"],["A","SCALE",0,"-1"],["A","ADD",18,0,"-1"],["A","ADD",17,0,"-1"],["A","ADD",16,0,"-1"],["A","ADD",15,0,"-1"],["A","ADD",14,0,"-1"],["A","ADD",13,0,"-1"],["A","ADD",12,0,"-1"],["A","ADD",11,0,"-1"],["A","ADD",10,0,"-1"],["A","ADD",9,0,"-1"],["A","ADD",8,0,"-1"],["A","ADD",7,0,"-1"],["A","ADD",6,0,"-1"],["A","ADD",5,0,"-1"],["A","ADD",4,0,"-1"],["A","ADD",3,0,"-1"],["A","ADD",2,0,"-1"],["A","LAMBDA",0,-1],["A","QUERY",0,1,-1],["A","LAMBDA",0,1],["A","ADD",1,18,"-1"],["A","ADD",0,18,"-1"],["A","ADD",1,17,"1"],["A","ADD",0,17,"1"],["A","ADD",1,16,"-1"],["A","ADD",0,16,"-1"],["A","ADD",1,15,"1"],["A","ADD",0,15,"1"],["A","ADD",1,14,"-1"],["A","ADD",0,14,"-1"],["A","ADD",1,13,"1"],["A","ADD",0,13,"1"],["A","ADD",1,12,"-1"],["A","ADD",0,12,"-1"],["A","ADD",1,11,"1"],["A","ADD",0,11,"1"],["A","ADD",1,10,"-1"],["A","SCALE",10,"-1"],["A","ADD",1,9,"1"],["A","ADD",0,9,"1"],["A","SWAP",18,9],["A","ADD",1,8,"-1"],["A","ADD",0,8,"-1"],["A","SWAP",17,8],["A","ADD",1,7,"1"],["A","ADD",0,7,"1"],["A","SWAP",16,7],["A","ADD",1,6,"-1"],["A","ADD",0,6,"-1"],["A","SWAP",15,6],["A","ADD",1,5,"1"],["A","ADD",0,5,"1"],["A","SWAP",14,5],["A","ADD",1,4,"-1"],["A","ADD",0,4,"-1"],["A","SWAP",13,4],["A","ADD",1,3,"1"],["A","ADD",0,3,"1"],["A","SWAP",12,3],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SWAP",11,2],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","SWAP",10,1],["A","SWAP",1,0],["A","ADD",0,1,"2"],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",28,[9]],["A","SWAP",28,27],["A","SWAP",28,26],["A","SWAP",28,25],["A","SWAP",28,24],["A","SWAP",28,23],["A","SWAP",28,22],["A","SWAP",28,21],["A","ADD",19,20,"1"],["A","SCALE",20,"-1"],["A","SWAP",28,20],["A","ADD",37,19,"1"],["A","ADD",36,19,"1"],["A","ADD",35,19,"1"],["A","ADD",34,19,"1"],["A","ADD",33,19,"1"],["A","ADD",32,19,"1"],["A","ADD",31,19,"1"],["A","ADD",30,19,"1"],["A","ADD",29,19,"1"],["A","ADD",27,19,"1"],["A","ADD",26,19,"1"],["A","ADD",25,19,"1"],["A","ADD",24,19,"1"],["A","ADD",23,19,"1"],["A","ADD",22,19,"1"],["A","ADD",21,19,"1"],["A","ADD",20,19,"1"],["A","LAMBDA",19,1],["A","QSELF",19,-1],["A","ADD",20,37,"-1"],["A","ADD",20,36,"1"],["A","ADD",20,35,"-1"],["A","ADD",20,34,"1"],["A","ADD",20,33,"-1"],["A","ADD",20,32,"1"],["A","ADD",20,31,"-1"],["A","ADD",20,30,"1"],["A","ADD",20,29,"-1"],["A","ADD",20,28,"1"],["A","ADD",20,27,"-1"],["A","ADD",20,26,"1"],["A","ADD",20,25,"-1"],["A","ADD",20,24,"1"],["A","ADD",20,23,"-1"],["A","ADD",20,22,"1"],["A","ADD",20,21,"-1"],["A","SCALE",20,"-1"],["A","SCALE",19,"-1"],["A","ADD",37,19,"-1"],["A","ADD",36,19,"-1"],["A","ADD",35,19,"-1"],["A","ADD",34,19,"-1"],["A","ADD",33,19,"-1"],["A","ADD",32,19,"-1"],["A","ADD",31,19,"-1"],["A","ADD",30,19,"-1"],["A","ADD",29,19,"-1"],["A","ADD",28,19,"-1"],["A","ADD",27,19,"-1"],["A","ADD",26,19,"-1"],["A","ADD",25,19,"-1"],["A","ADD",24,19,"-1"],["A","ADD",23,19,"-1"],["A","ADD",22,19,"-1"],["A","ADD",21,19,"-1"],["A","LAMBDA",19,-1],["A","QUERY",19,20,-1],["A","LAMBDA",19,1],["A","ADD",20,37,"-1"],["A","ADD",19,37,"-1"],["A","ADD",20,36,"1"],["A","ADD",19,36,"1"],["A","ADD",20,35,"-1"],["A","ADD",19,35,"-1"],["A","ADD",20,34,"1"],["A","ADD",19,34,"1"],["A","ADD",20,33,"-1"],["A","ADD",19,33,"-1"],["A","ADD",20,32,"1"],["A","ADD",19,32,"1"],["A","ADD",20,31,"-1"],["A","ADD",19,31,"-1"],["A","ADD",20,30,"1"],["A","ADD",19,30,"1"],["A","ADD",20,29,"-1"],["A","SCALE",29,"-1"],["A","ADD",20,28,"1"],["A","ADD",19,28,"1"],["A","SWAP",37,28],["A","ADD",20,27,"-1"],["A","ADD",19,27,"-1"],["A","SWAP",36,27],["A","ADD",20,26,"1"],["A","ADD",19,26,"1"],["A","SWAP",35,26],["A","ADD",20,25,"-1"],["A","ADD",19,25,"-1"],["A","SWAP",34,25],["A","ADD",20,24,"1"],["A","ADD",19,24,"1"],["A","SWAP",33,24],["A","ADD",20,23,"-1"],["A","ADD",19,23,"-1"],["A","SWAP",32,23],["A","ADD",20,22,"1"],["A","ADD",19,22,"1"],["A","SWAP",31,22],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SWAP",30,21],["A","ADD",19,20,"-1"],["A","SCALE",20,"-1"],["A","SWAP",29,20],["A","SCALE",19,"-1"],["A","SWAP",20,19],["A","ADD",19,20,"-2"],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",54,[9]],["B","IDLE_ONE",55,[9]],["B","IDLE_ONE",56,[9]],["B","IDLE_ONE",57,[9]],["B","ADD",56,75,"1"],["B","ADD",55,75,"1"],["B","ADD",53,75,"1"],["B","ADD",51,75,"1"],["B","ADD",49,75,"1"],["B","ADD",47,75,"1"],["B","ADD",45,75,"1"],["B","ADD",43,75,"1"],["B","ADD",41,75,"1"],["B","ADD",39,75,"-128"],["B","ADD",38,75,"64"],["B","ADD",56,73,"-1"],["B","ADD",55,73,"-1"],["B","ADD",53,73,"-1"],["B","ADD",51,73,"-1"],["B","ADD",49,73,"-1"],["B","ADD",47,73,"-1"],["B","ADD",45,73,"-1"],["B","ADD",43,73,"-1"],["B","ADD",41,73,"-1"],["B","ADD",39,73,"128"],["B","ADD",38,73,"-64"],["B","ADD",56,72,"2"],["B","ADD",55,72,"2"],["B","ADD",53,72,"2"],["B","ADD",51,72,"2"],["B","ADD",49,72,"2"],["B","ADD",47,72,"2"],["B","ADD",45,72,"2"],["B","ADD",43,72,"2"],["B","ADD",41,72,"2"],["B","ADD",39,72,"-256"],["B","ADD",38,72,"128"],["B","ADD",56,71,"-1"],["B","ADD",55,71,"-1"],["B","ADD",53,71,"-1"],["B","ADD",51,71,"-1"],["B","ADD",49,71,"-1"],["B","ADD",47,71,"-1"],["B","ADD",45,71,"-1"],["B","ADD",43,71,"-1"],["B","ADD",41,71,"-1"],["B","ADD",39,71,"128"],["B","ADD",38,71,"-64"],["B","ADD",56,69,"1"],["B","ADD",55,69,"1"],["B","ADD",53,69,"1"],["B","ADD",51,69,"1"],["B","ADD",49,69,"1"],["B","ADD",47,69,"1"],["B","ADD",45,69,"1"],["B","ADD",43,69,"1"],["B","ADD",41,69,"1"],["B","ADD",39,69,"-128"],["B","ADD",38,69,"64"],["B","ADD",56,68,"-2"],["B","ADD",55,68,"-2"],["B","ADD",53,68,"-2"],["B","ADD",51,68,"-2"],["B","ADD",49,68,"-2"],["B","ADD",47,68,"-2"],["B","ADD",45,68,"-2"],["B","ADD",43,68,"-2"],["B","ADD",41,68,"-2"],["B","ADD",39,68,"256"],["B","ADD",38,68,"-128"],["B","ADD",56,67,"1"],["B","ADD",55,67,"1"],["B","ADD",53,67,"1"],["B","ADD",51,67,"1"],["B","ADD",49,67,"1"],["B","ADD",47,67,"1"],["B","ADD",45,67,"1"],["B","ADD",43,67,"1"],["B","ADD",41,67,"1"],["B","ADD",39,67,"-128"],["B","ADD",38,67,"64"],["B","ADD",56,65,"-1"],["B","ADD",55,65,"-1"],["B","ADD",53,65,"-1"],["B","ADD",51,65,"-1"],["B","ADD",49,65,"-1"],["B","ADD",47,65,"-1"],["B","ADD",45,65,"-1"],["B","ADD",43,65,"-1"],["B","ADD",41,65,"-1"],["B","ADD",39,65,"128"],["B","ADD",38,65,"-64"],["B","ADD",56,64,"2"],["B","ADD",55,64,"2"],["B","ADD",53,64,"2"],["B","ADD",51,64,"2"],["B","ADD",49,64,"2"],["B","ADD",47,64,"2"],["B","ADD",45,64,"2"],["B","ADD",43,64,"2"],["B","ADD",41,64,"2"],["B","ADD",39,64,"-256"],["B","ADD",38,64,"128"],["B","ADD",56,63,"-1"],["B","ADD",55,63,"-1"],["B","ADD",53,63,"-1"],["B","ADD",51,63,"-1"],["B","ADD",49,63,"-1"],["B","ADD",47,63,"-1"],["B","ADD",45,63,"-1"],["B","ADD",43,63,"-1"],["B","ADD",41,63,"-1"],["B","ADD",39,63,"128"],["B","ADD",38,63,"-64"],["B","ADD",56,61,"1"],["B","ADD",55,61,"1"],["B","ADD",53,61,"1"],["B","ADD",51,61,"1"],["B","ADD",49,61,"1"],["B","ADD",47,61,"1"],["B","ADD",45,61,"1"],["B","ADD",43,61,"1"],["B","ADD",41,61,"1"],["B","ADD",39,61,"-128"],["B","ADD",38,61,"64"],["B","ADD",56,60,"-2"],["B","ADD",55,60,"-2"],["B","ADD",53,60,"-2"],["B","ADD",51,60,"-2"],["B","ADD",49,60,"-2"],["B","ADD",47,60,"-2"],["B","ADD",45,60,"-2"],["B","ADD",43,60,"-2"],["B","ADD",41,60,"-2"],["B","ADD",39,60,"256"],["B","ADD",38,60,"-128"],["B","ADD",56,59,"1"],["B","ADD",55,59,"1"],["B","ADD",53,59,"1"],["B","ADD",51,59,"1"],["B","ADD",49,59,"1"],["B","ADD",47,59,"1"],["B","ADD",45,59,"1"],["B","ADD",43,59,"1"],["B","ADD",41,59,"1"],["B","ADD",39,59,"-128"],["B","ADD",38,59,"64"],["B","ADD",39,57,"256"],["B","ADD",38,57,"-128"],["B","ADD",55,56,"-3/2"],["B","ADD",53,56,"-1"],["B","ADD",51,56,"-1"],["B","ADD",49,56,"-1"],["B","ADD",47,56,"-1"],["B","ADD",45,56,"-1"],["B","ADD",43,56,"-1"],["B","ADD",41,56,"-1"],["B","ADD",39,56,"128"],["B","ADD",38,56,"-64"],["B","SCALE",56,"1/2"],["B","ADD",53,55,"-1"],["B","ADD",51,55,"-1"],["B","ADD",49,55,"-1"],["B","ADD",47,55,"-1"],["B","ADD",45,55,"-1"],["B","ADD",43,55,"-1"],["B","ADD",41,55,"-1"],["B","ADD",39,55,"128"],["B","ADD",38,55,"64"],["B","SCALE",55,"-1"],["B","ADD",57,55,"1"],["B","SWAP",55,56],["B","ADD",53,54,"1/2"],["B","ADD",51,54,"1/2"],["B","ADD",49,54,"1/2"],["B","ADD",47,54,"1/2"],["B","ADD",45,54,"1/2"],["B","ADD",43,54,"1/2"],["B","ADD",41,54,"1/2"],["B","ADD",39,54,"-64"],["B","ADD",38,54,"-32"],["B","ADD",57,54,"1/2"],["B","ADD",56,54,"1/2"],["B","ADD",55,54,"1/2"],["B","ADD",51,52,"-1/2"],["B","ADD",49,52,"-1/2"],["B","ADD",47,52,"-1/2"],["B","ADD",45,52,"-1/2"],["B","ADD",43,52,"-1/2"],["B","ADD",41,52,"-1/2"],["B","ADD",39,52,"64"],["B","ADD",38,52,"32"],["B","ADD",57,52,"-1/2"],["B","ADD",56,52,"-1/2"],["B","ADD",55,52,"-1/2"],["B","ADD",53,52,"-1/2"],["B","ADD",49,51,"-1"],["B","ADD",47,51,"-2"],["B","ADD",45,51,"-1"],["B","ADD",43,51,"-1"],["B","ADD",41,51,"-1"],["B","ADD",39,51,"128"],["B","ADD",38,51,"64"],["B","ADD",57,51,"-1"],["B","ADD",56,51,"-1"],["B","ADD",55,51,"-1"],["B","ADD",53,51,"-1"],["B","ADD",47,50,"1/2"],["B","ADD",51,50,"-1/2"],["B","ADD",47,49,"-1"],["B","ADD",45,49,"-1"],["B","ADD",43,49,"-1"],["B","ADD",41,49,"-1"],["B","ADD",39,49,"128"],["B","ADD",38,49,"64"],["B","SCALE",49,"-1"],["B","ADD",57,49,"1"],["B","ADD",56,49,"1"],["B","ADD",55,49,"1"],["B","ADD",53,49,"1"],["B","SWAP",49,51],["B","ADD",47,48,"-1/2"],["B","ADD",49,48,"1/2"],["B","ADD",45,47,"-1"],["B","ADD",43,47,"-1"],["B","ADD",41,47,"-1"],["B","ADD",39,47,"128"],["B","ADD",38,47,"64"],["B","SCALE",47,"-1"],["B","ADD",57,47,"1"],["B","ADD",56,47,"1"],["B","ADD",55,47,"1"],["B","ADD",53,47,"1"],["B","ADD",51,47,"1"],["B","SWAP",47,49],["B","ADD",45,46,"1/2"],["B","ADD",43,46,"1/2"],["B","ADD",41,46,"1/2"],["B","ADD",39,46,"-64"],["B","ADD",38,46,"-32"],["B","ADD",57,46,"1/2"],["B","ADD",56,46,"1/2"],["B","ADD",55,46,"1/2"],["B","ADD",53,46,"1/2"],["B","ADD",51,46,"1/2"],["B","ADD",49,46,"1/2"],["B","ADD",47,46,"1/2"],["B","ADD",43,44,"-1/2"],["B","ADD",41,44,"-1/2"],["B","ADD",39,44,"64"],["B","ADD",38,44,"32"],["B","ADD",57,44,"-1/2"],["B","ADD",56,44,"-1/2"],["B","ADD",55,44,"-1/2"],["B","ADD",53,44,"-1/2"],["B","ADD",51,44,"-1/2"],["B","ADD",49,44,"-1/2"],["B","ADD",47,44,"-1/2"],["B","ADD",45,44,"-1/2"],["B","ADD",41,43,"-1"],["B","ADD",39,43,"128"],["B","ADD",38,43,"64"],["B","SCALE",43,"2"],["B","ADD",57,43,"-1/2"],["B","ADD",56,43,"-1/2"],["B","ADD",55,43,"-1/2"],["B","ADD",53,43,"-1/2"],["B","ADD",51,43,"-1/2"],["B","ADD",49,43,"-1/2"],["B","ADD",47,43,"-1/2"],["B","ADD",45,43,"-1/2"],["B","ADD",43,42,"-1"],["B","ADD",39,41,"128"],["B","ADD",38,41,"64"],["B","SCALE",41,"-1"],["B","ADD",57,41,"1"],["B","ADD",56,41,"1"],["B","ADD",55,41,"1"],["B","ADD",53,41,"1"],["B","ADD",51,41,"1"],["B","ADD",49,41,"1"],["B","ADD",47,41,"1"],["B","ADD",45,41,"1"],["B","SWAP",41,43],["B","ADD",41,40,"1"],["B","ADD",38,39,"-1/2"],["B","SCALE",39,"1/128"],["B","ADD",57,39,"1"],["B","ADD",56,39,"1"],["B","ADD",55,39,"1"],["B","ADD",53,39,"1"],["B","ADD",51,39,"1"],["B","ADD",49,39,"1"],["B","ADD",47,39,"1"],["B","ADD",45,39,"1"],["B","ADD",43,39,"1"],["B","SWAP",39,41],["B","SCALE",38,"1/128"],["B","ADD",57,38,"2"],["B","ADD",56,38,"2"],["B","ADD",55,38,"1"],["B","ADD",53,38,"1"],["B","ADD",51,38,"1"],["B","ADD",49,38,"1"],["B","ADD",47,38,"1"],["B","ADD",45,38,"1"],["B","ADD",43,38,"1"],["B","ADD",41,38,"1"],["B","ADD",39,38,"1"],["B","LAMBDA",38,-1],["B","QUERY",38,39,-1],["B","LAMBDA",38,1],["B","ADD",38,39,"-1"],["B","ADD",39,75,"-1"],["B","ADD",39,73,"1"],["B","ADD",39,72,"-2"],["B","ADD",39,71,"1"],["B","ADD",39,69,"-1"],["B","ADD",39,68,"2"],["B","ADD",39,67,"-1"],["B","ADD",39,65,"1"],["B","ADD",39,64,"-2"],["B","ADD",39,63,"1"],["B","ADD",39,61,"-1"],["B","ADD",39,60,"2"],["B","ADD",39,59,"-1"],["B","ADD",39,56,"-1"],["B","ADD",39,55,"2"],["B","ADD",39,54,"-1"],["B","ADD",39,52,"1"],["B","ADD",39,51,"-2"],["B","ADD",39,50,"1"],["B","ADD",39,48,"-1"],["B","ADD",39,47,"2"],["B","ADD",39,46,"-1"],["B","ADD",39,44,"1"],["B","ADD",39,43,"-2"],["B","ADD",39,42,"1"],["B","ADD",39,40,"-1"],["B","ADD",38,39,"-1"],["B","ADD",57,39,"-1"],["B","ADD",56,39,"-2"],["B","ADD",55,39,"-1"],["B","ADD",54,39,"-2"],["B","ADD",53,39,"-1"],["B","ADD",52,39,"-2"],["B","ADD",51,39,"-1"],["B","ADD",50,39,"-2"],["B","ADD",49,39,"-1"],["B","ADD",48,39,"-2"],["B","ADD",47,39,"-1"],["B","ADD",46,39,"-2"],["B","ADD",45,39,"-1"],["B","ADD",44,39,"-2"],["B","ADD",43,39,"-1"],["B","ADD",42,39,"-2"],["B","ADD",41,39,"-1"],["B","ADD",40,39,"-2"],["B","SCALE",38,"1/2"],["B","ADD",74,38,"-1"],["B","ADD",72,38,"-1"],["B","ADD",70,38,"-1"],["B","ADD",68,38,"-1"],["B","ADD",66,38,"-1"],["B","ADD",64,38,"-1"],["B","ADD",62,38,"-1"],["B","ADD",60,38,"-1"],["B","ADD",58,38,"-1"],["B","ADD",57,38,"-1"],["B","ADD",56,38,"-2"],["B","ADD",55,38,"-1"],["B","ADD",54,38,"-2"],["B","ADD",53,38,"-1"],["B","ADD",52,38,"-2"],["B","ADD",51,38,"-1"],["B","ADD",50,38,"-2"],["B","ADD",49,38,"-1"],["B","ADD",48,38,"-2"],["B","ADD",47,38,"-1"],["B","ADD",46,38,"-2"],["B","ADD",45,38,"-1"],["B","ADD",44,38,"-2"],["B","ADD",43,38,"-1"],["B","ADD",42,38,"-2"],["B","ADD",41,38,"-1"],["B","ADD",40,38,"-2"],["B","ADD",39,38,"1"],["B","LAMBDA",38,-1],["B","QUERY",38,39,-1],["B","LAMBDA",38,1],["B","ADD",38,39,"-1"],["B","SCALE",38,"2"],["B","ADD",75,38,"-1"],["B","ADD",74,38,"-1/2"],["B","ADD",73,38,"-1"],["B","ADD",72,38,"-1/2"],["B","ADD",71,38,"-1"],["B","ADD",70,38,"-1/2"],["B","ADD",69,38,"-1"],["B","ADD",68,38,"-1/2"],["B","ADD",67,38,"-1"],["B","ADD",66,38,"-1/2"],["B","ADD",65,38,"-1"],["B","ADD",64,38,"-1/2"],["B","ADD",63,38,"-1"],["B","ADD",62,38,"-1/2"],["B","ADD",61,38,"-1"],["B","ADD",60,38,"-1/2"],["B","ADD",59,38,"-1"],["B","ADD",58,38,"-1/2"],["B","ADD",57,38,"-1/2"],["B","ADD",55,38,"-1/2"],["B","ADD",53,38,"-1/2"],["B","ADD",51,38,"-1/2"],["B","ADD",49,38,"-1/2"],["B","ADD",47,38,"-1/2"],["B","ADD",45,38,"-1/2"],["B","ADD",43,38,"-1/2"],["B","ADD",41,38,"-1/2"],["B","ADD",39,38,"1/2"],["B","LAMBDA",38,-1],["B","QUERY",38,39,-1],["B","LAMBDA",38,1],["B","ADD",38,39,"-1"],["B","ADD",74,75,"-1/2"],["B","ADD",73,75,"-1"],["B","ADD",72,75,"-1"],["B","ADD",71,75,"-1"],["B","ADD",70,75,"-1"],["B","ADD",69,75,"-1"],["B","ADD",68,75,"-1"],["B","ADD",67,75,"-1"],["B","ADD",66,75,"-1"],["B","ADD",65,75,"-1"],["B","ADD",64,75,"-1"],["B","ADD",63,75,"-1"],["B","ADD",62,75,"-1"],["B","ADD",61,75,"-1"],["B","ADD",60,75,"-1"],["B","ADD",59,75,"-1"],["B","ADD",58,75,"-1"],["B","ADD",56,75,"1"],["B","ADD",54,75,"1"],["B","ADD",52,75,"1"],["B","ADD",50,75,"1"],["B","ADD",48,75,"1"],["B","ADD",46,75,"1"],["B","ADD",44,75,"1"],["B","ADD",42,75,"1"],["B","ADD",40,75,"1"],["B","ADD",38,75,"1"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"2"],["B","ADD",72,74,"2"],["B","ADD",71,74,"2"],["B","ADD",70,74,"2"],["B","ADD",69,74,"2"],["B","ADD",68,74,"2"],["B","ADD",67,74,"2"],["B","ADD",66,74,"2"],["B","ADD",65,74,"2"],["B","ADD",64,74,"2"],["B","ADD",63,74,"2"],["B","ADD",62,74,"2"],["B","ADD",61,74,"2"],["B","ADD",60,74,"2"],["B","ADD",59,74,"2"],["B","ADD",58,74,"2"],["B","ADD",56,74,"-2"],["B","ADD",54,74,"-2"],["B","ADD",52,74,"-2"],["B","ADD",50,74,"-2"],["B","ADD",48,74,"-2"],["B","ADD",46,74,"-2"],["B","ADD",44,74,"-2"],["B","ADD",42,74,"-2"],["B","ADD",40,74,"-2"],["B","ADD",38,74,"-2"],["B","SCALE",74,"2"],["B","ADD",75,74,"3/2"],["B","SWAP",74,75],["B","ADD",71,72,"-1/2"],["B","ADD",70,72,"-1"],["B","ADD",69,72,"-1"],["B","ADD",68,72,"-1"],["B","ADD",67,72,"-1"],["B","ADD",66,72,"-1"],["B","ADD",65,72,"-1"],["B","ADD",64,72,"-1"],["B","ADD",63,72,"-1"],["B","ADD",62,72,"-1"],["B","ADD",61,72,"-1"],["B","ADD",60,72,"-1"],["B","ADD",59,72,"-1"],["B","ADD",58,72,"-1"],["B","ADD",56,72,"1"],["B","ADD",54,72,"1"],["B","ADD",52,72,"1"],["B","ADD",50,72,"1"],["B","ADD",48,72,"1"],["B","ADD",46,72,"1"],["B","ADD",44,72,"1"],["B","ADD",42,72,"1"],["B","ADD",40,72,"1"],["B","ADD",38,72,"1"],["B","SCALE",72,"-1/2"],["B","ADD",75,72,"2"],["B","ADD",74,72,"2"],["B","ADD",73,72,"2"],["B","ADD",70,71,"2"],["B","ADD",69,71,"2"],["B","ADD",68,71,"2"],["B","ADD",67,71,"2"],["B","ADD",66,71,"2"],["B","ADD",65,71,"2"],["B","ADD",64,71,"2"],["B","ADD",63,71,"2"],["B","ADD",62,71,"2"],["B","ADD",61,71,"2"],["B","ADD",60,71,"2"],["B","ADD",59,71,"2"],["B","ADD",58,71,"2"],["B","ADD",56,71,"-2"],["B","ADD",54,71,"-2"],["B","ADD",52,71,"-2"],["B","ADD",50,71,"-2"],["B","ADD",48,71,"-2"],["B","ADD",46,71,"-2"],["B","ADD",44,71,"-2"],["B","ADD",42,71,"-2"],["B","ADD",40,71,"-2"],["B","ADD",38,71,"-2"],["B","SCALE",71,"2"],["B","ADD",75,71,"1"],["B","ADD",74,71,"1"],["B","ADD",73,71,"1"],["B","ADD",72,71,"3/2"],["B","SWAP",71,72],["B","ADD",69,70,"-1"],["B","ADD",68,70,"-1/2"],["B","ADD",67,70,"-1"],["B","ADD",66,70,"-1"],["B","ADD",65,70,"-1"],["B","ADD",64,70,"-1"],["B","ADD",63,70,"-1"],["B","ADD",62,70,"-1"],["B","ADD",61,70,"-1"],["B","ADD",60,70,"-1"],["B","ADD",59,70,"-1"],["B","ADD",58,70,"-1"],["B","ADD",56,70,"1"],["B","ADD",54,70,"1"],["B","ADD",52,70,"1"],["B","ADD",50,70,"1"],["B","ADD",48,70,"1"],["B","ADD",46,70,"1"],["B","ADD",44,70,"1"],["B","ADD",42,70,"1"],["B","ADD",40,70,"1"],["B","ADD",38,70,"1"],["B","SCALE",70,"-1/2"],["B","ADD",75,70,"2"],["B","ADD",74,70,"2"],["B","ADD",73,70,"2"],["B","ADD",72,70,"2"],["B","ADD",71,70,"2"],["B","ADD",68,69,"1/2"],["B","ADD",67,69,"-1"],["B","ADD",66,69,"-1"],["B","ADD",65,69,"-1"],["B","ADD",64,69,"-1"],["B","ADD",63,69,"-1"],["B","ADD",62,69,"-1"],["B","ADD",61,69,"-1"],["B","ADD",60,69,"-1"],["B","ADD",59,69,"-1"],["B","ADD",58,69,"-1"],["B","ADD",56,69,"1"],["B","ADD",54,69,"1"],["B","ADD",52,69,"1"],["B","ADD",50,69,"1"],["B","ADD",48,69,"1"],["B","ADD",46,69,"1"],["B","ADD",44,69,"1"],["B","ADD",42,69,"1"],["B","ADD",40,69,"1"],["B","ADD",38,69,"1"],["B","SCALE",69,"-1"],["B","ADD",75,69,"1"],["B","ADD",74,69,"1"],["B","ADD",73,69,"1"],["B","ADD",72,69,"1"],["B","ADD",71,69,"1"],["B","ADD",70,69,"3/2"],["B","SWAP",69,70],["B","ADD",67,68,"2"],["B","ADD",66,68,"2"],["B","ADD",65,68,"2"],["B","ADD",64,68,"2"],["B","ADD",63,68,"2"],["B","ADD",62,68,"2"],["B","ADD",61,68,"2"],["B","ADD",60,68,"2"],["B","ADD",59,68,"2"],["B","ADD",58,68,"2"],["B","ADD",56,68,"-2"],["B","ADD",54,68,"-2"],["B","ADD",52,68,"-2"],["B","ADD",50,68,"-2"],["B","ADD",48,68,"-2"],["B","ADD",46,68,"-2"],["B","ADD",44,68,"-2"],["B","ADD",42,68,"-2"],["B","ADD",40,68,"-2"],["B","ADD",38,68,"-2"],["B","SCALE",68,"2"],["B","ADD",75,68,"1"],["B","ADD",74,68,"1"],["B","ADD",73,68,"1"],["B","ADD",72,68,"1"],["B","ADD",71,68,"1"],["B","ADD",70,68,"1"],["B","ADD",69,68,"3/2"],["B","SWAP",68,69],["B","ADD",66,67,"-1/2"],["B","ADD",65,67,"-1"],["B","ADD",64,67,"-1"],["B","ADD",63,67,"-1"],["B","ADD",62,67,"-1"],["B","ADD",61,67,"-1"],["B","ADD",60,67,"-1"],["B","ADD",59,67,"-1"],["B","ADD",58,67,"-1"],["B","ADD",56,67,"1"],["B","ADD",54,67,"1"],["B","ADD",52,67,"1"],["B","ADD",50,67,"1"],["B","ADD",48,67,"1"],["B","ADD",46,67,"1"],["B","ADD",44,67,"1"],["B","ADD",42,67,"1"],["B","ADD",40,67,"1"],["B","ADD",38,67,"1"],["B","SCALE",67,"-1/2"],["B","ADD",75,67,"2"],["B","ADD",74,67,"2"],["B","ADD",73,67,"2"],["B","ADD",72,67,"2"],["B","ADD",71,67,"2"],["B","ADD",70,67,"2"],["B","ADD",69,67,"2"],["B","ADD",68,67,"2"],["B","ADD",65,66,"2"],["B","ADD",64,66,"2"],["B","ADD",63,66,"2"],["B","ADD",62,66,"2"],["B","ADD",61,66,"2"],["B","ADD",60,66,"2"],["B","ADD",59,66,"2"],["B","ADD",58,66,"2"],["B","ADD",56,66,"-2"],["B","ADD",54,66,"-2"],["B","ADD",52,66,"-2"],["B","ADD",50,66,"-2"],["B","ADD",48,66,"-2"],["B","ADD",46,66,"-2"],["B","ADD",44,66,"-2"],["B","ADD",42,66,"-2"],["B","ADD",40,66,"-2"],["B","ADD",38,66,"-2"],["B","SCALE",66,"2"],["B","ADD",75,66,"1"],["B","ADD",74,66,"1"],["B","ADD",73,66,"1"],["B","ADD",72,66,"1"],["B","ADD",71,66,"1"],["B","ADD",70,66,"1"],["B","ADD",69,66,"1"],["B","ADD",68,66,"1"],["B","ADD",67,66,"3/2"],["B","SWAP",66,67],["B","ADD",63,64,"-1/2"],["B","ADD",62,64,"-1"],["B","ADD",61,64,"-1"],["B","ADD",60,64,"-1"],["B","ADD",59,64,"-1"],["B","ADD",58,64,"-1"],["B","ADD",56,64,"1"],["B","ADD",54,64,"1"],["B","ADD",52,64,"1"],["B","ADD",50,64,"1"],["B","ADD",48,64,"1"],["B","ADD",46,64,"1"],["B","ADD",44,64,"1"],["B","ADD",42,64,"1"],["B","ADD",40,64,"1"],["B","ADD",38,64,"1"],["B","SCALE",64,"-1/2"],["B","ADD",75,64,"2"],["B","ADD",74,64,"2"],["B","ADD",73,64,"2"],["B","ADD",72,64,"2"],["B","ADD",71,64,"2"],["B","ADD",70,64,"2"],["B","ADD",69,64,"2"],["B","ADD",68,64,"2"],["B","ADD",67,64,"2"],["B","ADD",66,64,"2"],["B","ADD",65,64,"2"],["B","ADD",62,63,"2"],["B","ADD",61,63,"2"],["B","ADD",60,63,"2"],["B","ADD",59,63,"2"],["B","ADD",58,63,"2"],["B","ADD",56,63,"-2"],["B","ADD",54,63,"-2"],["B","ADD",52,63,"-2"],["B","ADD",50,63,"-2"],["B","ADD",48,63,"-2"],["B","ADD",46,63,"-2"],["B","ADD",44,63,"-2"],["B","ADD",42,63,"-2"],["B","ADD",40,63,"-2"],["B","ADD",38,63,"-2"],["B","SCALE",63,"2"],["B","ADD",75,63,"1"],["B","ADD",74,63,"1"],["B","ADD",73,63,"1"],["B","ADD",72,63,"1"],["B","ADD",71,63,"1"],["B","ADD",70,63,"1"],["B","ADD",69,63,"1"],["B","ADD",68,63,"1"],["B","ADD",67,63,"1"],["B","ADD",66,63,"1"],["B","ADD",65,63,"1"],["B","ADD",64,63,"3/2"],["B","SWAP",63,64],["B","ADD",61,62,"-1"],["B","ADD",60,62,"-1/2"],["B","ADD",59,62,"-1"],["B","ADD",58,62,"-1"],["B","ADD",56,62,"1"],["B","ADD",54,62,"1"],["B","ADD",52,62,"1"],["B","ADD",50,62,"1"],["B","ADD",48,62,"1"],["B","ADD",46,62,"1"],["B","ADD",44,62,"1"],["B","ADD",42,62,"1"],["B","ADD",40,62,"1"],["B","ADD",38,62,"1"],["B","SCALE",62,"-1/2"],["B","ADD",75,62,"2"],["B","ADD",74,62,"2"],["B","ADD",73,62,"2"],["B","ADD",72,62,"2"],["B","ADD",71,62,"2"],["B","ADD",70,62,"2"],["B","ADD",69,62,"2"],["B","ADD",68,62,"2"],["B","ADD",67,62,"2"],["B","ADD",66,62,"2"],["B","ADD",65,62,"2"],["B","ADD",64,62,"2"],["B","ADD",63,62,"2"],["B","ADD",60,61,"1/2"],["B","ADD",59,61,"-1"],["B","ADD",58,61,"-1"],["B","ADD",56,61,"1"],["B","ADD",54,61,"1"],["B","ADD",52,61,"1"],["B","ADD",50,61,"1"],["B","ADD",48,61,"1"],["B","ADD",46,61,"1"],["B","ADD",44,61,"1"],["B","ADD",42,61,"1"],["B","ADD",40,61,"1"],["B","ADD",38,61,"1"],["B","SCALE",61,"-1"],["B","ADD",75,61,"1"],["B","ADD",74,61,"1"],["B","ADD",73,61,"1"],["B","ADD",72,61,"1"],["B","ADD",71,61,"1"],["B","ADD",70,61,"1"],["B","ADD",69,61,"1"],["B","ADD",68,61,"1"],["B","ADD",67,61,"1"],["B","ADD",66,61,"1"],["B","ADD",65,61,"1"],["B","ADD",64,61,"1"],["B","ADD",63,61,"1"],["B","ADD",62,61,"3/2"],["B","SWAP",61,62],["B","ADD",59,60,"2"],["B","ADD",58,60,"2"],["B","ADD",56,60,"-2"],["B","ADD",54,60,"-2"],["B","ADD",52,60,"-2"],["B","ADD",50,60,"-2"],["B","ADD",48,60,"-2"],["B","ADD",46,60,"-2"],["B","ADD",44,60,"-2"],["B","ADD",42,60,"-2"],["B","ADD",40,60,"-2"],["B","ADD",38,60,"-2"],["B","SCALE",60,"2"],["B","ADD",75,60,"1"],["B","ADD",74,60,"1"],["B","ADD",73,60,"1"],["B","ADD",72,60,"1"],["B","ADD",71,60,"1"],["B","ADD",70,60,"1"],["B","ADD",69,60,"1"],["B","ADD",68,60,"1"],["B","ADD",67,60,"1"],["B","ADD",66,60,"1"],["B","ADD",65,60,"1"],["B","ADD",64,60,"1"],["B","ADD",63,60,"1"],["B","ADD",62,60,"1"],["B","ADD",61,60,"3/2"],["B","SWAP",60,61],["B","ADD",58,59,"-1/2"],["B","ADD",56,59,"1"],["B","ADD",54,59,"1"],["B","ADD",52,59,"1"],["B","ADD",50,59,"1"],["B","ADD",48,59,"1"],["B","ADD",46,59,"1"],["B","ADD",44,59,"1"],["B","ADD",42,59,"1"],["B","ADD",40,59,"1"],["B","ADD",38,59,"1"],["B","SCALE",59,"-1/2"],["B","ADD",75,59,"2"],["B","ADD",74,59,"2"],["B","ADD",73,59,"2"],["B","ADD",72,59,"2"],["B","ADD",71,59,"2"],["B","ADD",70,59,"2"],["B","ADD",69,59,"2"],["B","ADD",68,59,"2"],["B","ADD",67,59,"2"],["B","ADD",66,59,"2"],["B","ADD",65,59,"2"],["B","ADD",64,59,"2"],["B","ADD",63,59,"2"],["B","ADD",62,59,"2"],["B","ADD",61,59,"2"],["B","ADD",60,59,"2"],["B","ADD",56,58,"-2"],["B","ADD",54,58,"-2"],["B","ADD",52,58,"-2"],["B","ADD",50,58,"-2"],["B","ADD",48,58,"-2"],["B","ADD",46,58,"-2"],["B","ADD",44,58,"-2"],["B","ADD",42,58,"-2"],["B","ADD",40,58,"-2"],["B","ADD",38,58,"-2"],["B","SCALE",58,"2"],["B","ADD",75,58,"1"],["B","ADD",74,58,"1"],["B","ADD",73,58,"1"],["B","ADD",72,58,"1"],["B","ADD",71,58,"1"],["B","ADD",70,58,"1"],["B","ADD",69,58,"1"],["B","ADD",68,58,"1"],["B","ADD",67,58,"1"],["B","ADD",66,58,"1"],["B","ADD",65,58,"1"],["B","ADD",64,58,"1"],["B","ADD",63,58,"1"],["B","ADD",62,58,"1"],["B","ADD",61,58,"1"],["B","ADD",60,58,"1"],["B","ADD",59,58,"3/2"],["B","SWAP",58,59],["B","ADD",56,57,"-2"],["B","ADD",54,57,"-2"],["B","ADD",52,57,"-2"],["B","ADD",50,57,"-2"],["B","ADD",48,57,"-2"],["B","ADD",46,57,"-2"],["B","ADD",44,57,"-2"],["B","ADD",42,57,"-2"],["B","ADD",40,57,"-2"],["B","ADD",38,57,"-2"],["B","ADD",75,57,"2"],["B","ADD",74,57,"2"],["B","ADD",73,57,"2"],["B","ADD",72,57,"2"],["B","ADD",71,57,"2"],["B","ADD",70,57,"2"],["B","ADD",69,57,"2"],["B","ADD",68,57,"2"],["B","ADD",67,57,"2"],["B","ADD",66,57,"2"],["B","ADD",65,57,"2"],["B","ADD",64,57,"2"],["B","ADD",63,57,"2"],["B","ADD",62,57,"2"],["B","ADD",61,57,"2"],["B","ADD",60,57,"2"],["B","ADD",59,57,"2"],["B","ADD",58,57,"2"],["B","ADD",54,56,"-2"],["B","ADD",52,56,"-2"],["B","ADD",50,56,"-2"],["B","ADD",48,56,"-2"],["B","ADD",46,56,"-2"],["B","ADD",44,56,"-2"],["B","ADD",42,56,"-2"],["B","ADD",40,56,"-2"],["B","ADD",38,56,"-2"],["B","SCALE",56,"-1"],["B","ADD",75,56,"-2"],["B","ADD",74,56,"-2"],["B","ADD",73,56,"-2"],["B","ADD",72,56,"-2"],["B","ADD",71,56,"-2"],["B","ADD",70,56,"-2"],["B","ADD",69,56,"-2"],["B","ADD",68,56,"-2"],["B","ADD",67,56,"-2"],["B","ADD",66,56,"-2"],["B","ADD",65,56,"-2"],["B","ADD",64,56,"-2"],["B","ADD",63,56,"-2"],["B","ADD",62,56,"-2"],["B","ADD",61,56,"-2"],["B","ADD",60,56,"-2"],["B","ADD",59,56,"-2"],["B","ADD",58,56,"-2"],["B","ADD",54,55,"2"],["B","ADD",52,55,"2"],["B","ADD",50,55,"2"],["B","ADD",48,55,"2"],["B","ADD",46,55,"2"],["B","ADD",44,55,"2"],["B","ADD",42,55,"2"],["B","ADD",40,55,"2"],["B","ADD",38,55,"2"],["B","ADD",75,55,"-2"],["B","ADD",74,55,"-2"],["B","ADD",73,55,"-2"],["B","ADD",72,55,"-2"],["B","ADD",71,55,"-2"],["B","ADD",70,55,"-2"],["B","ADD",69,55,"-2"],["B","ADD",68,55,"-2"],["B","ADD",67,55,"-2"],["B","ADD",66,55,"-2"],["B","ADD",65,55,"-2"],["B","ADD",64,55,"-2"],["B","ADD",63,55,"-2"],["B","ADD",62,55,"-2"],["B","ADD",61,55,"-2"],["B","ADD",60,55,"-2"],["B","ADD",59,55,"-2"],["B","ADD",58,55,"-2"],["B","ADD",56,55,"2"],["B","ADD",52,53,"-2"],["B","ADD",50,53,"-2"],["B","ADD",48,53,"-2"],["B","ADD",46,53,"-2"],["B","ADD",44,53,"-2"],["B","ADD",42,53,"-2"],["B","ADD",40,53,"-2"],["B","ADD",38,53,"-2"],["B","ADD",75,53,"2"],["B","ADD",74,53,"2"],["B","ADD",73,53,"2"],["B","ADD",72,53,"2"],["B","ADD",71,53,"2"],["B","ADD",70,53,"2"],["B","ADD",69,53,"2"],["B","ADD",68,53,"2"],["B","ADD",67,53,"2"],["B","ADD",66,53,"2"],["B","ADD",65,53,"2"],["B","ADD",64,53,"2"],["B","ADD",63,53,"2"],["B","ADD",62,53,"2"],["B","ADD",61,53,"2"],["B","ADD",60,53,"2"],["B","ADD",59,53,"2"],["B","ADD",58,53,"2"],["B","ADD",56,53,"-2"],["B","ADD",54,53,"-2"],["B","ADD",50,52,"-2"],["B","ADD",48,52,"-2"],["B","ADD",46,52,"-2"],["B","ADD",44,52,"-2"],["B","ADD",42,52,"-2"],["B","ADD",40,52,"-2"],["B","ADD",38,52,"-2"],["B","SCALE",52,"-1"],["B","ADD",75,52,"-2"],["B","ADD",74,52,"-2"],["B","ADD",73,52,"-2"],["B","ADD",72,52,"-2"],["B","ADD",71,52,"-2"],["B","ADD",70,52,"-2"],["B","ADD",69,52,"-2"],["B","ADD",68,52,"-2"],["B","ADD",67,52,"-2"],["B","ADD",66,52,"-2"],["B","ADD",65,52,"-2"],["B","ADD",64,52,"-2"],["B","ADD",63,52,"-2"],["B","ADD",62,52,"-2"],["B","ADD",61,52,"-2"],["B","ADD",60,52,"-2"],["B","ADD",59,52,"-2"],["B","ADD",58,52,"-2"],["B","ADD",56,52,"2"],["B","ADD",54,52,"2"],["B","ADD",50,51,"2"],["B","ADD",48,51,"2"],["B","ADD",46,51,"2"],["B","ADD",44,51,"2"],["B","ADD",42,51,"2"],["B","ADD",40,51,"2"],["B","ADD",38,51,"2"],["B","ADD",75,51,"-2"],["B","ADD",74,51,"-2"],["B","ADD",73,51,"-2"],["B","ADD",72,51,"-2"],["B","ADD",71,51,"-2"],["B","ADD",70,51,"-2"],["B","ADD",69,51,"-2"],["B","ADD",68,51,"-2"],["B","ADD",67,51,"-2"],["B","ADD",66,51,"-2"],["B","ADD",65,51,"-2"],["B","ADD",64,51,"-2"],["B","ADD",63,51,"-2"],["B","ADD",62,51,"-2"],["B","ADD",61,51,"-2"],["B","ADD",60,51,"-2"],["B","ADD",59,51,"-2"],["B","ADD",58,51,"-2"],["B","ADD",56,51,"2"],["B","ADD",54,51,"2"],["B","ADD",52,51,"2"],["B","ADD",48,49,"-2"],["B","ADD",46,49,"-2"],["B","ADD",44,49,"-2"],["B","ADD",42,49,"-2"],["B","ADD",40,49,"-2"],["B","ADD",38,49,"-2"],["B","ADD",75,49,"2"],["B","ADD",74,49,"2"],["B","ADD",73,49,"2"],["B","ADD",72,49,"2"],["B","ADD",71,49,"2"],["B","ADD",70,49,"2"],["B","ADD",69,49,"2"],["B","ADD",68,49,"2"],["B","ADD",67,49,"2"],["B","ADD",66,49,"2"],["B","ADD",65,49,"2"],["B","ADD",64,49,"2"],["B","ADD",63,49,"2"],["B","ADD",62,49,"2"],["B","ADD",61,49,"2"],["B","ADD",60,49,"2"],["B","ADD",59,49,"2"],["B","ADD",58,49,"2"],["B","ADD",56,49,"-2"],["B","ADD",54,49,"-2"],["B","ADD",52,49,"-2"],["B","ADD",50,49,"-2"],["B","ADD",46,48,"-2"],["B","ADD",44,48,"-2"],["B","ADD",42,48,"-2"],["B","ADD",40,48,"-2"],["B","ADD",38,48,"-2"],["B","SCALE",48,"-1"],["B","ADD",75,48,"-2"],["B","ADD",74,48,"-2"],["B","ADD",73,48,"-2"],["B","ADD",72,48,"-2"],["B","ADD",71,48,"-2"],["B","ADD",70,48,"-2"],["B","ADD",69,48,"-2"],["B","ADD",68,48,"-2"],["B","ADD",67,48,"-2"],["B","ADD",66,48,"-2"],["B","ADD",65,48,"-2"],["B","ADD",64,48,"-2"],["B","ADD",63,48,"-2"],["B","ADD",62,48,"-2"],["B","ADD",61,48,"-2"],["B","ADD",60,48,"-2"],["B","ADD",59,48,"-2"],["B","ADD",58,48,"-2"],["B","ADD",56,48,"2"],["B","ADD",54,48,"2"],["B","ADD",52,48,"2"],["B","ADD",50,48,"2"],["B","ADD",46,47,"2"],["B","ADD",44,47,"2"],["B","ADD",42,47,"2"],["B","ADD",40,47,"2"],["B","ADD",38,47,"2"],["B","ADD",75,47,"-2"],["B","ADD",74,47,"-2"],["B","ADD",73,47,"-2"],["B","ADD",72,47,"-2"],["B","ADD",71,47,"-2"],["B","ADD",70,47,"-2"],["B","ADD",69,47,"-2"],["B","ADD",68,47,"-2"],["B","ADD",67,47,"-2"],["B","ADD",66,47,"-2"],["B","ADD",65,47,"-2"],["B","ADD",64,47,"-2"],["B","ADD",63,47,"-2"],["B","ADD",62,47,"-2"],["B","ADD",61,47,"-2"],["B","ADD",60,47,"-2"],["B","ADD",59,47,"-2"],["B","ADD",58,47,"-2"],["B","ADD",56,47,"2"],["B","ADD",54,47,"2"],["B","ADD",52,47,"2"],["B","ADD",50,47,"2"],["B","ADD",48,47,"2"],["B","ADD",44,45,"-2"],["B","ADD",42,45,"-2"],["B","ADD",40,45,"-2"],["B","ADD",38,45,"-2"],["B","ADD",75,45,"2"],["B","ADD",74,45,"2"],["B","ADD",73,45,"2"],["B","ADD",72,45,"2"],["B","ADD",71,45,"2"],["B","ADD",70,45,"2"],["B","ADD",69,45,"2"],["B","ADD",68,45,"2"],["B","ADD",67,45,"2"],["B","ADD",66,45,"2"],["B","ADD",65,45,"2"],["B","ADD",64,45,"2"],["B","ADD",63,45,"2"],["B","ADD",62,45,"2"],["B","ADD",61,45,"2"],["B","ADD",60,45,"2"],["B","ADD",59,45,"2"],["B","ADD",58,45,"2"],["B","ADD",56,45,"-2"],["B","ADD",54,45,"-2"],["B","ADD",52,45,"-2"],["B","ADD",50,45,"-2"],["B","ADD",48,45,"-2"],["B","ADD",46,45,"-2"],["B","ADD",42,44,"-2"],["B","ADD",40,44,"-2"],["B","ADD",38,44,"-2"],["B","SCALE",44,"-1"],["B","ADD",75,44,"-2"],["B","ADD",74,44,"-2"],["B","ADD",73,44,"-2"],["B","ADD",72,44,"-2"],["B","ADD",71,44,"-2"],["B","ADD",70,44,"-2"],["B","ADD",69,44,"-2"],["B","ADD",68,44,"-2"],["B","ADD",67,44,"-2"],["B","ADD",66,44,"-2"],["B","ADD",65,44,"-2"],["B","ADD",64,44,"-2"],["B","ADD",63,44,"-2"],["B","ADD",62,44,"-2"],["B","ADD",61,44,"-2"],["B","ADD",60,44,"-2"],["B","ADD",59,44,"-2"],["B","ADD",58,44,"-2"],["B","ADD",56,44,"2"],["B","ADD",54,44,"2"],["B","ADD",52,44,"2"],["B","ADD",50,44,"2"],["B","ADD",48,44,"2"],["B","ADD",46,44,"2"],["B","ADD",42,43,"2"],["B","ADD",40,43,"2"],["B","ADD",38,43,"2"],["B","ADD",75,43,"-2"],["B","ADD",74,43,"-2"],["B","ADD",73,43,"-2"],["B","ADD",72,43,"-2"],["B","ADD",71,43,"-2"],["B","ADD",70,43,"-2"],["B","ADD",69,43,"-2"],["B","ADD",68,43,"-2"],["B","ADD",67,43,"-2"],["B","ADD",66,43,"-2"],["B","ADD",65,43,"-2"],["B","ADD",64,43,"-2"],["B","ADD",63,43,"-2"],["B","ADD",62,43,"-2"],["B","ADD",61,43,"-2"],["B","ADD",60,43,"-2"],["B","ADD",59,43,"-2"],["B","ADD",58,43,"-2"],["B","ADD",56,43,"2"],["B","ADD",54,43,"2"],["B","ADD",52,43,"2"],["B","ADD",50,43,"2"],["B","ADD",48,43,"2"],["B","ADD",46,43,"2"],["B","ADD",44,43,"2"],["B","ADD",40,41,"-2"],["B","ADD",38,41,"-2"],["B","ADD",75,41,"2"],["B","ADD",74,41,"2"],["B","ADD",73,41,"2"],["B","ADD",72,41,"2"],["B","ADD",71,41,"2"],["B","ADD",70,41,"2"],["B","ADD",69,41,"2"],["B","ADD",68,41,"2"],["B","ADD",67,41,"2"],["B","ADD",66,41,"2"],["B","ADD",65,41,"2"],["B","ADD",64,41,"2"],["B","ADD",63,41,"2"],["B","ADD",62,41,"2"],["B","ADD",61,41,"2"],["B","ADD",60,41,"2"],["B","ADD",59,41,"2"],["B","ADD",58,41,"2"],["B","ADD",56,41,"-2"],["B","ADD",54,41,"-2"],["B","ADD",52,41,"-2"],["B","ADD",50,41,"-2"],["B","ADD",48,41,"-2"],["B","ADD",46,41,"-2"],["B","ADD",44,41,"-2"],["B","ADD",42,41,"-2"],["B","ADD",38,40,"-2"],["B","SCALE",40,"-1"],["B","ADD",75,40,"-2"],["B","ADD",74,40,"-2"],["B","ADD",73,40,"-2"],["B","ADD",72,40,"-2"],["B","ADD",71,40,"-2"],["B","ADD",70,40,"-2"],["B","ADD",69,40,"-2"],["B","ADD",68,40,"-2"],["B","ADD",67,40,"-2"],["B","ADD",66,40,"-2"],["B","ADD",65,40,"-2"],["B","ADD",64,40,"-2"],["B","ADD",63,40,"-2"],["B","ADD",62,40,"-2"],["B","ADD",61,40,"-2"],["B","ADD",60,40,"-2"],["B","ADD",59,40,"-2"],["B","ADD",58,40,"-2"],["B","ADD",56,40,"2"],["B","ADD",54,40,"2"],["B","ADD",52,40,"2"],["B","ADD",50,40,"2"],["B","ADD",48,40,"2"],["B","ADD",46,40,"2"],["B","ADD",44,40,"2"],["B","ADD",42,40,"2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"-2"],["B","ADD",74,39,"-2"],["B","ADD",73,39,"-2"],["B","ADD",72,39,"-2"],["B","ADD",71,39,"-2"],["B","ADD",70,39,"-2"],["B","ADD",69,39,"-2"],["B","ADD",68,39,"-2"],["B","ADD",67,39,"-2"],["B","ADD",66,39,"-2"],["B","ADD",65,39,"-2"],["B","ADD",64,39,"-2"],["B","ADD",63,39,"-2"],["B","ADD",62,39,"-2"],["B","ADD",61,39,"-2"],["B","ADD",60,39,"-2"],["B","ADD",59,39,"-2"],["B","ADD",58,39,"-2"],["B","SCALE",38,"1/2"],["B","ADD",75,38,"2"],["B","ADD",74,38,"2"],["B","ADD",73,38,"2"],["B","ADD",72,38,"2"],["B","ADD",71,38,"2"],["B","ADD",70,38,"2"],["B","ADD",69,38,"2"],["B","ADD",68,38,"2"],["B","ADD",67,38,"2"],["B","ADD",66,38,"2"],["B","ADD",65,38,"2"],["B","ADD",64,38,"2"],["B","ADD",63,38,"2"],["B","ADD",62,38,"2"],["B","ADD",61,38,"2"],["B","ADD",60,38,"2"],["B","ADD",59,38,"2"],["B","ADD",58,38,"2"],["B","ADD",56,38,"-2"],["B","ADD",54,38,"-2"],["B","ADD",52,38,"-2"],["B","ADD",50,38,"-2"],["B","ADD",48,38,"-2"],["B","ADD",46,38,"-2"],["B","ADD",44,38,"-2"],["B","ADD",42,38,"-2"],["B","ADD",40,38,"-2"],["B","SWAP",38,39],["B","LAMBDA",38,-1],["B","QUERY",38,39,-1],["B","LAMBDA",38,1],["B","ADD",38,39,"-1"],["B","ADD",39,75,"1"],["B","ADD",72,74,"-1"],["B","ADD",70,74,"-1"],["B","ADD",68,74,"-1"],["B","ADD",66,74,"-1"],["B","ADD",64,74,"-1"],["B","ADD",62,74,"-1"],["B","ADD",58,74,"-1/2"],["B","ADD",39,74,"1"],["B","SWAP",73,75],["B","ADD",39,72,"1"],["B","SWAP",72,74],["B","ADD",39,71,"-1"],["B","ADD",39,70,"1"],["B","ADD",39,68,"-1"],["B","ADD",39,67,"1"],["B","ADD",39,66,"-1"],["B","SWAP",65,69],["B","ADD",39,64,"1"],["B","SWAP",64,68],["B","ADD",39,63,"-1"],["B","SWAP",63,71],["B","ADD",39,62,"1"],["B","SWAP",62,70],["B","SWAP",61,75],["B","ADD",39,60,"-1"],["B","SWAP",60,74],["B","ADD",58,59,"-1"],["B","ADD",38,59,"1"],["B","SCALE",59,"-2"],["B","ADD",75,59,"1"],["B","ADD",74,59,"1"],["B","SWAP",59,73],["B","SCALE",58,"-2"],["B","ADD",72,58,"-1"],["B","ADD",70,58,"1"],["B","ADD",68,58,"1"],["B","ADD",66,58,"1"],["B","ADD",64,58,"1"],["B","ADD",62,58,"1"],["B","ADD",60,58,"1"],["B","ADD",39,57,"-1"],["B","ADD",39,56,"1"],["B","ADD",39,55,"-1"],["B","ADD",39,53,"1"],["B","ADD",39,52,"-1"],["B","ADD",39,51,"1"],["B","ADD",39,49,"-1"],["B","ADD",39,48,"1"],["B","ADD",39,47,"-1"],["B","ADD",39,45,"1"],["B","ADD",39,44,"-1"],["B","ADD",39,43,"1"],["B","ADD",39,41,"-1"],["B","ADD",39,40,"1"],["B","ADD",38,39,"1"],["B","SCALE",39,"-128"],["B","ADD",72,39,"1/64"],["B","ADD",70,39,"-1/64"],["B","ADD",68,39,"-1/64"],["B","ADD",66,39,"-1/64"],["B","ADD",64,39,"-1/64"],["B","ADD",62,39,"-1/64"],["B","ADD",60,39,"-1/64"],["B","ADD",58,39,"-1/64"],["B","SCALE",38,"128"],["B","ADD",75,38,"1/32"],["B","ADD",74,38,"1/64"],["B","ADD",73,38,"1/32"],["B","ADD",72,38,"-1/64"],["B","SWAP",38,39],["B","LAMBDA",38,-1],["J",10,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","ADD",0,1,"-1"],["A","IDLE_ONE",2,[10]],["A","IDLE_ONE",3,[10,11]],["A","IDLE_ONE",4,[10,11,12]],["A","IDLE_ONE",5,[10,11,12,13]],["A","IDLE_ONE",6,[10,11,12,13,14]],["A","IDLE_ONE",7,[10,11,12,13,14,15]],["A","IDLE_ONE",8,[10,11,12,13,14,15,16]],["A","IDLE_ONE",9,[10,11,12,13,14,15,16,17]],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","ADD",19,20,"-1"],["A","IDLE_ONE",21,[10]],["A","IDLE_ONE",22,[10,11]],["A","IDLE_ONE",23,[10,11,12]],["A","IDLE_ONE",24,[10,11,12,13]],["A","IDLE_ONE",25,[10,11,12,13,14]],["A","IDLE_ONE",26,[10,11,12,13,14,15]],["A","IDLE_ONE",27,[10,11,12,13,14,15,16]],["A","IDLE_ONE",28,[10,11,12,13,14,15,16,17]],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",58,[10,11,12,13,14,15,16,17]],["B","IDLE_ONE",59,[10,11,12,13,14,15,16,17]],["B","IDLE_ONE",60,[10,11,12,13,14,15,16]],["B","IDLE_ONE",61,[10,11,12,13,14,15,16]],["B","IDLE_ONE",62,[10,11,12,13,14,15]],["B","IDLE_ONE",63,[10,11,12,13,14,15]],["B","IDLE_ONE",64,[10,11,12,13,14]],["B","IDLE_ONE",65,[10,11,12,13,14]],["B","IDLE_ONE",66,[10,11,12,13]],["B","IDLE_ONE",67,[10,11,12,13]],["B","IDLE_ONE",68,[10,11,12]],["B","IDLE_ONE",69,[10,11,12]],["B","IDLE_ONE",70,[10,11]],["B","IDLE_ONE",71,[10,11]],["B","IDLE_ONE",72,[10]],["B","IDLE_ONE",73,[10]],["B","IDLE_ONE",74,[10]],["B","IDLE_ONE",75,[10]],["B","ADD",74,75,"-1/2"],["B","ADD",73,75,"-1"],["B","ADD",72,75,"1/2"],["B","ADD",39,75,"-64"],["B","SCALE",75,"1/4"],["B","ADD",72,74,"-2"],["B","SCALE",74,"2"],["B","ADD",75,74,"1/2"],["B","ADD",72,73,"3/2"],["B","ADD",39,73,"64"],["B","ADD",38,73,"64"],["B","SCALE",73,"2"],["B","ADD",75,73,"-5/8"],["B","ADD",74,73,"-3/2"],["B","SWAP",73,75],["B","ADD",38,72,"-64"],["B","ADD",74,72,"2"],["B","ADD",73,72,"3/2"],["B","SWAP",72,73],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","SWAP",63,65],["B","SWAP",62,64],["B","SWAP",61,63],["B","SWAP",60,62],["B","SWAP",59,61],["B","SWAP",58,60],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",59,39,"1/64"],["B","ADD",58,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",59,38,"-1/64"],["B","ADD",58,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",11,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[11]],["B","IDLE_ONE",75,[11]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","SWAP",63,65],["B","SWAP",62,64],["B","SWAP",61,63],["B","SWAP",60,62],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",61,39,"1/64"],["B","ADD",60,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",61,38,"-1/64"],["B","ADD",60,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",12,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[12]],["B","IDLE_ONE",75,[12]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","SWAP",63,65],["B","SWAP",62,64],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",63,39,"1/64"],["B","ADD",62,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",63,38,"-1/64"],["B","ADD",62,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",13,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[13]],["B","IDLE_ONE",75,[13]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","SWAP",65,67],["B","SWAP",64,66],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",65,39,"1/64"],["B","ADD",64,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",65,38,"-1/64"],["B","ADD",64,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",14,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[14]],["B","IDLE_ONE",75,[14]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","SWAP",67,69],["B","SWAP",66,68],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",67,39,"1/64"],["B","ADD",66,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",67,38,"-1/64"],["B","ADD",66,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",15,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[15]],["B","IDLE_ONE",75,[15]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","SWAP",69,71],["B","SWAP",68,70],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",69,39,"1/64"],["B","ADD",68,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",69,38,"-1/64"],["B","ADD",68,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",16,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[16]],["B","IDLE_ONE",75,[16]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/2"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"2"],["B","ADD",74,73,"-1"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1"],["B","ADD",73,72,"1"],["B","SWAP",71,73],["B","SWAP",70,72],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/32"],["B","ADD",74,39,"-1/64"],["B","ADD",71,39,"1/64"],["B","ADD",70,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/32"],["B","ADD",71,38,"-1/64"],["B","ADD",70,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",17,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","ADD",1,2,"-1"],["A","ADD",0,2,"-1"],["A","SCALE",2,"-1"],["A","SWAP",2,18],["A","ADD",0,1,"-1"],["A","SCALE",1,"-1"],["A","ADD",18,1,"2"],["A","ADD",18,0,"2"],["A","ADD",1,0,"1"],["A","SWAP",0,18],["A","LAMBDA",0,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","ADD",20,21,"-1"],["A","ADD",19,21,"-1"],["A","SCALE",21,"-1"],["A","SWAP",21,37],["A","ADD",19,20,"-1"],["A","ADD",37,20,"-2"],["A","ADD",37,19,"2"],["A","ADD",20,19,"-1"],["A","SWAP",19,37],["A","LAMBDA",19,1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[17]],["B","IDLE_ONE",75,[17]],["B","ADD",74,75,"1"],["B","ADD",72,75,"-1/4"],["B","ADD",39,75,"-64"],["B","SCALE",75,"-1/4"],["B","ADD",73,74,"1/2"],["B","ADD",72,74,"1/2"],["B","ADD",39,74,"64"],["B","ADD",38,74,"32"],["B","SCALE",74,"1/2"],["B","SWAP",74,75],["B","ADD",72,73,"-1/2"],["B","ADD",39,73,"-128"],["B","SCALE",73,"-1"],["B","ADD",75,73,"1"],["B","ADD",74,73,"-1/2"],["B","ADD",38,72,"128"],["B","SCALE",72,"-2"],["B","ADD",74,72,"1/2"],["B","ADD",73,72,"1"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"-1"],["B","ADD",75,39,"1/64"],["B","ADD",74,39,"-1/128"],["B","ADD",73,39,"1/64"],["B","ADD",72,39,"1/128"],["B","SCALE",38,"-1"],["B","ADD",75,38,"-1/64"],["B","ADD",73,38,"-1/64"],["B","ADD",72,38,"-1/64"],["B","ADD",39,38,"-1"],["B","LAMBDA",38,-1],["J",18,[1,0,19,20],[39,38,"-1","1/2"]],["A","LAMBDA",19,-1],["A","SCALE",20,"-1"],["A","LAMBDA",0,1],["A","SWAP",17,18],["A","SWAP",16,18],["A","SWAP",15,18],["A","SWAP",14,18],["A","SWAP",13,18],["A","SWAP",12,18],["A","SWAP",11,18],["A","SWAP",10,18],["A","SWAP",9,18],["A","SWAP",8,18],["A","SWAP",7,18],["A","SWAP",6,18],["A","SWAP",5,18],["A","SWAP",4,18],["A","SWAP",3,18],["A","SWAP",2,18],["A","ADD",0,1,"-2"],["A","SWAP",1,18],["A","SCALE",0,"-1"],["A","ADD",18,0,"-1"],["A","LAMBDA",0,-1],["A","LAMBDA",1,-1],["A","LAMBDA",2,-1],["A","LAMBDA",3,-1],["A","LAMBDA",4,-1],["A","LAMBDA",5,-1],["A","LAMBDA",6,-1],["A","LAMBDA",7,-1],["A","LAMBDA",8,-1],["A","LAMBDA",9,-1],["A","LAMBDA",10,-1],["A","LAMBDA",11,-1],["A","LAMBDA",12,-1],["A","LAMBDA",13,-1],["A","LAMBDA",14,-1],["A","LAMBDA",15,-1],["A","LAMBDA",16,-1],["A","LAMBDA",17,-1],["A","LAMBDA",18,-1],["A","SWAP",36,37],["A","SWAP",35,37],["A","SWAP",34,37],["A","SWAP",33,37],["A","SWAP",32,37],["A","SWAP",31,37],["A","SWAP",30,37],["A","SWAP",29,37],["A","SWAP",28,37],["A","SWAP",27,37],["A","SWAP",26,37],["A","SWAP",25,37],["A","SWAP",24,37],["A","SWAP",23,37],["A","SWAP",22,37],["A","SWAP",21,37],["A","ADD",19,20,"-2"],["A","SWAP",20,37],["A","SCALE",19,"-1"],["A","ADD",37,19,"-1"],["A","LAMBDA",19,-1],["A","LAMBDA",20,-1],["A","LAMBDA",21,-1],["A","LAMBDA",22,-1],["A","LAMBDA",23,-1],["A","LAMBDA",24,-1],["A","LAMBDA",25,-1],["A","LAMBDA",26,-1],["A","LAMBDA",27,-1],["A","LAMBDA",28,-1],["A","LAMBDA",29,-1],["A","LAMBDA",30,-1],["A","LAMBDA",31,-1],["A","LAMBDA",32,-1],["A","LAMBDA",33,-1],["A","LAMBDA",34,-1],["A","LAMBDA",35,-1],["A","LAMBDA",36,-1],["A","LAMBDA",37,-1],["B","LAMBDA",38,1],["B","IDLE_ONE",74,[18]],["B","IDLE_ONE",75,[18]],["B","ADD",39,75,"-128"],["B","ADD",38,75,"64"],["B","SCALE",75,"-1"],["B","ADD",38,74,"128"],["B","SCALE",74,"-1"],["B","ADD",75,74,"2"],["B","ADD",38,39,"1/2"],["B","SCALE",39,"1/128"],["B","ADD",75,39,"-2"],["B","ADD",74,39,"-1"],["B","SCALE",38,"1/128"],["B","ADD",75,38,"2"],["B","ADD",74,38,"2"],["B","SWAP",38,39],["B","LAMBDA",38,-1],["B","LAMBDA",39,-1],["B","LAMBDA",40,-1],["B","LAMBDA",41,-1],["B","LAMBDA",42,-1],["B","LAMBDA",43,-1],["B","LAMBDA",44,-1],["B","LAMBDA",45,-1],["B","LAMBDA",46,-1],["B","LAMBDA",47,-1],["B","LAMBDA",48,-1],["B","LAMBDA",49,-1],["B","LAMBDA",50,-1],["B","LAMBDA",51,-1],["B","LAMBDA",52,-1],["B","LAMBDA",53,-1],["B","LAMBDA",54,-1],["B","LAMBDA",55,-1],["B","LAMBDA",56,-1],["B","LAMBDA",57,-1],["B","LAMBDA",58,-1],["B","LAMBDA",59,-1],["B","LAMBDA",60,-1],["B","LAMBDA",61,-1],["B","LAMBDA",62,-1],["B","LAMBDA",63,-1],["B","LAMBDA",64,-1],["B","LAMBDA",65,-1],["B","LAMBDA",66,-1],["B","LAMBDA",67,-1],["B","LAMBDA",68,-1],["B","LAMBDA",69,-1],["B","LAMBDA",70,-1],["B","LAMBDA",71,-1],["B","LAMBDA",72,-1],["B","LAMBDA",73,-1],["B","LAMBDA",74,-1],["B","LAMBDA",75,-1]],"ops_note":"QSELF(x, k): R[x] *= q^k, one paid rank-1 job on one register (new op; not in the retained alphabet)."} \ No newline at end of file diff --git a/research/p104-qself-owned-lowering/data/root_A_6936.json b/research/p104-qself-owned-lowering/data/root_A_6936.json new file mode 100644 index 0000000000..1f8c2e3152 --- /dev/null +++ b/research/p104-qself-owned-lowering/data/root_A_6936.json @@ -0,0 +1 @@ +{"n": 40, "N": 42, "X": [["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", "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"], ["1", "2", "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", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "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", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "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", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "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", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "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", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "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", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "2", "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", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "2", "2", "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", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "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", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "2", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "2", "2", "2", "2", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "2", "2", "2", "2", "2", "2", "2", "2", "-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", "2", "2", "2", "2", "2", "2", "2", "2", "2", "-1"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "2", "2", "2", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "2", "2", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "2", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "2", "0"], ["-1", "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", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0"]], "Y": [["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", "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"], ["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", "0", "0", "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"], ["1", "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", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "0", "0", "0", "0", "0", "0", "1", "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", "-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", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["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", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "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", "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"], ["2", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "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", "2", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "1"], ["3", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "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", "3", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "1"], ["1", "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", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "1", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0"], ["1", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "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", "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"], ["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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0"], ["1", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0"]], "stages": [{"units": [0, 1], "mask": [0, 1, 20, 21]}, {"units": [2, 3], "mask": [0, 1, 2, 20, 21, 22]}, {"units": [4, 5], "mask": [0, 1, 2, 3, 20, 21, 22, 23]}, {"units": [6, 7], "mask": [0, 1, 2, 3, 4, 20, 21, 22, 23, 24]}, {"units": [8, 9], "mask": [0, 1, 2, 3, 4, 5, 20, 21, 22, 23, 24, 25]}, {"units": [10, 11], "mask": [0, 1, 2, 3, 4, 5, 6, 20, 21, 22, 23, 24, 25, 26]}, {"units": [12, 13], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 20, 21, 22, 23, 24, 25, 26, 27]}, {"units": [14, 15], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 20, 21, 22, 23, 24, 25, 26, 27, 28]}, {"units": [16, 17], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]}, {"units": [24, 25], "mask": [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 30, 31, 32, 33, 34, 35, 36, 37, 38]}, {"units": [26, 27], "mask": [0, 11, 12, 13, 14, 15, 16, 17, 18, 20, 31, 32, 33, 34, 35, 36, 37, 38]}, {"units": [28, 29], "mask": [0, 12, 13, 14, 15, 16, 17, 18, 20, 32, 33, 34, 35, 36, 37, 38]}, {"units": [30, 31], "mask": [0, 13, 14, 15, 16, 17, 18, 20, 33, 34, 35, 36, 37, 38]}, {"units": [32, 33], "mask": [0, 14, 15, 16, 17, 18, 20, 34, 35, 36, 37, 38]}, {"units": [34, 35], "mask": [0, 15, 16, 17, 18, 20, 35, 36, 37, 38]}, {"units": [36, 37], "mask": [0, 16, 17, 18, 20, 36, 37, 38]}, {"units": [38, 39], "mask": [0, 17, 18, 20, 37, 38]}, {"units": [40, 41], "mask": [0, 18, 20, 38]}], "note": "t=0 direct sum of two chain roots, one stage variable each stage"} \ No newline at end of file diff --git a/research/p104-qself-owned-lowering/data/root_A_efree.json b/research/p104-qself-owned-lowering/data/root_A_efree.json new file mode 100644 index 0000000000..4a7fbe2fe2 --- /dev/null +++ b/research/p104-qself-owned-lowering/data/root_A_efree.json @@ -0,0 +1 @@ +{"n": 38, "N": 40, "X": [["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", "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"], ["1", "2", "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", "0", "0", "0", "0", "0", "0", "1", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "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", "0", "0", "0", "0", "0", "1", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "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", "0", "0", "0", "0", "1", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "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", "0", "0", "0", "1", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "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", "0", "0", "1", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "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", "0", "1", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "2", "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", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "2", "2", "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", "2", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "-1", "-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", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "2", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "2", "2", "2", "2", "2", "2", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "2", "2", "2", "2", "2", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "2", "2", "2", "2", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "2", "2", "2", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "2", "2", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "1", "2", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "2", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "2", "2"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "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", "2"], ["-1", "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", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1"]], "Y": [["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", "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"], ["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", "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"], ["1", "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", "0", "0", "0", "0", "0", "1", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "0", "0", "0", "0", "1", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "0", "0", "0", "1", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "0", "0", "1", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "0", "1", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["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", "0", "1", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "-1", "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", "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"], ["2", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-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", "2", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1"], ["1", "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", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0"], ["1", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0"], ["1", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0"], ["1", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "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", "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"], ["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", "1", "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", "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", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1"]], "stages": [{"units": [0, 1], "mask": [0, 1, 19, 20]}, {"units": [2, 3], "mask": [0, 1, 2, 19, 20, 21]}, {"units": [4, 5], "mask": [0, 1, 2, 3, 19, 20, 21, 22]}, {"units": [6, 7], "mask": [0, 1, 2, 3, 4, 19, 20, 21, 22, 23]}, {"units": [8, 9], "mask": [0, 1, 2, 3, 4, 5, 19, 20, 21, 22, 23, 24]}, {"units": [10, 11], "mask": [0, 1, 2, 3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25]}, {"units": [12, 13], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 19, 20, 21, 22, 23, 24, 25, 26]}, {"units": [14, 15], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 19, 20, 21, 22, 23, 24, 25, 26, 27]}, {"units": [16, 17], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]}, {"units": [22, 23], "mask": [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 29, 30, 31, 32, 33, 34, 35, 36, 37]}, {"units": [24, 25], "mask": [0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 30, 31, 32, 33, 34, 35, 36, 37]}, {"units": [26, 27], "mask": [0, 12, 13, 14, 15, 16, 17, 18, 19, 31, 32, 33, 34, 35, 36, 37]}, {"units": [28, 29], "mask": [0, 13, 14, 15, 16, 17, 18, 19, 32, 33, 34, 35, 36, 37]}, {"units": [30, 31], "mask": [0, 14, 15, 16, 17, 18, 19, 33, 34, 35, 36, 37]}, {"units": [32, 33], "mask": [0, 15, 16, 17, 18, 19, 34, 35, 36, 37]}, {"units": [34, 35], "mask": [0, 16, 17, 18, 19, 35, 36, 37]}, {"units": [36, 37], "mask": [0, 17, 18, 19, 36, 37]}, {"units": [38, 39], "mask": [0, 18, 19, 37]}], "note": "E-free: direct sum of two 19-field chain roots; thin units t1 (y.x=1) and t2 per chain"} \ No newline at end of file diff --git a/research/p104-qself-owned-lowering/data/word_6936.json.gz b/research/p104-qself-owned-lowering/data/word_6936.json.gz new file mode 100644 index 0000000000..d93e67ca76 Binary files /dev/null and b/research/p104-qself-owned-lowering/data/word_6936.json.gz differ diff --git a/research/p104-qself-owned-lowering/dual_certificate.py b/research/p104-qself-owned-lowering/dual_certificate.py new file mode 100644 index 0000000000..5be2a45930 --- /dev/null +++ b/research/p104-qself-owned-lowering/dual_certificate.py @@ -0,0 +1,129 @@ +"""Independent backward covectors with exact integer dyadic coefficients. + +For each q in {1,i,-1,-i}, D variables remain formal. The four evaluations +are injective on Q(i)[q]/(q^4-1); this is not sampled-D verification. +No forward replay or its arithmetic implementation is imported. +Prepared for @CubeJerry with substantial OpenAI assistance. Apache-2.0. +""" +from fractions import Fraction + + +def require(test, message): + if not test: + raise ValueError(message) + + +def norm(a, b, s): + while s and not (a & 1 or b & 1): + a //= 2 + b //= 2 + s -= 1 + return a, b, s + + +ONE = (1, 0, 0) +ZERO = (0, 0, 0) +IPHASE = ((1, 0, 0), (0, 1, 0), (-1, 0, 0), (0, -1, 0)) + + +def scalar(text): + f = Fraction(text) + d = f.denominator + require(d & (d-1) == 0, 'dyadic dual scalar') + return f.numerator, 0, d.bit_length()-1 + + +def plus(u, v): + a, b, s = u + c, d, t = v + w = max(s, t) + return norm((a << (w-s)) + (c << (w-t)), (b << (w-s)) + (d << (w-t)), w) + + +def times(u, v): + a, b, s = u + c, d, t = v + return norm(a*c-b*d, a*d+b*c, s+t) + + +def stretch(poly, c=ONE, mask=0): + ans = {} + for (output, old), coefficient in poly.items(): + require(not old & mask, 'dual repeated D factor') + value = times(coefficient, c) + if value != ZERO: + ans[(output, old | mask)] = value + return ans + + +def sum_poly(left, right): + ans = dict(left) + for key, value in right.items(): + value = plus(ans.get(key, ZERO), value) + if value == ZERO: + ans.pop(key, None) + else: + ans[key] = value + return ans + + +def certificate(caller): + receipts = [] + for character in range(4): + # At the output boundary, each output covector is independent. + C = [{(r, 0): ONE} for r in range(caller['roles'])] + peak = 0 + q = IPHASE[character] + qi = IPHASE[-character % 4] + for event in reversed(caller['events']): + if event[0] == 'J': + mask = 1 << (event[1]-1) + u, v, x, y = event[2] + for r in (u, v, x, y): + C[r] = stretch(C[r], mask=mask) + # Transposes of the two triangular HOST2 updates. + C[u] = sum_poly(C[u], stretch(C[v], qi)) + C[y] = sum_poly(C[y], stretch(C[x], times(scalar(caller['types']['A']['alpha2']), q))) + a, b, alpha, beta = event[3] + al, be = scalar(alpha), scalar(beta) + # The dense HOST 2x2 block is transposed, not inverted. + ca = sum_poly(C[a], stretch(C[b], times(be, qi))) + cb = sum_poly(stretch(C[a], times(al, q)), stretch(C[b], plus(ONE, times(al, be)))) + C[a], C[b] = stretch(ca, mask=mask), stretch(cb, mask=mask) + peak = max(peak, sum(len(poly) for poly in C)) + require(peak <= 500000, 'bounded independent dual replay') + continue + op, x = event[1:3] + if op == 'ADD': + y = event[3] + C[y] = sum_poly(C[y], stretch(C[x], scalar(event[4]))) + elif op == 'QUERY': + y = event[3] + C[y] = sum_poly(C[y], stretch(C[x], IPHASE[(character*event[4]) % 4])) + elif op == 'SCALE': + C[x] = stretch(C[x], scalar(event[3])) + elif op == 'SWAP': + C[x], C[event[3]] = C[event[3]], C[x] + elif op == 'QSELF': + C[x] = stretch(C[x], IPHASE[(character*event[3]) % 4]) + elif op == 'IDLE_ONE': + mask = sum(1 << (k-1) for k in event[3]) + require(mask.bit_count() == len(event[3]), 'dual unique idle stages') + C[x] = stretch(C[x], mask=mask) + elif op == 'LAMBDA': + # Exact character value of ((1+s i)+(1-s i)q^2)/2. + C[x] = stretch(C[x], ONE if character % 2 == 0 else IPHASE[event[3] % 4]) + else: + raise ValueError('unsupported dual source event') + peak = max(peak, sum(len(poly) for poly in C)) + require(peak <= 500000, 'bounded independent dual replay') + for ty in ('A', 'B'): + t = caller['types'][ty] + for j, diagonal in enumerate(t['diagonal']): + r = t['offset'] + j + mask = sum(bit << k for k, bit in enumerate(diagonal[2:])) + target = {(r, mask): IPHASE[(character*diagonal[0]) % 4]} + require(C[r] == target, 'backward arbitrary-output covector endpoint') + receipts.append({'q_character_power_of_i': character, 'peak_terms': peak, + 'independent_outputs': len(C), 'formal_D_variables': 18}) + return receipts diff --git a/research/p104-qself-owned-lowering/invoice.py b/research/p104-qself-owned-lowering/invoice.py new file mode 100644 index 0000000000..a576bd0e00 --- /dev/null +++ b/research/p104-qself-owned-lowering/invoice.py @@ -0,0 +1,211 @@ +"""Complete source invoice and positive ordinary-cost comparison. + +Local algebra/native correctness is inherited, not inferred from these counts. +Prepared for @CubeJerry with substantial OpenAI assistance. Apache-2.0. +""" +from collections import Counter +from fractions import Fraction + + +def require(test, message): + if not test: + raise ValueError(message) + + +def space(vectors): + span = {0} + for v in vectors: + require(type(v) is int and 0 < v < 512 and v not in span, 'independent nine-axis frame') + span |= {x ^ v for x in span} + return span + + +def local_invoice(word): + n = word['public'] + frames = word['frames'] + spans = [space(f) for f in frames] + ranks = list(map(len, frames)) + hosted = word['hosted'] + require(len(word['live']) == len(set(word['live'])) == 104 and + len(hosted['X2']) == len(hosted['Y2']) == 96, 'exact first/second main list sizes') + main = set(word['live']) | {r+112 for r in word['live']} | set(hosted['X2']) | set(hosted['Y2']) + require(len(main) == 400 and len(hosted['Dports']) == 96, '104 first pairs and 96 second pairs') + require(len(word['ports']) == len(set(word['ports'])) == len(word['live']) == 104, 'literal native port inventory') + require(len(word['initial']) == len(word['final']) == n, 'literal native boundaries') + helpers = Counter() + for r in set(range(n))-main: + a, b = word['initial'][r], word['final'][r] + require(spans[a] < spans[b], 'positive productive helper endpoint') + helpers[ranks[b]-ranks[a]] += 1 + current = word['initial'][:] + [None]*word['owned_fields'] + live = set() + paid = Counter() + lifetimes = peak = rises = rise_mass = 0 + allowance = reviewed_scalar = 0 + for event in word['program']: + op, r = event[:2] + if op == 'INIT': + require(n <= r < len(current) and r not in live and current[r] is None, 'local fresh owned initialization') + live.add(r); current[r] = event[2] + lifetimes += 1; peak = max(peak, len(live)); allowance += 2 + elif op == 'CLEAR': + require(r in live and current[r] == event[2], 'local current owned clearance') + live.remove(r); current[r] = None; allowance += 2 + elif op == 'MOVE': + a, b, owned = event[2:] + require(current[r] == a and ((r in live) == owned), 'actual MOVE ownership and chart') + require(spans[a] < spans[b] or spans[b] < spans[a], 'strict nested MOVE') + rank = abs(ranks[b]-ranks[a]); paid[rank] += 1 + if owned and ranks[b] > ranks[a]: + rises += 1; rise_mass += rank + current[r] = b + elif op in ('ADD', 'COPY', 'SCALE'): + require(current[r] == event[-1] and (r < n or r in live), 'local live scalar destination') + if op != 'SCALE': + src = event[2] + require(src != r and current[src] == current[r] and (src < n or src in live), 'local live scalar source') + f = Fraction(event[-2]); a, d = abs(f.numerator), f.denominator + require(a > 0, 'nonzero local coefficient') + if op == 'SCALE': + allowance += 2*(abs(a.bit_length()-d.bit_length())+int(f < 0)) + reviewed_scalar += 4*(a.bit_length()+d.bit_length()+1) + else: + allowance += 2*(3+a.bit_length()-1+a.bit_count()+d.bit_length()-1) + reviewed_scalar += 4*(a.bit_length()+a.bit_count()+d.bit_length()+1) + else: + raise ValueError('unexpected local opcode') + require(not live and current[:n] == word['final'], 'local complete lifetime/chart return') + routes = 1000*(sum(paid.values())+2*sum(helpers.values())+208+2*96+4*104+4*96+4*lifetimes) + return dict(public=n, helpers=helpers, paid=paid, lifetimes=lifetimes, peak_owned=peak, + owned_labels=word['owned_fields'], owned_rises=rises, owned_rise_mass=rise_mass, + allowance=allowance, reviewed_scalar=reviewed_scalar, routes=routes, + allowance_per_call=allowance+routes, reviewed_per_call=reviewed_scalar+routes) + + +def outer_invoice(caller, local): + targets = Counter({r: 18*n for r, n in local['helpers'].items()}) + paid = Counter({r: 18*n for r, n in local['paid'].items()}) + for ty in ('A', 'B'): + t = caller['types'][ty]; multiplicity = len(t['ports']) + for d in t['diagonal']: + targets[d[0] % 2 + 8*sum(d[2:])] += multiplicity + for e in caller['events']: + if e[0] != ty: + continue + if e[1] in ('QUERY', 'QSELF'): + paid[1] += multiplicity + elif e[1] == 'IDLE_ONE': + paid[8*len(e[3])] += multiplicity + return targets, paid + + +def exchanges(selected): + require(len(set(selected)) == len(selected), 'adapter distinct selected axes') + return len(set(selected)-set(range(len(selected)))) + + +def caller_cost(caller): + out = dict(caller_envelope=0, thin_lifecycle=0, qself_extra_lifecycle=0, + main_normalizers=0, main_maps=0, idle_maps=0, query_maps=0, + lambda_recharge=0) + for ty in ('A', 'B'): + t = caller['types'][ty]; ports = len(t['ports']); roles = t['roles'] + events = [e for e in caller['events'] if e[0] in (ty, 'J')] + out['caller_envelope'] += 32*roles*ports*len(events) + out['main_normalizers'] += 26*roles*ports + for qp, zero, *mask in t['diagonal']: + axes = ([0] if qp else []) + [a for k, yes in enumerate(mask, 1) if yes for a in range(9+8*(k-1), 9+8*k)] + out['main_maps'] += 1000*ports*(2*exchanges(axes)+2*bool(qp)+int(qp == -1)) + for e in events: + if e[0] == 'J': + continue + op = e[1] + if op in ('QUERY', 'QSELF'): + out['thin_lifecycle'] += 16*ports + out['query_maps'] += 1000*ports*(2+int(e[-1] == -1)) + if op == 'QSELF': + # Additional explicit charge: four lifecycle/scalar operations, + # each at the inherited 32-unit ordinary gate envelope. + out['qself_extra_lifecycle'] += 128*ports + elif op == 'IDLE_ONE': + axes = [a for k in e[3] for a in range(9+8*(k-1), 9+8*k)] + out['idle_maps'] += 2000*ports*exchanges(axes) + elif op == 'LAMBDA': + out['lambda_recharge'] += 1000*ports + # The extra LAMBDA reading is deliberately separate and charged twice below. + out['raw_rest'] = sum(v for k, v in out.items() if k != 'lambda_recharge') + return out + + +def verify(old, new, word): + require(old['types']['A']['ports'] == new['types']['A']['ports'] == word['hosted']['Dports'], 'same actual 96 second-plane ports') + require(old['types']['B']['ports'] == new['types']['B']['ports'], 'same remaining eight ports') + require(new['types']['A']['roles'] == new['types']['B']['roles'] == 38, 'E-free main role count') + require(all(sum(d[2:]) > 0 for t in new['types'].values() for d in t['diagonal']), 'no E or other empty-mask main target') + old_j = [e for e in old['events'] if e[0] == 'J'] + new_j = [e for e in new['events'] if e[0] == 'J'] + require([e[1] for e in old_j] == [e[1] for e in new_j] == list(range(1, 19)), 'same 18 complete local calls') + # Bind every concrete local public field at every new source contact. + mains = {(ty, role, port) for ty, t in new['types'].items() + for role in range(t['offset'], t['offset']+t['roles']) for port in t['ports']} + helpers = set() + for e in new_j: + fields = {} + second = dict(zip(word['hosted']['Dports'], zip(word['hosted']['X2'], word['hosted']['Y2']))) + for port in new['types']['A']['ports']: + first = word['live'][port]; x, y = second[port] + for field, role in zip((first, first+112, x, y), e[2]): + fields[field] = ('main', 'A', role, port) + for port in new['types']['B']['ports']: + first = word['live'][port] + for field, role in zip((first, first+112), e[3][:2]): + fields[field] = ('main', 'B', role, port) + require(len(fields) == 400 and len(set(fields.values())) == 400, 'all concrete source mains map injectively') + for field in range(word['public']): + if field not in fields: + target = ('helper', e[1], field) + require(target not in helpers, 'fresh arbitrary helper input for each local invocation') + helpers.add(target); fields[field] = target + require(set(fields) == set(range(word['public'])) and len(set(fields.values())) == word['public'], 'complete concrete local public map') + require(len(mains) == 3952 and len(helpers) == 19098, 'complete distinct main/helper inventory') + # Exact B stream equality after the public-role offset changes by two. + def bstream(c): + off = c['types']['B']['offset']; result = [] + for e in c['events']: + if e[0] != 'B': + continue + z = e[:]; z[2] -= off + if e[1] in ('ADD', 'SWAP', 'QUERY'): + z[3] -= off + result.append(z) + return result + require(bstream(old) == bstream(new), 'whole B stream unchanged after offset relabeling') + require(old['types']['B']['diagonal'] == new['types']['B']['diagonal'], 'B targets unchanged') + local = local_invoice(word) + oldT, oldP = outer_invoice(old, local) + newT, newP = outer_invoice(new, local) + for rank in set(oldT)|set(oldP)|set(newT)|set(newP): + need = 192 if rank == 1 else 0 + require(oldT[rank]-newT[rank] == need and oldP[rank]-newP[rank] == need, 'complete rankwise target/paid delta') + a, b = caller_cost(old), caller_cost(new) + old_upper = 18*local['reviewed_per_call'] + a['raw_rest'] + new_upper = 18*local['reviewed_per_call'] + b['raw_rest'] + scale = 18*word['public']*104 # #6936's explicit per-input 1125 conversion reading + require(old_upper == 832255648, 'exact reconstruction of predecessor reviewed raw count') + require(old_upper+a['lambda_recharge']+scale == 847550640, 'exact predecessor double-charge reading') + require(new_upper+b['lambda_recharge']+scale < 10**9, 'positive complete new conditional ordinary budget') + return {'local_source_counts': local, + 'old_targets': dict(sorted(oldT.items())), 'old_paid': dict(sorted(oldP.items())), + 'new_targets': dict(sorted(newT.items())), 'new_paid': dict(sorted(newP.items())), + 'target_count': sum(newT.values()), 'paid_count': sum(newP.values()), + 'rank_mass_surplus': sum(r*(newT[r]-newP[r]) for r in set(newT)|set(newP)), + 'new_paid_rank_mass': sum(r*n for r,n in newP.items()), + 'old_caller_cost': a, 'new_caller_cost': b, + 'old_reviewed_raw': old_upper, 'new_reviewed_raw': new_upper, + 'per_call_scale_recharge': scale, + 'new_double_recharged_raw': new_upper+b['lambda_recharge']+scale, + 'ordinary_margin': 10**9-new_upper-b['lambda_recharge']-scale, + 'owned_query_bank_count': 1, 'old_outer_query_lifetimes': 608, + 'new_outer_query_lifetimes': 416, 'new_qself_lifetimes': 192, + 'selected_kappa_change': False, + 'status': 'Conditional source invoice; no native, rounded, physical fullcaller or supplier admission follows from counting.'} diff --git a/research/p104-qself-owned-lowering/operator_ring.py b/research/p104-qself-owned-lowering/operator_ring.py new file mode 100644 index 0000000000..20acae64a1 --- /dev/null +++ b/research/p104-qself-owned-lowering/operator_ring.py @@ -0,0 +1,140 @@ +"""Exact forward certificate over Q(i)[q,D_1,...,D_18]/(q^4-1). + +This verifies an operator identity, not values at sampled D substitutions. +Prepared for @CubeJerry with substantial OpenAI assistance. Apache-2.0. +""" +from fractions import Fraction as F +import hashlib +import json + + +def need(ok, why): + if not ok: + raise ValueError(why) + + +def validate(caller): + need(caller['schema'] == 'mixed-root-caller/1', 'mixed caller schema') + need(caller['stages'] == 18 and caller['ambient_rank'] == 153, 'fixed stage/ambient family') + occupied = set() + ports = [] + for ty in ('A', 'B'): + t = caller['types'][ty] + roles = set(range(t['offset'], t['offset'] + t['roles'])) + need(not occupied & roles and len(t['diagonal']) == len(roles), 'complete disjoint roles') + occupied |= roles + ports += t['ports'] + for dg in t['diagonal']: + need(len(dg) == 20 and dg[:2] == [-1, 0] and set(dg[2:]) <= {0, 1}, 'target domain') + need(occupied == set(range(caller['roles'])), 'complete arbitrary input range') + need(sorted(ports) == list(range(104)), 'complete disjoint port partition') + need(F(caller['types']['A']['alpha2']) == -1 and F(caller['types']['A']['beta2']) == 0, + 'exact HOST2 coefficients') + stages = [] + for e in caller['events']: + if e[0] == 'J': + need(len(e) == 4 and len(e[2]) == 4 and len(e[3]) == 4, 'joint contact record') + stages.append(e[1]) + for ty, touched in (('A', e[2]), ('B', e[3][:2])): + t = caller['types'][ty] + need(len(set(touched)) == len(touched) and all(t['offset'] <= r < t['offset']+t['roles'] for r in touched), 'joint distinct fields') + need(F(e[3][2]) == -1 and F(e[3][3]) == F(1, 2), 'exact hosted gauge') + continue + ty, op = e[:2] + need(ty in ('A', 'B'), 'event tag') + t = caller['types'][ty] + arity = {'ADD': 5, 'SWAP': 4, 'SCALE': 4, 'QUERY': 5, 'QSELF': 4, + 'LAMBDA': 4, 'IDLE_ONE': 4} + need(op in arity and len(e) == arity[op], 'exact opcode arity') + touched = e[2:4] if op in ('ADD', 'SWAP', 'QUERY') else e[2:3] + need(all(type(r) is int and t['offset'] <= r < t['offset']+t['roles'] for r in touched), 'source role domain') + if len(touched) == 2: + need(touched[0] != touched[1], 'distinct scalar/query roles') + if op in ('ADD', 'SCALE'): + c = F(e[-1]) + need(c and c.denominator & (c.denominator-1) == 0, 'current dyadic coefficient') + elif op in ('QUERY', 'QSELF', 'LAMBDA'): + need(e[-1] in (-1, 1), 'signed operator orientation') + elif op == 'IDLE_ONE': + need(e[3] and len(e[3]) == len(set(e[3])) and all(type(k) is int and 1 <= k <= 18 for k in e[3]), 'whole idle stage set') + need(stages == list(range(1, 19)), 'fresh ordered joint stages') + + +def multiply(row, a=F(1), b=F(0), q=0, d=0, modulus=4): + """A row key is (independent input, q exponent, square-free D mask).""" + out = {} + for (j, p, mask), (x, y) in row.items(): + need(not mask & d, 'repeated D factor exceeds the declared square-free domain') + c = (a*x-b*y, a*y+b*x) + if c != (0, 0): + out[(j, (p+q) % modulus, mask | d)] = c + return out + + +def add(a, b): + out = a.copy() + for k, (x, y) in b.items(): + u, v = out.get(k, (0, 0)) + c = (x+u, y+v) + if c == (0, 0): + out.pop(k, None) + else: + out[k] = c + return out + + +def expected(caller): + result = [None] * caller['roles'] + for ty in ('A', 'B'): + t = caller['types'][ty] + for j, dg in enumerate(t['diagonal']): + r = t['offset'] + j + result[r] = {(r, dg[0] % 4, sum(bit << k for k, bit in enumerate(dg[2:]))): (F(1), F(0))} + return result + + +def replay(caller, modulus=4): + validate(caller) + R = [{(j, 0, 0): (F(1), F(0))} for j in range(caller['roles'])] + peak = 0 + peak_row = 0 + for e in caller['events']: + if e[0] == 'J': + d = 1 << (e[1]-1) + src, dst, x2, y2 = e[2] + R[dst] = add(R[dst], multiply(R[src], q=-1, modulus=modulus)) + R[x2] = add(R[x2], multiply(R[y2], a=F(caller['types']['A']['alpha2']), q=1, modulus=modulus)) + for r in e[2]: + R[r] = multiply(R[r], d=d, modulus=modulus) + s, t, al, be = e[3] + a, b = F(al), F(be) + # Simultaneous HOST update uses both old rows. + ns = multiply(add(R[s], multiply(R[t], a=a, q=1, modulus=modulus)), d=d, modulus=modulus) + nt = multiply(add(multiply(R[s], a=b, q=-1, modulus=modulus), multiply(R[t], a=1+a*b, modulus=modulus)), d=d, modulus=modulus) + R[s], R[t] = ns, nt + else: + op, x = e[1:3] + if op == 'ADD': + R[x] = add(R[x], multiply(R[e[3]], a=F(e[4]), modulus=modulus)) + elif op == 'SCALE': + R[x] = multiply(R[x], a=F(e[3]), modulus=modulus) + elif op == 'SWAP': + R[x], R[e[3]] = R[e[3]], R[x] + elif op == 'QUERY': + R[x] = add(R[x], multiply(R[e[3]], q=e[4], modulus=modulus)) + elif op == 'QSELF': + R[x] = multiply(R[x], q=e[3], modulus=modulus) + elif op == 'IDLE_ONE': + R[x] = multiply(R[x], d=sum(1 << (k-1) for k in e[3]), modulus=modulus) + elif op == 'LAMBDA': + R[x] = add(multiply(R[x], a=F(1, 2), b=F(e[3], 2), modulus=modulus), + multiply(R[x], a=F(1, 2), b=F(-e[3], 2), q=2, modulus=modulus)) + peak = max(peak, sum(map(len, R))) + peak_row = max(peak_row, max(map(len, R))) + need(peak <= 500000, 'bounded exact replay term ceiling') + need(R == expected(caller), 'exact formal caller endpoint on every input coefficient') + encoded = [[[list(k), str(a), str(b)] for k, (a, b) in sorted(row.items())] for row in R] + return {'events': len(caller['events']), 'independent_inputs': len(R), + 'D_variables': 18, 'q_relation': 'q^4=1', 'peak_terms': peak, + 'peak_row_terms': peak_row, 'endpoint_terms': sum(map(len, R)), + 'endpoint_sha256': hashlib.sha256(json.dumps(encoded, separators=(',', ':')).encode()).hexdigest()} diff --git a/research/p104-qself-owned-lowering/owned_lowering.py b/research/p104-qself-owned-lowering/owned_lowering.py new file mode 100644 index 0000000000..db42bd048d --- /dev/null +++ b/research/p104-qself-owned-lowering/owned_lowering.py @@ -0,0 +1,119 @@ +"""Exact QSELF source expansion into the unchanged lifecycle Event alphabet. + +This is finite-template construction. It does not run Gaussian payloads or +claim that an opaque Python callback is a physical implementation. +Prepared for @CubeJerry with substantial OpenAI assistance. Apache-2.0. +""" +from collections import Counter +import hashlib +import importlib.util +import json +from pathlib import Path +import sys + +ROOT = Path(__file__).resolve().parent +spec = importlib.util.spec_from_file_location('qself_retained_ir', ROOT/'vendor/source_ir.py') +IR = importlib.util.module_from_spec(spec) +sys.modules[spec.name] = IR +spec.loader.exec_module(IR) + + +def require(test, message): + if not test: + raise ValueError(message) + + +def expansion(caller, site, port, bank=('outer-query-bank',)): + require(type(site) is int and 0 <= site < len(caller['events']), 'actual QSELF source site') + raw = caller['events'][site] + require(len(raw) == 4 and raw[0] == 'A' and raw[1] == 'QSELF' and raw[3] == -1, 'actual current QSELF source class') + require(type(port) is int and port in caller['types']['A']['ports'], 'actual source type port') + owner = ('main', raw[0], raw[2], port) + require(owner != bank, 'owned bank disjoint from public owner') + token = ('qself6937', site, port, tuple(raw)) + events = (IR.Event('INIT', (bank,), token), + IR.Event('COPY', (bank, owner), token), + IR.Event('SERVICE', (bank,), ('query-in',)+token), + IR.Event('PAID', (bank,), token, 1), + IR.Event('SERVICE', (bank,), ('query-out',)+token), + IR.Event('SERVICE', (owner, bank), ('SWAP',)+token), + IR.Event('CLEAR', (bank,), token)) + # This one-input rank-one fragment is a structural/lifetime check. Its + # target is NOT added to the enclosing caller's productive invoice. + unit = IR.Unit('owned-QSELF-fragment', ((owner, 1),), (bank,), events).check() + return unit + + +def check_expansion(unit, caller, site, port): + unit.check() + target = expansion(caller, site, port) + require(unit.roles == target.roles and unit.owned == target.owned and unit.events == target.events, + 'exact source-preserving QSELF expansion, including ordered SWAP and clearance') + + +def inventory(caller, word): + sites = [(i, e) for i, e in enumerate(caller['events']) if len(e) > 1 and e[1] == 'QSELF'] + require(sites == [(457, ['A', 'QSELF', 0, -1]), (575, ['A', 'QSELF', 19, -1])], 'complete pinned QSELF census') + records = [] + counts = Counter() + for site, raw in sites: + for port in caller['types']['A']['ports']: + unit = expansion(caller, site, port) + check_expansion(unit, caller, site, port) + counts.update(e.op for e in unit.events) + records.append([site, port, [[e.op, e.fields, e.token, e.rank] for e in unit.events]]) + require(len(records) == 192 and counts['PAID'] == counts['INIT'] == counts['COPY'] == counts['CLEAR'] == 192, + 'one complete copied-bank lifetime and one rank-one request per instance') + # The old local source lowerer accepts the new native word structurally. + # This checks operand/chart/lifetime preservation; it is not a table replay. + events, local = IR.current_local(word) + require(local['events'] == 71144 and local['owned_lifetimes'] == 54 and local['peak_live'] == 43, + 'source native typed chronology') + unit = expansion(caller, sites[0][0], caller['types']['A']['ports'][0]) + names = {f: ('actual-remapped-port', j) for j, f in enumerate([unit.roles[0][0], unit.owned[0]])} + remapped = tuple(IR.remap(e, names, ('compiled-fragment', 17)) for e in unit.events) + lifted = IR.Unit('remapped-fragment', ((names[unit.roles[0][0]], 1),), (names[unit.owned[0]],), remapped).check() + require(lifted.events[5].fields == (names[unit.roles[0][0]], names[unit.owned[0]]), 'actual ordered remapped SWAP') + require(lifted.events[3].rank == 1 and lifted.events[3].fields == (names[unit.owned[0]],), 'actual owned paid recipient') + return {'sites': [i for i, _ in sites], 'source_roles': [e[2] for _, e in sites], + 'instances': len(records), 'IR_events': sum(counts.values()), 'event_counts': dict(counts), + 'private_query_banks_per_live_unit': 1, 'new_productive_credit': 0, + 'patch_sha256': hashlib.sha256(json.dumps(records, separators=(',', ':')).encode()).hexdigest(), + 'local_typed_events': len(events), 'local_source_events': local['events'], + 'local_owned_lifetimes': local['owned_lifetimes'], 'local_peak_owned': local['peak_live'], + 'SERVICE_registry_installed': False, + 'dispatch_scope': 'Relative typed-IR expansion only. New qself6937 tokens need an exact provider/table registry and header/format binding; old source-specific binders are not reused implicitly.', + 'physical_fullcaller_executed': False}, records + + +def adapter_records(caller, word, bases, omit_translation=False, omit_inverse=False): + by_port = {row['port']: row for row in bases['records']} + require(sorted(by_port) == list(range(104)), 'complete basis-port dictionary') + checks = 0 + for port in caller['types']['A']['ports']: + row = by_port[port] + q = row['q']; basis = row['basis'] + require(q == word['ports'][port] and basis[0] == q and len(basis) == 9, 'actual native Q source and basis') + require(all(0 < v < 512 for v in basis), 'nine-axis adapter domain') + require(all((a & b).bit_count() % 2 == (i == j) + for i, a in enumerate(basis) for j, b in enumerate(basis)), 'exact orthogonal basis') + def B(x): + return sum(((a & x).bit_count() % 2) << i for i, a in enumerate(basis)) + def inverse(y): + x = 0 + for i, a in enumerate(basis): + if y >> i & 1: + x ^= a + return x + require(B(q) == 1, 'q maps to positive selected coordinate') + for frequency in range(512): + # Polynomial/spectral equation for every one-column frequency. + parity = (q & frequency).bit_count() % 2 + require((B(frequency) if omit_inverse else inverse(B(frequency))) == frequency, 'exact inverse ambient basis return') + require((B(frequency) & 1) == parity, 'exact positive central phase after conjugation') + require((parity+(0 if omit_translation else 2)*parity) % 4 == (-parity) % 4, 'Q^-1 includes Q^2 translation with exact phase') + checks += 1 + return {'new_ports': len(caller['types']['A']['ports']), 'exact_one_column_phase_equations': checks, + 'nine_axis_maps_per_QSELF': 2, 'translations_per_QSELF': 1, + 'all_positive_columns': 'Proved by exact tensor identity in PROOF.md, not inferred from these finite checks.', + 'provider_status': 'Actual tape execution, common precision, signed range and numerical return remain inherited contracts.'} diff --git a/research/p104-qself-owned-lowering/reference/FINITE-PRECOMPILATION.md b/research/p104-qself-owned-lowering/reference/FINITE-PRECOMPILATION.md new file mode 100644 index 0000000000..4badb40f09 --- /dev/null +++ b/research/p104-qself-owned-lowering/reference/FINITE-PRECOMPILATION.md @@ -0,0 +1,313 @@ +# Finite precompilation of a mixed-target rule + +Status: constructive bridge under the precise native hypotheses below, +independently audited in `../transfer-audit/AUDIT.md`. This is a written +argument, not a formal proof or a completed integer-multiplication admission. +The companion finite scheduler checks actual integer flow and ordering. +The original immediate-normalization BIT interface failed hypothesis 3. +`../bit/DELAYED-COVER-BRIDGE.md` supplies the distinct delayed-cover +implementation, with a finite local-ring check and the native binding in +`../bit/BIT-P3-NATIVE-BINDING.json`. Its fixed rational cover routes are a +costed program schema, not dense coordinate gates in a plain native word. + +Substantial OpenAI assistance. Apache-2.0. The mixed-target asymptotic flow is +Jacob Alan Sussman's Theorem 1G, PR4268, with the detailed proof at commit +`563b4e6e913625637f36ba7869bf5fcd0dd4975a` of +[`wht-power-saving-lean`](https://github.com/jacobalansussman/wht-power-saving-lean). +The source, exact scheduling code and notices are preserved under `sources/`. +The contribution proposed here is clearing the finite flow into a single +uniform native supplier before applying the inherited outer theorem. + +## 1. What needs to be assumed + +Let a job of rank `s` apply a specified tensor operator to `s` selected +coordinate blocks of one array, fixing all other coordinates. A block has +an arbitrary positive tensor multiplicity `f`. A completed rank `s` job +therefore acts on `s*f` axes. All productive inputs are arbitrary. + +Fix one mixed unit with productive targets `W_k` of ranks `k`, a chronological +list of paid child ranks `r_j`, and a finite number of scalar and routing +passes. These assumptions are required, separately from the moment inequality: + +1. **An all-column native word.** At every integer column count `c`, the unit + computes exactly its independent rank `k*c` output jobs. Its paid rounds + are rank `r_j*c` jobs in the stated order. All borrowed data return to the + declared endpoint, and owned storage is explicitly initialized and erased. + Its finite operation count is uniform in `c`. +2. **Disjoint splitting and spectators.** A rank `a+b` job is a rank `a` job + followed by a rank `b` job on disjoint coordinates. The resulting programs + preserve arbitrary complete spectator fields and accept arbitrary data. +3. **Whole-job adapters.** Any job passed between two units has an explicitly + priced, permitted embedding into its destination. For the intended complex + application these are fixed monomial binary address maps and unit quadratic + phases, together with role permutations. The adapters must work at every + tensor multiplicity. Rank equality by itself is insufficient. +4. **Finite-program closure.** A finite composition of these words and + adapters is again a permitted finite supplier. Constantly many owned fields + may be supplied with their full cost and no productive output credit. + The eventual ordinary recursion must have the same arbitrary-input, + restoration, scalar and precision interface as the retained supplier. + +Put `m=max{k:W_k>0}`, `k_min=min{k:W_k>0}`, and +`r_max=max{r_j}`. Require `r_max g*S`, keeps one +external weight throughout the entire finite circuit, and lowers only its +final rank-one leaves. All rational matchers, role routes and their inverses +are fixed before choosing the odd prime and its exclusions. Every route +uses complete equal-multiplicity cover fibers and the retained, costed row +permutation primitive. This gives the same finite DAG argument in the +rational-cover program category. The BIT binding supplies the actual native +projectors; a rank count alone would not provide this implementation. + +## 2. Proposed conclusion + +Suppose the preceding hypotheses hold and the mixed balance has root +`tau` in `(0,1)`: + +``` +sum_j r_j^tau = sum_k W_k k^tau. +``` + +For every `z` with `tau=2`, a fixed number `B_N` of productive arrays, +and only rank-one paid children, whose number `P_N` satisfies + +``` +P_N < B_N * N^z. +``` + +Every productive output is the full rank-`N` job. The construction may have +an enormous finite scalar word, role inventory and owned-storage requirement. +Those quantities affect constants and the eventual input threshold. They are +not omitted and are not credited as extra output jobs. + +If this uniform supplier is admitted under the retained native, precision and +fixed-tape premises, the existing uniform recursion applies directly. A new +dynamic RAM-to-Turing-machine simulation is not being assumed here. + +## 3. The integer lockstep flow at a fixed rank + +This is the part of Theorem 1G used by the compiler. At one fixed top rank +`N`, its units, source jobs and exit jobs have integer multiplicities. +For a multi-index `a` on the target types define + +``` +c(a) = product_k k^(a_k), +u(a) = multinomial(|a|;a) * product_k W_k^(a_k). +``` + +The exact Pascal identity is + +``` +u(b) = sum_{k:b_k>0} W_k*u(b-e_k). +``` + +Let `G` be the largest `|a|` with `m*c(a)<=N`. A class is indexed by a +sequence of paid rounds `s` of length `d<=G`; its dilation is +`rho_s=product r_j`. It contains `u(a)` units at column `rho_s*c(a)` for +each `a` with `|a|=G-d` and `m*rho_s*c(a)<=N`. + +For one parent paid round, the Pascal bijection matches its job copies to +target roles of the child class, at exactly equal integer ranks. Missing +demands are top sources. Separation ensures every parent job is consumed. +The source ranks lie in `(N/m,N]`; only the deepest classes produce exit +jobs, all strictly smaller than `N` once `N` is outside the finite base range. + +Process a class in word order. At round `j`, suspend every unit of that +class, complete the entire child class fed by that round, and only then +advance the parents to round `j+1`. This forbids a unit from requiring both +an earlier and a later round of the same suspended parent. The resulting +dependency graph is finite and acyclic. Its edges carry complete array jobs, +not individual scalar values copied for free. + +These integer quantities exist before normalizing the sources to total +weight one. Let `S_s` be the number of source jobs of rank `s`, let +`S=sum_s S_s`, and let the ordered exit batches be `(e,t)` with `t` jobs +of rank `e` each. This finite integer flow is the compiler input. + +## 4. Clear every batch denominator constructively + +Induct on the integer top rank `N`. For each smaller rank `e` the compiler +has already constructed a uniform program on `B_e` arbitrary arrays, +computing full rank `e` with `P_e` paid rank-one calls. For a sufficiently +small rank use the ordinary sequential program: `B_e=1`, `P_e=e`. + +For the current flow choose an integer `a` divisible by every `B_e` needed +for an exit and every `B_(N-s)` needed for a nonzero source remainder. +The product of those finitely many positive integers is a valid choice; +their least common multiple is a smaller optional choice. Set + +``` +B_N = a*S. +``` + +Assign `a*S_s` of the input arrays to each source rank `s`. On each of those +arrays, first complete its `N-s` complementary coordinates using the +already-compiled smaller uniform program. All such batches are integral +because `a` is divisible by their program widths. This preliminary action +commutes with the intended `s`-coordinate job and fixes its input coordinates. + +Make `a` copies of the integer lockstep flow. Route its source arrays to +their exact input slots using permitted whole-array adapters. At a deepest +exit batch, `a*t` is divisible by `B_e`; replace that batch by copies of +the smaller uniform rank-`e` program. Restore its role ordering and adapters +before resuming the suspended parent class. Execute the finite DAG in the +lockstep order, and finally restore the original source-array ordering. + +Every array has now received its disjoint complementary job and source job, +hence the full rank-`N` transform. No copied scalar input or blank helper is +treated as another independent output. Every original array occurs exactly +once as a source; interior target slots are jobs on those arrays, not new +productive inputs. + +Induction removes all recursive calls: the only remaining paid children +have rank one. Clearing denominators multiplies productive arrays and paid +operations equally, so it preserves the per-array leaf count. In formulas, + +``` +P_N/B_N = (1/S) * [ + sum_s S_s * (P_(N-s)/B_(N-s)) + + sum_(ordered exit batches e,t) t * (P_e/B_e) +]. +``` + +Zero-rank terms vanish. Any plain rank-one exits are the ordinary base +program. Scalar and routing passes have their own analogous nonnegative +count and must be included in the asymptotic cost used to choose `N`. + +This construction uses full integer batches; it does not assume that +fractional pieces of a physical array can be routed at zero cost. Its exact +replication factors can be impractically large, which is acceptable for a +fixed finite supplier existence statement but must be disclosed. + +## 5. Why some fixed N has the required saving + +The independent audit sharpened this step to a direct count of paid leaves. +It does not require a running-time comparison between a RAM flow and native +tapes. Let `L(n)=P_n/B_n`, let `w_s=S_s/S`, and let `x_e` be the exit counts +normalized by the number S of source arrays. The actual integer compiler +satisfies + +``` +L(n) = sum_s w_s L(n-s) + sum_e x_e L(e), +sum_s w_s = 1, +sum_e x_e e^tau = sum_s w_s s^tau. +``` + +The last equality follows by canceling every internal matched job in the +exact tau-potential balance. The source ranks satisfy `n/m0`, concavity gives + +``` +n^z0 - sum_s w_s (n-s)^z0 >= eta * sum_s w_s s^z0. +``` + +Indeed, for `t=s/n` in `[1/m,1]`, +`1-(1-t)^z0 >= z0*t >= eta*t^z0`. For every sufficiently large n the +exit coefficient is less than `eta/2`. Every complement and exit has +smaller rank than n, so strong induction on the exact recurrence proves +`L(n)<=A*n^z0`, with finite A chosen to cover the smaller ranks. Eventually +`L(N) 0: lo = m + else: hi = m + return lo +for f, want in (('sr0.invoice.json', '.00360666479'), ('rbf.invoice.json', '.00362232643')): + d = load(f); k = kappa(d['T'], d['P']) + req('kappa %s = %s' % (f, want), str(k)[1:len(want) + 1] == want, str(k)[:14]) + d2 = json.loads(json.dumps(d)); d2['T']['1'] += 5000 + req('control: kappa changes when the invoice is edited (%s)' % f, str(kappa(d2['T'], d2['P']))[:10] != str(k)[:10]) +# 3. E-free root: product of (I - 2 x y^T) over the 40 units in order is -I at S=-1; isotropy fails only at t1 (units 18, 19) +R = load('root_A_efree.json'); n, N = R['n'], R['N'] +X = [[Q(v) for v in r] for r in R['X']]; Y = [[Q(v) for v in r] for r in R['Y']] +dot = lambda a, b: sum(u * v for u, v in zip(a, b) if u and v) +def prod(X, Y, S=-1, order=None): + M = [[Q(int(i == j)) for j in range(n)] for i in range(n)] + for k in (order if order is not None else range(N)): + d = [sum(Y[k][i] * M[i][j] for i in range(n) if Y[k][i]) for j in range(n)] + M = [[M[i][j] + (S - 1) * X[k][i] * d[j] for j in range(n)] if X[k][i] else M[i] for i in range(n)] + return M +neg_I = lambda M: all(M[i][j] == (-1 if i == j else 0) for i in range(n) for j in range(n)) +ok = neg_I(prod(X, Y)); req('E-free root: unit product is -I at S=-1', ok) +req('E-free root: product is I at S=+1', all(prod(X, Y, 1)[i][j] == int(i == j) for i in range(n) for j in range(n))) +iso = [u for u in range(N) if dot(Y[u], X[u]) != 0] +req('E-free root: isotropy fails exactly at units 18 and 19 (t1 of each chain)', iso == [18, 19], iso) +X2 = [r[:] for r in X]; j = next(i for i, v in enumerate(X2[18]) if v); X2[18][j] += 1 +req('control: edited t1 breaks the -I product', not neg_I(prod(X2, Y))) +req('control: swapped unit order breaks the -I product', not neg_I(prod(X, Y, order=[20 if i == 18 else 18 if i == 20 else i for i in range(N)]))) +cl = load('caller_efree.json'); req('caller file parses (QSELF caller, 76 x 76 per README)', isinstance(cl, (dict, list)) and len(json.dumps(cl)) > 10000) +# 4. L=3 rho=1 roots: header Gram is the t=-1 path, units square-zero (b_i.a_i = 0), nine rows of length 8 +for f in ('root_L3_tHHtHt.json', 'root_L3_tHtHHt.json'): + d = load(f); a = [[Q(x) for x in r] for r in d['a']]; b = [[Q(x) for x in r] for r in d['b']]; M = len(a) + gram = lambda a, b: all(dot(b[i], a[j]) == (1 if j == i + 1 else -1 if j == i - 1 else 0) for i in range(M) for j in range(M)) + req('%s: M=%d n=%d, header Gram is the exact path t=-1, square-zero units' % (d['types'], M, len(a[0])), M == 9 and len(a[0]) == 8 and gram(a, b)) + b2 = [r[:] for r in b]; b2[0][0] += 1 + req('control: perturbed header rejected (%s)' % d['types'], not gram(a, b2)) +print('PASS_P104_TWO_CHAIN_FINDINGS' if not fails else 'FAILED: %s' % fails) +sys.exit(1 if fails else 0) diff --git a/research/p104-qself-owned-lowering/reference/jclib_6936.py b/research/p104-qself-owned-lowering/reference/jclib_6936.py new file mode 100644 index 0000000000..48a55ab03a --- /dev/null +++ b/research/p104-qself-owned-lowering/reference/jclib_6936.py @@ -0,0 +1,331 @@ +"""Library of check_caller_blocks.py: constant-block rewrite of the joint caller (idea and method: CubeJerry #6912; the code is this package's). + +Mathematics. A constant block is a maximal run of ADD / SCALE(-1) / SWAP events of one port type between two +nonconstant events of that type (LAMBDA, IDLE_ONE, QUERY) or a joint contact J. Applied to the role vector it is +left-multiplication by one integer matrix M in GL_n(Z) (n = 40 for type A, 38 for type B). Replace the block by any other +constant block with the same matrix M: then, by induction over the anchors, the whole caller is the same operator for every +substitution of the anchor operators (the anchors are not touched and each block is a left factor between them). +Type A rows (0..39) and type B rows (40..77) are disjoint, so an A block commutes with every B event: its position inside the +window between the same two A-anchors is immaterial. Nothing but the constant-gate count changes.""" +import json, random +from fractions import Fraction as Q + +CONST = ('ADD', 'SCALE', 'SWAP') +OFF = {'A': 0, 'B': 40} +NR = {'A': 40, 'B': 38} + + +def need(ok, msg): + if not ok: + raise ValueError(msg) + + +def ev_roles(e): + """role indices an event reads or writes (joint indexing); J returns both types' roles""" + if e[0] == 'J': + return list(e[2]) + list(e[3][:2]) + op = e[1] + if op in ('ADD', 'SWAP', 'QUERY'): + return [e[2], e[3]] + return [e[2]] + + +def check_disjoint(C): + """every A event touches only roles 0..39, every B event only 40..77 (J is the only coupling)""" + for e in C['events']: + if e[0] == 'A': + need(all(0 <= r < 40 for r in ev_roles(e)), 'A event leaves its roles: %r' % (e,)) + elif e[0] == 'B': + need(all(40 <= r < 78 for r in ev_roles(e)), 'B event leaves its roles: %r' % (e,)) + else: + need(e[0] == 'J', 'unknown tag') + return True + + +def is_const(e, ty): + return e[0] == ty and e[1] in CONST + + +def is_anchor(e, ty): + """nonconstant event of the type's own stream: its nonconstant events and every joint contact""" + return (e[0] == ty and e[1] not in CONST) or e[0] == 'J' + + +def slots(events, ty): + """list of (indices of the constant events of slot k); slot k lies between anchors k-1 and k. Also returns the + global index of the anchor that closes each slot (len(events) for the last).""" + out, closes, cur = [], [], [] + for i, e in enumerate(events): + if is_const(e, ty): + cur.append(i) + elif is_anchor(e, ty): + out.append(cur); closes.append(i); cur = [] + out.append(cur); closes.append(len(events)) + return out, closes + + +def apply_const(rows, e): + """act on the matrix of accumulated rows exactly as the caller replay does: rows[i] += c*rows[j] etc (joint indices)""" + op = e[1] + if op == 'ADD': + c = Q(e[4]); need(c.denominator == 1, 'integer ADD'); c = int(c) + rows[e[2]] = [a + c * b for a, b in zip(rows[e[2]], rows[e[3]])] + elif op == 'SCALE': + c = Q(e[3]); need(c == -1, 'SCALE -1'); rows[e[2]] = [-a for a in rows[e[2]]] + elif op == 'SWAP': + rows[e[2]], rows[e[3]] = rows[e[3]], rows[e[2]] + else: + raise ValueError('nonconstant') + + +def block_matrix(block, ty): + """exact integer matrix of a constant block (list of full joint events), n x n in type-local indices""" + n, off = NR[ty], OFF[ty] + rows = {off + i: [int(i == j) for j in range(n)] for i in range(n)} + for e in block: + need(e[0] == ty and e[1] in CONST, 'block holds a nonconstant or foreign event') + for r in ([e[2], e[3]] if e[1] != 'SCALE' else [e[2]]): + need(off <= r < off + n, 'role outside type') + apply_const(rows, e) + return [rows[off + i] for i in range(n)] + + +def alphabet_ok(block, limit=2): + for e in block: + if e[1] == 'ADD': + c = Q(e[4]); need(c.denominator == 1 and 0 < abs(c) <= limit, 'ADD coefficient outside alphabet %r' % (e,)) + need(e[2] != e[3], 'self ADD') + elif e[1] == 'SCALE': + need(Q(e[3]) == -1, 'SCALE not -1') + elif e[1] == 'SWAP': + need(e[2] != e[3], 'self SWAP') + return True + + +def splice(C, ty, new_blocks): + """new_blocks[k] = list of full joint events for slot k of type ty. New block is written at the position of the first + old event of its slot (or just before the closing anchor if the old slot was empty). Everything else keeps its order.""" + sl, closes = slots(C['events'], ty) + need(len(new_blocks) == len(sl), 'slot count %d != %d' % (len(new_blocks), len(sl))) + first, drop, ins = {}, set(), {} + for k, idxs in enumerate(sl): + if idxs: + first[idxs[0]] = k; drop.update(idxs[1:]) + elif new_blocks[k]: + ins.setdefault(closes[k], []).append(k) + ev = [] + for i, e in enumerate(C['events']): + for k in ins.get(i, []): + ev.extend(json.loads(json.dumps(x)) for x in new_blocks[k]) + if i in drop: + continue + if i in first: + ev.extend(json.loads(json.dumps(x)) for x in new_blocks[first[i]]) + elif not is_const(e, ty): + ev.append(e) + # a first-index const event is replaced above; other const events of this type are in drop + for k in ins.get(len(C['events']), []): + ev.extend(new_blocks[k]) + out = {k: v for k, v in C.items() if k != 'events'} + out['events'] = ev + return out + + +def old_blocks(C, ty): + sl, _ = slots(C['events'], ty) + return [[C['events'][i] for i in idxs] for idxs in sl] + + +def from_6912(after, ty='A'): + """read #6912's caller-after.json (plain A-stream events, no tag) as data: list of per-slot blocks, tagged joint events. + slots are delimited by its nonconstant events (everything that is not ADD/SCALE/SWAP).""" + blocks, cur, anchors = [], [], [] + for e in after['events']: + if e[0] in CONST: + cur.append([ty] + list(e)) + else: + blocks.append(cur); cur = []; anchors.append(e) + blocks.append(cur) + return blocks, anchors + + +# ---------------------------------------------------------------- exact replay of the joint caller mod p +PM = 2147483629 +IM = next(pow(g, (PM - 1) // 4, PM) for g in range(2, 99) if pow(g, (PM - 1) // 2, PM) == PM - 1) +HALF = (PM + 1) // 2 + + +def fm(x): + f = Q(x); return f.numerator % PM * pow(f.denominator, PM - 2, PM) % PM + + +def replay_matrix(C, qv, Dv): + """the full 78 x 78 matrix of the joint caller at the point (q, D_1..D_18) over F_PM; semantics as in the package + (J = HOST2 on the A roles and HOST on the B roles at one stage).""" + n = C['roles']; R = [[int(i == j) for j in range(n)] for i in range(n)]; qi = pow(qv, PM - 2, PM) + a2 = fm(C['types']['A']['alpha2']) + for e in C['events']: + if e[0] == 'J': + d = Dv[e[1]]; src, dst, x2, y2 = e[2] + R[dst] = [(a + qi * b) % PM for a, b in zip(R[dst], R[src])] + R[x2] = [(a + a2 * qv % PM * b) % PM for a, b in zip(R[x2], R[y2])] + for r in (src, dst, x2, y2): + R[r] = [a * d % PM for a in R[r]] + s, t = e[3][0], e[3][1]; al, be = fm(e[3][2]), fm(e[3][3]); tt = al * be % PM + ns = [(x + al * qv % PM * y) % PM * d % PM for x, y in zip(R[s], R[t])] + nd = [(be * qi % PM * x + (1 + tt) * y) % PM * d % PM for x, y in zip(R[s], R[t])] + R[s], R[t] = ns, nd + continue + op = e[1] + if op == 'ADD': + R[e[2]] = [(a + fm(e[4]) * b) % PM for a, b in zip(R[e[2]], R[e[3]])] + elif op == 'SCALE': + c = fm(e[3]); R[e[2]] = [a * c % PM for a in R[e[2]]] + elif op == 'SWAP': + R[e[2]], R[e[3]] = R[e[3]], R[e[2]] + elif op == 'QUERY': + c = pow(qv, e[4] % 4, PM); R[e[2]] = [(a + c * b) % PM for a, b in zip(R[e[2]], R[e[3]])] + elif op == 'LAMBDA': + s = e[3]; c = ((1 + s * IM) * HALF + (1 - s * IM) * HALF * qv * qv) % PM; R[e[2]] = [a * c % PM for a in R[e[2]]] + elif op == 'IDLE_ONE': + c = 1 + for k in e[3]: + c = c * Dv[k] % PM + R[e[2]] = [a * c % PM for a in R[e[2]]] + else: + raise ValueError('unknown op ' + str(op)) + return R + + +def target_bad(C, R, qv, Dv): + n = C['roles']; bad = 0 + for role in range(n): + t, off = (C['types']['A'], 0) if role < 40 else (C['types']['B'], 40) + dg = t['diagonal'][role - off]; c = pow(qv, dg[0] % 4, PM) + for k, bit in enumerate(dg[2:]): + if bit: + c = c * Dv[k + 1] % PM + bad += sum(R[role][j] != (c if j == role else 0) for j in range(n)) + return bad + + +def random_points(seed=5, k=4): + r = random.Random(seed); pts = [] + for qv in (1, IM, PM - 1, PM - IM): + pts.append((qv, {s: r.randrange(2, PM) for s in range(1, 19)})) + for _ in range(k): + pts.append((r.randrange(2, PM), {s: r.randrange(2, PM) for s in range(1, 19)})) + return pts + + +# ---------------------------------------------------------------- own resynthesis of a constant block (Euclid elimination) +def synth(M, ty): + """own synthesis: reduce M to I by row operations with a Euclidean algorithm per column, ADD coefficients split into + +-1,+-2; the op list that rebuilds M is the reversed list of inverses. Local indices; returns full joint events.""" + n, off = NR[ty], OFF[ty]; M = [r[:] for r in M]; ops = [] + + def add(i, j, c): # row_i += c * row_j (c in {+-1,+-2} after splitting) + while c: + s = 1 if c > 0 else -1; step = s * min(2, abs(c)) + M[i] = [a + step * b for a, b in zip(M[i], M[j])]; ops.append(('ADD', i, j, step)); c -= step + for col in range(n): + while True: + nz = [r for r in range(col, n) if M[r][col]] + need(nz, 'singular block') + if len(nz) == 1 and abs(M[nz[0]][col]) == 1: + break + p = min(nz, key=lambda r: (abs(M[r][col]), r)) + for r in nz: + if r != p: + qq = round(Q(M[r][col], M[p][col])) + if qq: + add(r, p, -qq) + p = nz[0] + if p != col: + M[p], M[col] = M[col], M[p]; ops.append(('SWAP', p, col)) + if M[col][col] == -1: + M[col] = [-a for a in M[col]]; ops.append(('SCALE', col)) + for r in range(n): + if r != col and M[r][col]: + add(r, col, -M[r][col]) + need(all(M[i][j] == int(i == j) for i in range(n) for j in range(n)), 'did not reach identity') + out = [] + for o in reversed(ops): + if o[0] == 'ADD': + out.append([ty, 'ADD', o[1] + off, o[2] + off, str(-o[3])]) + elif o[0] == 'SWAP': + out.append([ty, 'SWAP', o[1] + off, o[2] + off]) + else: + out.append([ty, 'SCALE', o[1] + off, '-1']) + return out + + +# ---------------------------------------------------------------- raw bound (formulas of the package's check.py / ordinary.py) +def swaps(sel): + wanted = set(range(len(sel))); return len(list(zip(sorted(set(sel) - wanted), sorted(wanted - set(sel))))) + + +def shim(J, ty): + t = J['types'][ty]; off = t['offset']; ev = [] + for e in J['events']: + if e[0] == 'J': + ev.append(['HOST', e[1]]) + elif e[0] == ty: + e = list(e[1:]) + if e[0] in ('ADD', 'SWAP', 'QUERY'): + e[1] -= off; e[2] -= off + else: + e[1] -= off + ev.append(e) + return dict(events=ev, roles=t['roles'], ambient_rank=J['ambient_rank'], diagonal=t['diagonal']) + + +def rest_of(C, ports): + ev = C['events']; roles = C['roles']; amb = C['ambient_rank']; mx = mn = mp = 0 + for role, (qp, zero, *sel) in enumerate(C['diagonal']): + axes = ([0] if qp else []) + [a for st, y in enumerate(sel, 1) if y for a in range(9 + 8 * (st - 1), 9 + 8 * st)] + k = swaps(axes); mx += 2 * k * ports; mn += 2 * bool(qp) * ports; mp += int(qp == -1) * ports + ie = 0; qn = qph = 0 + for e in ev: + if e[0] == 'IDLE_ONE': + ie += 2 * swaps([a for st in e[2] for a in range(9 + 8 * (st - 1), 9 + 8 * st)]) * ports + elif e[0] == 'QUERY': + qn += 2 * ports; qph += int(e[3] == -1) * ports + return (32 * roles * ports * len(ev) + sum(e[0] == 'QUERY' for e in ev) * 16 * ports + roles * ports * 26 + + (mx + mn + mp) * 1000 + ie * 1000 + (qn + qph) * 1000) + + +def word_terms(W): + """per-call terms of a word: allowance, reviewed upper, routes, public count, nD""" + from collections import Counter + H = W['hosted']; nD = len(H['Dports']); n = len(W['initial']); live = set(W['live']) + main = live | {r + 112 for r in live} | set(H['X2']) | set(H['Y2']) + dim = [len(b) for b in W['frames']] + paid = Counter(abs(dim[e[3]] - dim[e[2]]) for e in W['program'] if e[0] == 'MOVE') + hel = Counter(dim[W['final'][r]] - dim[W['initial'][r]] for r in range(n) if r not in main) + life = sum(e[0] == 'INIT' for e in W['program']); allow = upper = 0 + for e in W['program']: + if e[0] in ('INIT', 'CLEAR'): + allow += 2 + elif e[0] == 'SCALE': + q = Q(e[2]); a, d = abs(q.numerator), q.denominator + allow += 2 * (abs(a.bit_length() - d.bit_length()) + int(q < 0)); upper += 4 * (a.bit_length() + d.bit_length() + 1) + elif e[0] in ('ADD', 'COPY'): + q = Q(e[3]); a, d = abs(q.numerator), q.denominator + allow += 2 * (3 + a.bit_length() - 1 + bin(a).count('1') + d.bit_length() - 1); upper += 4 * (a.bit_length() + bin(a).count('1') + d.bit_length() + 1) + routes = (sum(paid.values()) + 2 * sum(hel.values()) + 208 + 2 * nD + 4 * 104 + 4 * nD + 4 * life) * 1000 + return dict(allow=allow, upper=upper, routes=routes, n=n, nD=nD, paid=paid, hel=hel) + + +scale_cost = lambda S: 4 * (S.bit_length() + 1 + 1) + 4 * (1 + S.bit_length() + 1) # one SCALE by S at entry and one by 1/S at exit at the reviewed upper rate: 80 for S = 225, 104 for S = 1125 + + +def raw_all(J, W, S): + t = word_terms(W); nA, nB = len(J['types']['A']['ports']), len(J['types']['B']['ports']) + need((nA, nB) == (t['nD'], 104 - t['nD']), 'port split of the caller differs from the word') + rest = rest_of(shim(J, 'A'), nA) + rest_of(shim(J, 'B'), nB) + lam = sum(1 for e in J['events'] if e[0] == 'A' and e[1] == 'LAMBDA') * nA + sum(1 for e in J['events'] if e[0] == 'B' and e[1] == 'LAMBDA') * nB + debit = 1000 * lam; per_in = 18 * t['n'] * scale_cost(S) + lit = 18 * 10 ** 7 + rest; act = 18 * (t['allow'] + t['routes']) + rest; up = 18 * (t['upper'] + t['routes']) + rest + return dict(rest=rest, literal=lit, actual=act, upper=up, recharge=up + debit, per_input=up + per_in, per_input_recharge=up + per_in + debit, + lambda_jobs=lam, debit=debit, per_in=per_in, public=t['n']) diff --git a/research/p104-qself-owned-lowering/reference/physical_review_6936.py b/research/p104-qself-owned-lowering/reference/physical_review_6936.py new file mode 100644 index 0000000000..f41390e024 --- /dev/null +++ b/research/p104-qself-owned-lowering/reference/physical_review_6936.py @@ -0,0 +1,568 @@ +#!/usr/bin/env python3 +"""Independent finite physical/invoice audit of exact #6726. + +Jerry Chen (@CubeJerry), with substantial OpenAI assistance. Apache-2.0. +No construction, pricing, scalar, or physical implementation is imported. +""" +from collections import Counter +from copy import deepcopy +from fractions import Fraction +from functools import reduce +from hashlib import sha1, sha256 +from itertools import combinations +from pathlib import Path +import gzip +import json +import sys + +HERE = Path(__file__).resolve().parent + + +def require(test, reason): + if not test: + raise ValueError(reason) + + +def read(name): + raw = (HERE / 'frozen' / name).read_bytes() + return json.loads(gzip.decompress(raw) if name.endswith('.gz') else raw) + + +def authenticate(): + pins = json.loads((HERE / 'SOURCES.json').read_bytes()) + for pin in pins['files']: + if pin['usage'] != 'input': + continue + relative = Path(pin['path']).relative_to('research/p104-fragment-physical-invoice-audit') + raw = (HERE / relative).read_bytes() + require(len(raw) == pin['bytes'], 'source length: ' + pin['path']) + require(sha256(raw).hexdigest() == pin['sha256'], 'source SHA256: ' + pin['path']) + require(sha1(b'blob ' + str(len(raw)).encode() + b'\0' + raw).hexdigest() == pin['git_blob'], 'source Git blob: ' + pin['path']) + return pins + + +def span(vectors): + values = {0} + for value in vectors: + require(isinstance(value, int) and 0 < value < 512, 'native nine-axis vector') + require(value not in values, 'frame axes independent') + values |= {old ^ value for old in values} + return sum(1 << value for value in values) + + +def native_ledger(word, check_rows=True): + """Scan physical charts and scalar rows; MOVE changes chart, not chart coordinates.""" + frames = word['frames'] + spaces = [span(frame) for frame in frames] + ranks = [len(frame) for frame in frames] + public = word['public'] + total = public + word['owned_fields'] + require(len(word['initial']) == len(word['final']) == public, 'public boundaries') + chart = word['initial'][:] + [None] * word['owned_fields'] + rows = [{i: Fraction(1)} for i in range(public)] + [{} for _ in range(word['owned_fields'])] + live_owned = set() + lifetime = peak = 0 + paid = Counter() + operations = Counter() + paid_records = [] + scalar_units = 0 + for index, event in enumerate(word['program']): + op, *args = event + operations[op] += 1 + if op == 'INIT': + field, frame = args + require(public <= field < total and chart[field] is None, 'owned INIT before use') + chart[field] = frame + rows[field] = {} + live_owned.add(field) + lifetime += 1 + peak = max(peak, len(live_owned)) + elif op == 'CLEAR': + field, frame = args + require(field in live_owned and chart[field] == frame, 'owned CLEAR at current frame') + chart[field] = None + rows[field] = {} + live_owned.remove(field) + elif op == 'MOVE': + field, start, end, backward = args + require(chart[field] == start, 'chronological MOVE source frame') + lo, hi = ((end, start) if ranks[end] < ranks[start] else (start, end)) if backward else (start, end) # DECLARED CHANGE (assumption A6): an owned MOVE may be nested in either direction; it is paid |delta dim| either way. Predecessor line: lo, hi = (end, start) if backward else (start, end) + require(spaces[lo] & spaces[hi] == spaces[lo] and ranks[lo] < ranks[hi], 'strict nested paid MOVE') + rank = ranks[hi] - ranks[lo] + paid[rank] += 1 + paid_records.append((index, field, rank)) + chart[field] = end + elif op in ('ADD', 'COPY'): + dst, src, value, frame = args + require(dst != src and chart[dst] == chart[src] == frame, 'scalar common current chart') + value = Fraction(value) + require(value and value.denominator & (value.denominator - 1) == 0, 'nonzero dyadic scalar') + if op == 'COPY': + require(dst in live_owned and not rows[dst], 'COPY requires cleared owned destination') + if check_rows: + for column, coefficient in rows[src].items(): + new = rows[dst].get(column, 0) + value * coefficient + if new: + rows[dst][column] = new + else: + rows[dst].pop(column, None) + scalar_units += 4 * (abs(value.numerator).bit_length() + abs(value.numerator).bit_count() + value.denominator.bit_length() + 1) + elif op == 'SCALE': + field, value, frame = args + value = Fraction(value) + require(chart[field] == frame and value, 'scale at current live chart') + require(abs(value.numerator) & (abs(value.numerator)-1) == 0 and value.denominator & (value.denominator-1) == 0, 'invertible dyadic scale') + if check_rows: + rows[field] = {column: value * coefficient for column, coefficient in rows[field].items()} + scalar_units += 4 * (abs(value.numerator).bit_length() + value.denominator.bit_length() + 1) + else: + raise ValueError('unknown native opcode ' + op) + require(not live_owned and chart[:public] == word['final'], 'complete native return and owned clearance') + ports = word['ports'] + live = word['live'] + require(len(set(ports)) == len(ports) == len(set(live)) == len(live) == 104, '104 distinct retained ports') + main = set(live) | {112 + i for i in live} + require(len(main) == 208, 'disjoint native X/Y pairs') + helpers = Counter() + helper_labels = [] + for field in range(public): + if check_rows: + expected = {field: Fraction(1)} + if field >= 112 and field - 112 in live: + expected[field - 112] = Fraction(1) + require(rows[field] == expected, 'all arbitrary native input row ' + str(field)) + if field not in main: + start, end = word['initial'][field], word['final'][field] + require(spaces[start] & spaces[end] == spaces[start] and ranks[start] < ranks[end], 'productive helper strict nested endpoint') + rank = ranks[end] - ranks[start] + helpers[rank] += 1 + helper_labels.append((field, rank)) + for i, q in zip(live, ports): + require(frames[word['initial'][i]] == [q] and frames[word['initial'][112+i]] == [], 'native incoming Q/I main interface') + require(frames[word['final'][i]] == list(1 << j for j in range(9)), 'native complete nine-axis X endpoint') + require(ranks[word['final'][112+i]] == 8 and all((q & a).bit_count()%2 == 0 for a in frames[word['final'][112+i]]), 'native rank-eight q-orthogonal Y endpoint') + return dict(paid=paid, helpers=helpers, helper_labels=helper_labels, paid_records=paid_records, + public=public, owned=word['owned_fields'], lifetimes=lifetime, peak=peak, + operations=operations, scalar_upper=scalar_units, + scalar_rows=public if check_rows else 0) + + +def terms(entries): + counts = Counter() + for vector, coefficient in entries: + counts[vector] += coefficient + return {vector: coefficient % 4 for vector, coefficient in counts.items() if vector and coefficient % 4} + + +def difference(a, b): + return terms(list(a.items()) + [(v, -c) for v, c in b.items()]) + + +def phase(coefficients, frequency): + return sum(c * ((vector & frequency).bit_count() & 1) for vector, c in coefficients.items()) % 4 + + +def axes_of(mask): + out = [] + while mask: + bit = mask & -mask + out.append(bit) + mask ^= bit + return out + + +def translation_for(delta): + """Parity is degree <=2 modulo four; weight<=2 frequencies determine it.""" + support = axes_of(reduce(int.__or__, delta, 0)) + shift = 0 + single = {} + for bit in support: + single[bit] = phase(delta, bit) + require(single[bit] in (0, 2), 'contact linear phase must be an ordinary translation') + if single[bit] == 2: + shift |= bit + for a, b in combinations(support, 2): + require(phase(delta, a | b) == (single[a] + single[b]) % 4, 'contact residual quadratic phase') + return shift + + +def route_function(q, basis, stage): + fresh = [1 << (9 + 8*(stage-1) + i) for i in range(8)] + old_mask = 511 + fresh_mask = sum(fresh) + require(q.bit_count() % 2 == 1, 'odd central port') + require(len(basis) == 8 and all(0 < v < 512 for v in basis), 'native eight-dimensional basis') + require(all((a & b).bit_count() % 2 == (i == j) for i, a in enumerate([q]+basis) for j, b in enumerate([q]+basis)), 'complete orthonormal native basis') + def route(value): + old = value & old_mask + result = value & ~(old_mask | fresh_mask) + if (old & q).bit_count() % 2: + result ^= q + for native_axis, fresh_axis in zip(basis, fresh): + if value & fresh_axis: + result ^= native_axis + if (old & native_axis).bit_count() % 2: + result ^= fresh_axis + return result + affected = [1 << i for i in range(9)] + fresh + images = [route(v) for v in affected] + require(all(route(image) == axis for axis, image in zip(affected, images)), 'route involution') + require(all((a & b).bit_count() % 2 == (i == j) for i, a in enumerate(images) for j, b in enumerate(images)), 'route orthogonality') + require(route(q) == q, 'route fixes Q') + return route + + +def contact(before, after, route, omit_translation=False): + moved = terms((route(v), c) for v, c in before.items()) + shift = translation_for(difference(after, moved)) + supplied = 0 if omit_translation else shift + require(translation_for(difference(after, terms(list(moved.items()) + [(supplied, 2)]))) == 0, 'full forward absolute phase') + inverse = route(supplied) + require(translation_for(difference(before, terms([(route(v), c) for v, c in after.items()] + [(inverse, 2)]))) == 0, 'full inverse absolute phase') + require(shift.bit_count() <= 17 and inverse.bit_count() <= 17, 'fixed seventeen-axis translation budget') + return {'translation': shift, 'inverse_translation': inverse} + + +def physical(word, native, recipes, omit_translation=False): + stages = word['stages'] + require(word['ambient_rank'] == 9 + 8*stages, 'declared ambient axes') + axes = [1 << i for i in range(word['ambient_rank'])] + full_events = [(i, e) for i, e in enumerate(word['events']) if e[0] == 'LOCAL'] + require([e[1] for _, e in full_events] == list(range(1, stages+1)), 'fresh native stage chronology') + by_port = {r['q']: r for r in recipes['recipes']} + require(set(native['ports']) <= set(by_port), 'every retained port has a phase recipe') + records = [] + for _, (_, stage, src, dst) in full_events: + require(src != dst and 0 <= src < word['roles'] and 0 <= dst < word['roles'], 'distinct valid native caller fields') + before_axes = axes[:9+8*(stage-1)] + after_axes = axes[:9+8*stage] + spectator = axes[9:9+8*stage] + for q in native['ports']: + basis = by_port[q]['idle_children'][0]['orthogonal_axes'][:8] + route = route_function(q, basis, stage) + x0 = terms((a, 1) for a in before_axes) + y0 = terms(list(x0.items()) + [(q, -1)]) + x1 = terms((a, 1) for a in after_axes) + y1 = terms(list(x1.items()) + [(q, -1)]) + native_x0 = terms([(a, 1) for a in spectator] + [(q, 1)]) + native_y0 = terms((a, 1) for a in spectator) + native_x1 = terms((a, 1) for a in spectator + axes[:9]) + native_y1 = terms(list(native_x1.items()) + [(q, -1)]) + maps = [contact(a, b, route, omit_translation) for a, b in ((x0,native_x0),(y0,native_y0),(native_x1,x1),(native_y1,y1))] + body = terms((a, 1) for a in axes[9+8*(stage-1):9+8*stage]) + require(translation_for(difference(difference(x1,x0),body)) == 0 and translation_for(difference(difference(y1,y0),body)) == 0, 'native diagonal is fresh D_stage with absolute phase') + require(translation_for(difference(difference(y1,x0),terms(list(body.items())+[(q,-1)]))) == 0, 'native cross coefficient is D_stage Q^-1') + records.append([stage,q,maps]) + main = Counter() + output_shifts = 0 + for term in word['diagonal']: + qp, zero, *selected = term + require(qp in (-1,0,1) and zero == 0 and len(selected) == stages and set(selected) <= {0,1}, 'literal physical endpoint exponent domain') + for q in native['ports']: + body_axes = [axis for stage, yes in enumerate(selected,1) if yes for axis in axes[9+8*(stage-1):9+8*stage]] + positive = ([q] if qp else []) + body_axes + require(all((a & b).bit_count()%2 == (i == j) for i,a in enumerate(positive) for j,b in enumerate(positive)), 'all positive endpoint axes orthonormal') + actual = terms([(q,qp)] + [(a,1) for a in body_axes]) + target = terms((a,1) for a in positive) + shift = translation_for(difference(target,actual)) + require(shift == (q if qp == -1 else 0), 'exact endpoint translation') + output_shifts += bool(shift) + main[len(positive)] += 1 + idle = Counter() + idle_records = [] + for index,event in enumerate(word['events']): + if event[0] not in ('IDLE','IDLE_ONE'): + continue + owners, selection = (event[1:3], event[3]) if event[0] == 'IDLE' else ([event[1]],event[2]) + require(len(set(owners)) == len(owners) and all(0 <= r < word['roles'] for r in owners), 'distinct valid idle owners') + require(selection and len(set(selection)) == len(selection) and all(1 <= s <= stages for s in selection), 'distinct valid complete idle axes') + positive = [axis for stage in selection for axis in axes[9+8*(stage-1):9+8*stage]] + require(len(set(positive)) == len(positive), 'whole idle independent Gaussian factors') + idle[len(positive)] += len(native['ports']) * len(owners) + idle_records.extend((index,owner,q,len(positive)) for owner in owners for q in native['ports']) + require(len(word['diagonal']) == word['roles'], 'one target for every arbitrary caller input') + return dict(contacts=4*len(records), contact_digest=sha256(json.dumps(records,separators=(',',':')).encode()).hexdigest(), + nonzero_contact_translations=sum(bool(m['translation']) for _,_,maps in records for m in maps), + main=main, idle=idle, idle_records=idle_records, output_translations=output_shifts, + dimension=word['ambient_rank']) + + +def allocation(word, native, ledger, alias=False): + main = {(role,q) for role in range(word['roles']) for q in native['ports']} + names = {('main',role,q) for role,q in main} + helper_jobs = [] + local_number = 0 + for event_index, event in enumerate(word['events']): + if event[0] != 'LOCAL': + continue + _,stage,src,dst = event + public_map = {} + for i,q in zip(native['live'],native['ports']): + public_map[i] = ('main',src,q) + public_map[112+i] = ('main',dst,q) + for field,rank in ledger['helper_labels']: + key = ('helper',0 if alias else local_number,field) + require(key not in names, 'fresh native helper cannot alias an earlier public input') + names.add(key) + public_map[field] = key + helper_jobs.append((event_index,stage,field,rank,key)) + require(len(public_map) == ledger['public'] and len(set(public_map.values())) == ledger['public'], 'injective local public-input allocation') + local_number += 1 + owned = {('owned',i) for i in range(ledger['owned'])} + thin = {('query_scratch',0)} + require(not (names & owned or names & thin or owned & thin), 'owned/query scratch is disjoint and uncredited') + return dict(main_fields=len(main), helper_fields=len(helper_jobs), productive_fields=len(names), + reserved_native_owned=len(owned), reserved_query_owned=len(thin), + peak_native_owned=ledger['peak'], maximum_live_owned=max(ledger['peak'],1), + invocations=local_number, helper_jobs=helper_jobs) + + +def invoice(word, ledger, physics, fields): + paid = Counter() + targets = Counter(physics['main']) + for _,_,_,rank,_ in fields['helper_jobs']: + targets[rank] += 1 + for event in word['events']: + if event[0] == 'LOCAL': + paid.update(ledger['paid']) + elif event[0] == 'QUERY': + require(event[3] in (-1,1), 'legal thin query orientation') + paid[1] += 104 + paid.update(physics['idle']) + require(sum(targets.values()) == fields['productive_fields'], 'productive count equals distinct arbitrary inputs') + return {'targets':targets, 'paid':paid, 'productive_fields':sum(targets.values()), 'paid_calls':sum(paid.values()), + 'target_mass':sum(r*n for r,n in targets.items()), 'paid_mass':sum(r*n for r,n in paid.items())} + + +def compare_invoice(actual, expected): + require(actual['targets'] == Counter({int(k):v for k,v in expected['targets'].items()}), 'complete productive rank histogram') + require(actual['paid'] == Counter({int(k):v for k,v in expected['paid'].items()}), 'complete paid rank histogram') + require(actual['productive_fields'] == expected['productive_fields'] and actual['paid_calls'] == expected['paid_calls'], 'independent count totals') + require(actual['target_mass'] - actual['paid_mass'] == expected['rank_mass_surplus'], 'independent rank-mass surplus') + + +def chronology(word, witnesses): + slots = {'ADD':(1,2),'SCALE':(1,),'SWAP':(1,2),'LOCAL':(2,3),'QUERY':(1,2),'IDLE':(1,2),'IDLE_ONE':(1,),'LAMBDA':(1,),'Q_POWER':(1,)} + actual_handoffs = [] + for number, witness in enumerate(witnesses): + # Witness zero belongs to the intermediate 33-field word. Later input + # bases precede that whole word and shift its earlier cut chronologically. + offset = sum(len(later['input_basis']) for later in witnesses[number+1:]) + handoff = witness['handoff_after'] + offset + pivot,fresh = witness['pivot'], witness['fresh'] + require(all(event[j] != fresh for event in word['events'][:handoff+1] for j in slots[event[0]]), 'fresh handoff input untouched in entire prefix') + cut_basis = witness['cut_basis'] + require(word['events'][handoff-len(cut_basis)+1:handoff+1] == cut_basis, 'complete cut basis at actual chronological handoff') + require(word['events'][handoff-len(cut_basis)] == ['IDLE_ONE',2,witness['prefix_stages']], 'handoff immediately follows the paid fragment') + require(word['diagonal'][pivot] == witness['prefix_target'] and word['diagonal'][fresh] == witness['suffix_target'], 'retirement endpoint credit matches literal witness') + first_fresh = next(i for i,event in enumerate(word['events']) if any(event[j] == fresh for j in slots[event[0]])) + require(first_fresh == handoff+1, 'fresh suffix starts immediately after completed prefix') + require(all(event[j] != pivot for event in word['events'][handoff+1:] for j in slots[event[0]]), 'retired productive output retained untouched through the full suffix') + actual_handoffs.append(handoff) + return {'fresh_inputs': [w['fresh'] for w in witnesses], 'witness_handoffs':[w['handoff_after'] for w in witnesses], 'literal_final_handoffs':actual_handoffs} + + +def central_normalization(): + def mul(a,b): + return (a[0]*b[0]-a[1]*b[1], a[0]*b[1]+a[1]*b[0]) + values = [(1,0),(0,1),(-1,0),(0,-1)] + for j,q in enumerate(values): + lam = (1,0) if j%2 == 0 else (0,1) + inverse = (lam[0],-lam[1]) + require(mul(lam,inverse)==(1,0), 'ordinary lambda and inverse are exact') + central = mul(lam,(q[0],-q[1])) + require(mul(central,central)==(1,0), 'normalized central S is an involution') + # At two odd factor characters Q_total=-1, lambda(Q_total)=+1, + # whereas tensoring the two factor lambdas would incorrectly give -1. + require((1,0) != mul((0,1),(0,1)), 'global lambda must remain outside tensor powers') + return {'central_characters':4,'two_factor_lambda_disagreement':True, + 'rule':'Physical Gaussian maps tensor factorwise; ordinary scalar coefficients and lambda polynomials act on the total Q outside tensor powers.'} + + +def coordinate_swaps(selected, dimension): + """Map a subset of canonical axes to the first r axes by explicit exchanges.""" + require(len(set(selected)) == len(selected), 'adapter axes distinct') + require(all(0 <= axis < dimension for axis in selected), 'adapter axes in ambient carrier') + wanted = set(range(len(selected))) + swaps = list(zip(sorted(set(selected)-wanted), sorted(wanted-set(selected)))) + def move(axis): + for a,b in swaps: + if axis == a: + axis = b + elif axis == b: + axis = a + return axis + require({move(axis) for axis in selected} == wanted, 'explicit Gaussian axis permutation') + require(all(move(move(axis)) == axis for axis in range(dimension)), 'permutation adapter inverse') + require(len(swaps) <= len(selected), 'rank-many two-axis exchanges suffice') + return swaps + + +def adapter_inventory(word, native, recipes): + """Charge complete canonical-job input/output conversions, including full idles.""" + by_port = {r['q']:r for r in recipes['recipes']} + for q in native['ports']: + basis = [q]+by_port[q]['idle_children'][0]['orthogonal_axes'][:8] + # This nine-axis map sends q to coordinate zero, fixes all spectators, + # and sends its orthonormal complement to coordinates one through eight. + def convert(value): + return (value & ~511) | sum(((value & axis).bit_count()%2) << i for i,axis in enumerate(basis)) + require([convert(axis) for axis in basis] == [1 << i for i in range(9)], 'explicit nine-axis q-to-coordinate adapter') + require(all((a&b).bit_count()%2 == (i==j) for i,a in enumerate(basis) for j,b in enumerate(basis)), 'q adapter orthogonal and invertible') + records = {'main':[], 'idle':[], 'query':[]} + for role,(qp,zero,*selection) in enumerate(word['diagonal']): + axes = ([0] if qp else []) + [axis for stage,yes in enumerate(selection,1) if yes for axis in range(9+8*(stage-1),9+8*stage)] + exchanges = coordinate_swaps(axes,word['ambient_rank']) + for q in native['ports']: + # Both whole-job boundaries are charged, even though a target + # interface may permit some of these maps to remain implicit. + records['main'].append([role,q,len(exchanges),2*bool(qp),int(qp==-1)]) + for index,event in enumerate(word['events']): + if event[0] in ('IDLE','IDLE_ONE'): + owners,stages = (event[1:3],event[3]) if event[0]=='IDLE' else ([event[1]],event[2]) + axes = [axis for stage in stages for axis in range(9+8*(stage-1),9+8*stage)] + exchanges = coordinate_swaps(axes,word['ambient_rank']) + records['idle'].extend([index,owner,q,len(exchanges)] for owner in owners for q in native['ports']) + elif event[0]=='QUERY': + _,dst,src,power = event + require(dst != src and all(0<=r= self.origin-1, 'no ancestor access') + self.actions += 1 + self.highwater = max(self.highwater, self.pos) + + def read(self): + self.tick() + return self.cells.get(self.pos, A.BLANK) + + def write(self, symbol): + self.tick() + require(self.pos >= self.origin, 'origin marker is protected') + self.cells[self.pos] = symbol + + def move(self, direction): + require(direction in (-1, 1), 'unit head step') + self.tick(); self.pos += direction + require(self.pos >= self.origin-1, 'no ancestor crossing') + self.highwater = max(self.highwater, self.pos) + + def body(self): + stop = self.origin + while self.cells.get(stop, A.BLANK) != A.BLANK: + stop += 1 + return tuple(self.cells[k] for k in range(self.origin, stop)) + + def check_origin(self): + require(self.pos == self.origin and self.cells[self.origin-1] == A.LEFT and self.cells[self.origin-2] == 91, + 'complete local head and ancestor restoration') + + +def encode(values, widths): + raw = [] + for x, width in zip(values, widths): + require(-(1 << (width-1)) <= x < (1 << (width-1)), 'signed fixture domain') + for symbol in tuple((x >> j) & 1 for j in range(width)) + (A.COMPONENT,): + raw += [(symbol >> k) & 1 for k in (2, 1, 0)] + return tuple(raw) + + +def verify(): + cases = 0 + actions = 0 + for widths in ((1, 1), (1, 2), (2, 3), (5, 5), (8, 16), (65, 129), (129, 1, 3, 8)): + for pattern in range(3): + values = tuple((-(1 << (w-1)) if pattern == 0 else + (1 << (w-1))-1 if pattern == 1 else 0) for w in widths) + body = encode(values, widths); V = len(body); L = V//3; bits = sum(widths) + for dirty in (0, 1, 17, V+11): + source = Tape(body, 31); target = Tape((1,)*dirty, 97) + A.initialize(target, source) + require(source.actions+target.actions == 5*dirty+25*V//3+17, 'exact INIT cost including dirty erasure and heads') + require(target.body() == encode((0,)*len(widths), widths) and source.body() == body, 'actual cleared complete shape') + source.check_origin(); target.check_origin() + before = source.actions+target.actions + A.copy_as_add(target, source) + require(source.actions+target.actions-before == 14*L+9*bits+4*V+14, 'exact COPY numerical/source-access/head cost') + require(target.body() == source.body() == body, 'arbitrary signed copied contents') + source.check_origin(); target.check_origin() + before = target.actions; old_backing = target.highwater + A.retire(target) + require(target.actions-before == 5*V+7 and target.body() == (), 'exact physical erasure cost') + require(all(v == A.BLANK for k, v in target.cells.items() if k >= target.origin), 'no raw coded bits survive') + require(target.highwater >= old_backing, 'erasure retains historical backing') + source.check_origin(); target.check_origin() + actions += source.actions+target.actions; cases += 1 + # COPY is actual addition: an uncleared numerical residue is preserved. + source = Tape(encode((2, 0), (3, 3))); target = Tape(encode((1, 0), (3, 3)), 97) + A.copy_as_add(target, source) + require(target.body() == encode((3, 0), (3, 3)) and target.body() != source.body(), 'uncleared-copy negative control exposes residual') + return {'physical_scan_cases': cases, 'physical_cell_actions': actions, + 'checked_functions': ['initialize', 'copy_as_add', 'retire'], + 'normal_head_and_raw_erasure_controls': True, 'dirty_copy_control': True, + 'Gaussian_or_fullcaller_execution': False} diff --git a/research/p104-qself-owned-lowering/source_binding.py b/research/p104-qself-owned-lowering/source_binding.py new file mode 100644 index 0000000000..b56bfcf7af --- /dev/null +++ b/research/p104-qself-owned-lowering/source_binding.py @@ -0,0 +1,32 @@ +"""Authenticate the exact, narrowly vendored source dependency capsule.""" +from pathlib import Path +import gzip +import hashlib +import json + +ROOT = Path(__file__).resolve().parent + + +def require(ok, why): + if not ok: + raise ValueError(why) + + +def authenticate(): + pins = json.loads((ROOT/'DEPENDENCIES.json').read_bytes()) + for row in pins['files']: + raw = (ROOT/row['local_path']).read_bytes() + require(len(raw) == row['bytes'], 'source length: '+row['local_path']) + require(hashlib.sha256(raw).hexdigest() == row['sha256'], 'source SHA256: '+row['local_path']) + require(hashlib.sha1(b'blob '+str(len(raw)).encode()+b'\0'+raw).hexdigest() == row['git_blob'], + 'source Git blob: '+row['local_path']) + return len(pins['files']) + + +def inputs(): + authenticate() + def read(name): + b = (ROOT/name).read_bytes() + return json.loads(gzip.decompress(b) if name.endswith('.gz') else b) + return (read('data/caller_efree.json'), read('data/caller_6936.json'), + read('data/word_6936.json.gz'), read('QUERY-BASES.json')) diff --git a/research/p104-qself-owned-lowering/vendor/machine.py b/research/p104-qself-owned-lowering/vendor/machine.py new file mode 100644 index 0000000000..acf475e4fc --- /dev/null +++ b/research/p104-qself-owned-lowering/vendor/machine.py @@ -0,0 +1,406 @@ +"""Literal lifecycle control on fixed sequential tapes. + +Prepared for @CubeJerry with substantial OpenAI assistance. Apache-2.0. +Stack is the authenticated #5356 implementation supplied by the loader. +Algorithms never read tape addresses, extents, hardware arrays or a host stack. +Instruction and primitive tables are fixed before runtime inputs vary. +""" +from dataclasses import dataclass + +ZERO, ONE, LEFT, SEP, END, BASE, BLANK = range(7) +COMPONENT = 2 + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def emit(tape, symbol): + tape.write(symbol) + tape.move(1) + + +def origin(tape, marker=LEFT): + tape.move(-1) + while tape.read() != marker: + tape.move(-1) + tape.move(1) + + +def retire(tape, marker=LEFT): + """Erase all coded bytes, including encoded logical blanks.""" + origin(tape, marker) + while (symbol := tape.read()) != BLANK: + need(symbol in (ZERO, ONE), "contiguous binary body") + emit(tape, BLANK) + origin(tape, marker) + + +def transfer(source, target, source_marker=LEFT, target_marker=LEFT): + """Administrative actual-byte copy; never an arithmetic COPY.""" + origin(source, source_marker) + origin(target, target_marker) + need(target.read() == BLANK, "administrative transfer needs empty target") + while (symbol := source.read()) != BLANK: + need(symbol in (ZERO, ONE), "binary transfer") + emit(target, symbol) + source.move(1) + origin(source, source_marker) + origin(target, target_marker) + + +class CodedPort: + """Seven virtual symbols encoded as three nonblank physical bits. + + The physical LEFT before the current body is never exposed as data. + A left step at its local origin rejects. Two-sided routines first use + the standard translation to two one-sided ports. + """ + __slots__ = ("tape",) + + def __init__(self, tape): + self.tape = tape + + def read(self): + t = self.tape + if t.read() == BLANK: + return 4 + value = 0 + for _ in range(3): + bit = t.read() + need(bit in (ZERO, ONE), "whole virtual codeword") + value = 2 * value + bit + t.move(1) + for _ in range(3): + t.move(-1) + need(value < 7, "unused virtual codeword") + return value + + def write(self, value): + need(type(value) is int and 0 <= value < 7, "virtual alphabet") + for shift in (2, 1, 0): + emit(self.tape, (value >> shift) & 1) + for _ in range(3): + self.tape.move(-1) + + def move(self, direction): + need(direction in (-1, 1), "virtual unit move") + t = self.tape + if direction == 1: + if t.read() == BLANK: + self.write(4) + for _ in range(3): + t.move(1) + else: + t.move(-1) + if t.read() == LEFT: + t.move(1) + raise ValueError("native routine crossed its local origin") + t.move(-1) + t.move(-1) + + +class BinaryContextPort: + """Read-only raw binary descriptor, with its own physical alphabet. + + Unlike CodedPort, read returns physical BLANK=6 at the frontier. A table + may inspect that frontier but cannot pass it or the current LEFT marker. + This supplies runtime e/f/K/rho data through counted local operations. + """ + __slots__ = ("tape",) + + def __init__(self, tape): + self.tape = tape + + def read(self): + symbol = self.tape.read() + need(symbol in (ZERO, ONE, BLANK), "binary context alphabet") + return symbol + + def write(self, value): + raise ValueError("native context is read-only") + + def move(self, direction): + need(direction in (-1, 1), "binary context unit move") + t = self.tape + if direction == 1: + need(t.read() in (ZERO, ONE), "context frontier cannot be crossed") + t.move(1) + else: + t.move(-1) + if t.read() == LEFT: + t.move(1) + raise ValueError("native context crossed its local origin") + + +def read_code(tape): + """Consume a numeric-format code; physical frontier returns None.""" + if tape.read() == BLANK: + return None + value = 0 + for _ in range(3): + bit = tape.read() + need(bit in (ZERO, ONE), "numeric codeword") + value = 2 * value + bit + tape.move(1) + need(value < 7, "unused numeric codeword") + return value + + +def write_code(tape, value): + for shift in (2, 1, 0): + emit(tape, (value >> shift) & 1) + + +def initialize(target, shape): + """Dispose of arbitrary old bytes, then zero the complete common format.""" + need(target is not shape, "private initialization cannot destroy its guide") + retire(target) + origin(shape) + in_component = False + while (symbol := read_code(shape)) is not None: + need(symbol in (ZERO, ONE, COMPONENT), "canonical signed components") + if symbol == COMPONENT: + need(in_component, "positive component width") + write_code(target, COMPONENT) + in_component = False + else: + write_code(target, ZERO) + in_component = True + need(not in_component, "component terminator") + origin(shape) + origin(target) + + +def copy_as_add(target, source): + """Signed addition into the actual destination, including any residue. + + Components are little-endian two's complement followed by COMPONENT. + Carries reset at delimiters; equal-sign signed overflow rejects. + No ideal-zero test or exact-value overwrite substitutes for addition. + """ + need(target is not source, "distinct COPY/ADD ports") + origin(source) + origin(target) + carry = 0 + last_a = last_b = last_out = 0 + in_component = False + while True: + a = read_code(source) + b = read_code(target) + need((a is None) == (b is None), "same complete numerical extent") + if a is None: + need(not in_component, "complete signed component") + break + need(a in (ZERO, ONE, COMPONENT) and b in (ZERO, ONE, COMPONENT), + "canonical signed addition operands") + need((a == COMPONENT) == (b == COMPONENT), "same component boundaries") + if a == COMPONENT: + need(in_component, "positive signed component width") + need(last_a != last_b or last_out == last_a, "signed addition overflow") + carry = 0 + in_component = False + continue + value = a + b + carry + last_a, last_b, last_out = a, b, value & 1 + carry = value >> 1 + for _ in range(3): + target.move(-1) + write_code(target, last_out) + in_component = True + origin(source) + origin(target) + + +def execute_table(table, ports, readonly_context=()): + """Run a supplied finite native table with every port confined. + + These tables retain explicit semantics/time/space premises. Fixture + tables are not advertised as Gaussian implementations. + """ + views = (tuple(CodedPort(t) for t in ports) + + tuple(BinaryContextPort(t) for t in readonly_context)) + pc = 0 + while True: + row = table[pc] + op = row[0] + if op == "halt": + break + if op == "reject": + raise ValueError(row[1]) + if op == "goto": + pc = row[1] + continue + view = views[row[1]] + if op == "branch": + pc = dict(row[2]).get(view.read(), row[3]) + continue + if op == "write": + view.write(row[2]) + elif op == "move": + view.move(row[2]) + else: + raise ValueError("native table opcode") + pc += 1 + for tape in tuple(ports)+tuple(readonly_context): + origin(tape) + + +@dataclass(frozen=True) +class Instruction: + op: str + ports: tuple = () + token: tuple = () + + +class Controller: + """Fixed finite controller of a fixed flat compiled template. + + rows implements the separately priced row/shape interface; all its + dynamic state belongs on the supplied tapes. services contains fixed + finite transition tables. Payload ports include metadata and all scratch. + The only runtime continuation is the physical Stack. + """ + def __init__(self, program, public_count, payloads, control, descriptor, + bridge, child_header, rows, services, stack_class, protected_ports=(), + primitive_work=(), primitive_context=()): + self.program = tuple(program) + self.public_count = public_count + self.payloads = tuple(payloads) + self.control = control + self.descriptor = descriptor + self.bridge = bridge + self.child_header = child_header + self.rows = rows + self.services = services + need(len({id(t) for t in self.payloads+(control,descriptor,bridge,child_header)}) + == len(self.payloads)+4, "all physical ports distinct") + self.stack = stack_class(self.payloads, control, descriptor) + self.protected_ports = tuple(protected_ports) + owned = {e.ports[0] for e in self.program if e.op == "INIT"} + need(all(public_count <= i < len(self.payloads) for i in owned), "INIT only private physical slots") + need(owned.isdisjoint(self.protected_ports), "owned fields cannot be borrowed descriptors") + self.root_cleanup = tuple(i for i in range(public_count,len(self.payloads)) + if i not in self.protected_ports) + self.primitive_work = tuple(primitive_work) + self.primitive_context = tuple(primitive_context) + data_ports = {i for e in self.program for i in e.ports} + need(all(0 <= i < len(self.payloads) for i in data_ports), "compiled port range") + need(all(i >= public_count and i < len(self.payloads) and i not in data_ports + and i not in self.protected_ports for i in self.primitive_work), "separate primitive scratch") + need(len(set(self.primitive_work)) == len(self.primitive_work), "distinct primitive work ports") + need(len(set(self.primitive_context)) == len(self.primitive_context) + and all(i in self.protected_ports and 0 <= i < len(self.payloads) + and i not in data_ports for i in self.primitive_context), "borrowed binary context ports") + self.pc_bits = max(1, (len(self.program) - 1).bit_length()) + self.pc_words = tuple(tuple((pc >> j) & 1 for j in range(self.pc_bits)) + for pc in range(len(self.program))) + need(self.program and self.program[-1].op == "RET", "finite completed program") + + def save_pc(self, pc): + need(self.descriptor.read() == BLANK, "empty active PC descriptor") + for bit in self.pc_words[pc]: + emit(self.descriptor, bit) + origin(self.descriptor, BASE) + + def consume_pc(self): + pc = 0 + for shift in range(self.pc_bits): + bit = self.descriptor.read() + need(bit in (ZERO, ONE), "binary return PC") + pc |= bit << shift + emit(self.descriptor, BLANK) + need(self.descriptor.read() == BLANK, "exact fixed return PC width") + origin(self.descriptor, BASE) + need(pc < len(self.program) and pc > 0 and self.program[pc-1].op == "PAID", + "return PC designates a paid continuation") + return pc + + def has_parent(self): + self.control.move(-1) + symbol = self.control.read() + self.control.move(1) + need(symbol in (BASE, END), "complete continuation top") + return symbol == END + + def descend(self, pc): + event = self.program[pc] + source = self.payloads[event.ports[0]] + transfer(source, self.bridge, target_marker=BASE) + self.rows.prepare(event.token, self.child_header) + self.save_pc(pc + 1) + self.stack.push((True,) * len(self.payloads)) + self.rows.install(self.bridge, self.child_header, + self.payloads[:self.public_count]) + retire(self.bridge, BASE) + retire(self.child_header, BASE) + + def primitive(self, token, fields): + for i in self.primitive_work: + retire(self.payloads[i]) + execute_table(self.services[token], + tuple(self.payloads[i] for i in fields+self.primitive_work), + tuple(self.payloads[i] for i in self.primitive_context)) + for i in self.primitive_work: + retire(self.payloads[i]) + + def ascend(self): + self.rows.collect(self.payloads[:self.public_count], self.bridge) + for tape in self.payloads: + retire(tape) + self.stack.pop() # ignore observer sizes and heads + pc = self.consume_pc() + target = self.payloads[self.program[pc-1].ports[0]] + retire(target) + transfer(self.bridge, target, source_marker=BASE) + retire(self.bridge, BASE) + return pc + + def run(self, observe=None): + pc = 0 + while True: + event = self.program[pc] + if observe is not None: + observe("before", pc, event) # checker only; ignores return value + if event.op == "INIT": + initialize(self.payloads[event.ports[0]], self.payloads[0]) + pc += 1 + elif event.op == "CLEAR": + retire(self.payloads[event.ports[0]]) + pc += 1 + elif event.op == "COPY": + copy_as_add(self.payloads[event.ports[0]], self.payloads[event.ports[1]]) + pc += 1 + elif event.op == "SERVICE": + self.primitive(event.token,event.ports) + pc += 1 + elif event.op == "PAID": + if self.rows.is_leaf(event.token): + self.primitive(("leaf",)+event.token,event.ports) + pc += 1 + else: + self.descend(pc) + pc = 0 + elif event.op == "RET": + if not self.has_parent(): + for i in self.root_cleanup: + retire(self.payloads[i]) + break + pc = self.ascend() + else: + raise ValueError("compiled opcode") + if observe is not None: + observe("after", pc, event) + + +def boundary_actions(q, b, parent_total, child_total, input_length, + output_length, staged_header_length): + """Exact descend+ascend actions, excluding the three row-service calls. + + Also excludes caller leaf/top tests. All heads are at local origins. + Includes PC, all retirement, occupied-target replacement and both relays. + """ + return (4 * parent_total + 5 * child_total + 18 * input_length + + 13 * output_length + 5 * staged_header_length + + 38 * q + 27 * b + 103) diff --git a/research/p104-qself-owned-lowering/vendor/source_ir.py b/research/p104-qself-owned-lowering/vendor/source_ir.py new file mode 100644 index 0000000000..79c95fa794 --- /dev/null +++ b/research/p104-qself-owned-lowering/vendor/source_ir.py @@ -0,0 +1,522 @@ +"""Source-driven lifecycle IR and finite compiler lowering. + +All recursion/dictionaries here belong to template construction, before runtime +input size varies. machine.py executes the resulting fixed finite program. +Prepared for @CubeJerry with substantial OpenAI assistance. Apache-2.0. +""" +from collections import Counter +from dataclasses import dataclass +from fractions import Fraction + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +@dataclass(frozen=True) +class Event: + op: str + fields: tuple + token: tuple = () + rank: int = 0 + + +@dataclass(frozen=True) +class Unit: + name: str + roles: tuple + owned: tuple + events: tuple + + def check(self): + public = {name for name, rank in self.roles} + private = set(self.owned) + need(len(public) == len(self.roles) and len(private) == len(self.owned), "unique unit names") + need(public.isdisjoint(private), "public/private name separation") + need(all(type(r) is int and r >= 1 for _, r in self.roles), "positive target ranks") + live = set() + for e in self.events: + need(e.op in ("INIT", "CLEAR", "COPY", "SERVICE", "PAID"), "unit opcode") + if e.op == "INIT": + need(len(e.fields) == 1 and e.fields[0] in private and e.fields[0] not in live, "fresh private INIT") + live.add(e.fields[0]) + elif e.op == "CLEAR": + need(len(e.fields) == 1 and e.fields[0] in live, "CLEAR only own live bank") + live.remove(e.fields[0]) + else: + need(e.fields and all(f in public or f in live for f in e.fields), "use outside private lifetime") + if e.op == "COPY": + need(len(e.fields) == 2 and e.fields[0] in live + and e.fields[0] != e.fields[1], "private COPY ports") + if e.op == "PAID": + need(len(e.fields) == 1 and type(e.rank) is int and e.rank > 0, "positive whole paid job") + need(not live, "all private lifetimes end") + return self + + def pieces(self): + fragments, rounds = [[]], [] + for e in self.events: + if e.op == "PAID": + rounds.append(e) + fragments.append([]) + else: + fragments[-1].append(e) + return tuple(tuple(f) for f in fragments), tuple(rounds) + + +def remap(event, names, context=(), rank_factor=1): + return Event(event.op, tuple(names[f] for f in event.fields), + context + (event.token,), event.rank * rank_factor) + + +def product(left, right): + """p7-TENSOR chronological substitution; never tensor an operator sum.""" + left.check(); right.check() + lf, lr = left.pieces() + roles = tuple(((i,j),k*h) for i,k in left.roles for j,h in right.roles) + owned, maps, events = [], {}, [] + for j,h in right.roles: + maps[j] = {i:(i,j) for i,_ in left.roles} + for o in left.owned: + fresh = ("left",j,o) + owned.append(fresh); maps[j][o] = fresh + for j,h in right.roles: + for i,_ in left.roles: + events.append(Event("SERVICE",((i,j),),("product-left-enter",j,h,i))) + for ell in range(len(lr)+1): + for j,h in right.roles: + events += [remap(e,maps[j],("product-left",j,h)) for e in lf[ell]] + if ell == len(lr): + break + issuing = lr[ell] + names = {j:maps[j][issuing.fields[0]] for j,_ in right.roles} + need(len(set(names.values())) == len(names), "distinct product request owners") + for o in right.owned: + fresh = ("right",ell,o) + owned.append(fresh); names[o] = fresh + events += [Event("SERVICE",(names[j],),("product-enter",ell,j,issuing.token)) for j,_ in right.roles] + events += [remap(e,names,("product-right",ell,issuing.rank,issuing.token),issuing.rank) for e in right.events] + events += [Event("SERVICE",(names[j],),("product-return",ell,j,issuing.token)) for j,_ in right.roles] + for j,h in right.roles: + for i,_ in left.roles: + events.append(Event("SERVICE",((i,j),),("product-left-return",j,h,i))) + return Unit(left.name+"*"+right.name,roles,tuple(owned),tuple(events)).check() + + +def completion_split(unit, cutoff, floor): + unit.check() + need(0 < cutoff < floor <= max(k for _,k in unit.roles), "completion/splitting domain") + completed = [(name,k) for name,k in unit.roles if k < floor] + events = [Event("SERVICE",(name,),("whole-job-in",k,floor)) for name,k in completed] + extended = list(unit.events) + for name,k in completed: + extended.append(Event("PAID",(name,),("completion",k,floor),floor-k)) + for e in extended: + if e.op != "PAID": + events.append(e); continue + start = 0 + while start < e.rank: + size = min(cutoff,e.rank-start) + token = ("piece",start,size,e.rank,e.token) + events += [Event("SERVICE",e.fields,("piece-enter",)+token), + Event("PAID",e.fields,token,size), + Event("SERVICE",e.fields,("piece-return",)+token)] + start += size + events += [Event("SERVICE",(name,),("whole-job-out",k,floor)) for name,k in completed] + return Unit(unit.name+"/pass",tuple((name,max(k,floor)) for name,k in unit.roles), + unit.owned,tuple(events)).check() + + +def current_local(word): + """Retain every current #6030 operand, chart, lifetime and paid position. + + No all-column algebra is redone. MOVE ranks are the dimension differences + in the authenticated source rule, with their native meaning retained. + """ + p,o = word["public"],word["owned_fields"] + frames = word["frames"] + current = list(word["initial"])+[None]*o + live,untouched,starts,episodes = set(),set(),{},[] + events,moves,peak = [],Counter(),0 + for pc,raw in enumerate(word["program"]): + op,r = raw[:2] + need(type(r) is int and 0 <= r < p+o,"current local role") + token = ("local",pc,tuple(raw)) + if op == "INIT": + need(p <= r and r not in live,"current fresh private INIT") + live.add(r); untouched.add(r); starts[r] = pc + current[r] = raw[2]; peak = max(peak,len(live)) + events.append(Event("INIT",(r,),token)) + elif op == "CLEAR": + need(r in live and current[r] == raw[2],"current owned CLEAR chart") + live.remove(r); untouched.discard(r) + episodes.append((r,starts.pop(r),pc)); current[r] = None + events.append(Event("CLEAR",(r,),token)) + elif op == "MOVE": + need(len(raw) == 5 and type(raw[4]) is bool,"typed private MOVE flag") + need(current[r] == raw[2] and (r in live) == raw[4],"current MOVE owner and chart") + need(r < p or r in live,"live MOVE source") + rank = abs(len(frames[raw[3]])-len(frames[raw[2]])) + need(rank > 0,"current positive MOVE rank") + current[r] = raw[3]; moves[rank] += 1 + untouched.discard(r) + events += [Event("SERVICE",(r,),("move-in",)+token), + Event("PAID",(r,),token,rank), + Event("SERVICE",(r,),("move-out",)+token)] + else: + need(op in ("COPY","ADD","SCALE") and current[r] == raw[-1],"current scalar destination chart") + need(r < p or r in live,"live scalar destination") + coefficient = Fraction(raw[-2]) + need(coefficient != 0,"nonzero source coefficient") + if op == "SCALE": + fields = (r,) + else: + src = raw[2] + need(type(src) is int and 0 <= src < p+o and src != r,"current distinct scalar source") + need((src < p or src in live) and current[src] == raw[-1],"current common scalar chart") + fields = (r,src) + if op == "COPY": + need(r in untouched and coefficient == 1,"current COPY follows untouched INIT with coefficient one") + events.append(Event("COPY",fields,token)) + else: + events.append(Event("SERVICE",fields,token)) + untouched.discard(r) + need(not live and current[:p] == word["final"],"current complete local exit") + return tuple(events),dict(events=len(word["program"]),owned_labels=o, + owned_lifetimes=len(episodes),peak_live=peak, + episodes=episodes,paid=dict(sorted(moves.items()))) + + +def current_caller(word,caller): + """Exact outer/local field maps and explicit copied-query lifetimes. + + Named contact/normalizer/query services retain source endpoint meanings. + Every original scalar/MOVE token and its chronology are preserved. + """ + local_events,report = current_local(word) + ports = tuple(word["live"]) + need(len(ports) == len(set(ports)) == 104,"current 104 ports") + need((caller["kind"],caller["pairs"],caller["prefix_pairs"],caller["ambient_rank"]) + == ("complex",16,7,145),"current physical caller family") + main_local = set(ports)|{x+112 for x in ports} + helpers = sorted(set(range(word["public"]))-main_local) + locals_ = [e for e in caller["physical_events"] if e[0] == "LOCAL"] + need(len(locals_) == 18 and all(not e[3] for e in locals_),"current forward local sites") + public = 32*104+18*len(helpers) + own_first,query_first = public,public+18*word["owned_fields"] + owned = tuple(range(public,query_first+104)) + roles = [] + for i,term in enumerate(caller["diagonal"]): + stages = term[1:] + rank = (9 if stages[0] else 1)+8*sum(stages[1:]) + roles += [(i*104+j,rank) for j in range(104)] + events,local_sites,query_sites = [],[],[] + def scalar(raw,context): + for j in range(104): + fields = (raw[1]*104+j,) if raw[0] == "SCALE" else (raw[1]*104+j,raw[2]*104+j) + events.append(Event("SERVICE",fields,context+(j,tuple(raw)))) + for raw in caller["boundaries"]["right_program"]: + scalar(raw,("boundary-right",)) + local_number = 0 + for site,raw in enumerate(caller["physical_events"]): + op = raw[0] + if op == "LOCAL": + _,stage,pair,reverse = raw + need(not reverse,"all-forward local occurrence") + names = {} + for j,r in enumerate(ports): + names[r] = 2*pair*104+j; names[r+112] = (2*pair+1)*104+j + for j,r in enumerate(helpers): + field = 32*104+local_number*len(helpers)+j + names[r] = field + rank = len(word["frames"][word["final"][r]])-len(word["frames"][word["initial"][r]]) + roles.append((field,rank)) + for j in range(word["owned_fields"]): + names[word["public"]+j] = own_first+local_number*word["owned_fields"]+j + need(len(names) == len(set(names.values())) == word["public"]+word["owned_fields"], + "injective complete current local grant") + for r in range(word["public"]): + events.append(Event("SERVICE",(names[r],),("local-entry",site,stage,r))) + events += [remap(e,names,("caller-local",site,stage)) for e in local_events] + for r in range(word["public"]): + events.append(Event("SERVICE",(names[r],),("local-return",site,stage,r))) + local_sites.append((site,stage,tuple(sorted(names.items())))); local_number += 1 + elif op == "QUERY_SHEAR": + _,stage,pair,reverse = raw + need(not reverse,"current forward query") + for j in range(104): + x,y,z = 2*pair*104+j,(2*pair+1)*104+j,query_first+j + token = ("query",site,stage,j) + events += [Event("INIT",(z,),token),Event("COPY",(z,x),token), + Event("SERVICE",(z,),("query-in",)+token),Event("PAID",(z,),token,1), + Event("SERVICE",(z,),("query-out",)+token), + Event("SERVICE",(y,z),("query-add",)+token),Event("CLEAR",(z,),token)] + query_sites.append((site,j,x,y,z)) + elif op == "IDLE": + for side in (0,1): + for j in range(104): + field = (2*raw[1]+side)*104+j + token = ("idle",site,tuple(raw[2]),side,j) + events += [Event("SERVICE",(field,),("idle-in",)+token), + Event("PAID",(field,),token,8*len(raw[2])), + Event("SERVICE",(field,),("idle-out",)+token)] + elif op == "Q_POWER": + for j in range(104): + events.append(Event("SERVICE",(raw[1]*104+j,),("central-square",site,j,raw[2]))) + else: + need(op in ("ADD","SWAP","SIGNED_SWAP"),"current outer scalar opcode") + scalar(raw,("outer",site)) + for raw in caller["boundaries"]["left_program"]: + scalar(raw,("boundary-left",)) + roles = tuple(sorted(roles)) + need([r for r,_ in roles] == list(range(public)),"every productive field supplied once") + # The pinned occurrence theorem supplies the complete 145-coordinate + # whole-job canonicalizers. Each is a charged service, never a free name. + events = ([Event("SERVICE",(r,),("raw-whole-job-enter",r,k)) for r,k in roles] + +events+[Event("SERVICE",(r,),("raw-whole-job-return",r,k)) for r,k in roles]) + unit = Unit("selected6030",roles,owned,tuple(events)).check() + report.update(public_count=public,raw_owned=len(owned),local_sites=len(local_sites), + query_lifetimes=len(query_sites),total_lifetimes=18*report["owned_lifetimes"]+len(query_sites), + raw_paid=dict(sorted(Counter(e.rank for e in events if e.op=="PAID").items())), + raw_targets=dict(sorted(Counter(k for _,k in roles).items())),raw_events=len(events)) + return unit,report + + +def lower(unit,rank,source): + """Refine #5443's unchanged matching, with no partial/interface fallback. + + Insert all inter-round fragments before a class is suspended. Flatten + finite compiler substitutions; only rank-one leaves make runtime children. + """ + unit.check() + fragments,rounds = unit.pieces() + need(rounds,"nonempty paid word") + need(max(e.rank for e in rounds)