diff --git a/research/balanced-nullity-banks-163/AUDIT-TARGETS.json b/research/balanced-nullity-banks-163/AUDIT-TARGETS.json new file mode 100644 index 0000000000..31acd84088 --- /dev/null +++ b/research/balanced-nullity-banks-163/AUDIT-TARGETS.json @@ -0,0 +1,54 @@ +[ + "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_apply", + "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_zero", + "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_comp_disjoint", + "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_involutive", + "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_id", + "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_commute", + "Mathproof.BeyondNLogN.TakeoverBit.bankSwap_eq_sum", + "Mathproof.BeyondNLogN.TakeoverBit.bankSwap_full", + "Mathproof.BeyondNLogN.TakeoverBit.weighted_apply", + "Mathproof.BeyondNLogN.TakeoverBit.weighted_comp", + "Mathproof.BeyondNLogN.TakeoverBit.weighted_id", + "Mathproof.BeyondNLogN.TakeoverBit.weightedBank_eq", + "Mathproof.BeyondNLogN.TakeoverBit.weightedBank_full", + "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_apply", + "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_idempotent", + "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_disjoint", + "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_sum", + "Mathproof.BeyondNLogN.TakeoverBit.coordinateBank_full", + "Mathproof.BeyondNLogN.TakeoverBit.bankAddress_bijective", + "Mathproof.BeyondNLogN.TakeoverBit.bankAddress_roles_injective", + "Mathproof.BeyondNLogN.TakeoverBit.P12.selected_block_capacity", + "Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_block_capacity", + "Mathproof.BeyondNLogN.TakeoverBit.P12.selected_bank_full", + "Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_bank_full", + "Mathproof.BeyondNLogN.TakeoverBit.P12.inherited_rank_mass", + "Mathproof.BeyondNLogN.TakeoverBit.P12.removed_exterior_count", + "Mathproof.BeyondNLogN.TakeoverBit.P12.packed_rank_mass", + "Mathproof.BeyondNLogN.TakeoverBit.P12.packed_max_rank", + "Mathproof.BeyondNLogN.TakeoverBit.P12.normalized_volume", + "Mathproof.BeyondNLogN.TakeoverBit.P12.packed_deficit", + "Mathproof.BeyondNLogN.TakeoverBit.P12.actual_role_counts", + "Mathproof.BeyondNLogN.TakeoverBit.P12.selected_weighted_bank_full", + "Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_weighted_bank_full", + "Mathproof.BeyondNLogN.TakeoverBit.Contents.run_eq_address", + "Mathproof.BeyondNLogN.TakeoverBit.Contents.run_full", + "Mathproof.BeyondNLogN.TakeoverBit.Contents.p12_selected_contents", + "Mathproof.BeyondNLogN.TakeoverBit.Contents.p12_undeferred_contents", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.inherited_rank_mass", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.removed_exterior_count", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_rank_mass", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_max_rank", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.normalized_volume", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_deficit", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.actual_role_counts", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.actual_bank_and_inventory_certificate", + "Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.literal_charge_lt", + "Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.finite_row_reserve", + "Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.row_reserve_value", + "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.core_slacks_positive", + "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.all_47_slacks_positive", + "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.strengthened_public_margin", + "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.all_47_concrete_guards" +] diff --git a/research/balanced-nullity-banks-163/BankAndBalanced.lean b/research/balanced-nullity-banks-163/BankAndBalanced.lean new file mode 100644 index 0000000000..b681bd7acf --- /dev/null +++ b/research/balanced-nullity-banks-163/BankAndBalanced.lean @@ -0,0 +1,625 @@ +/- Publication snapshot: actual bank endpoints and conditional finite arithmetic only. -/ +import Mathlib.LinearAlgebra.Prod +import Mathlib.Tactic.Abel +import Mathlib.Algebra.BigOperators.Group.List.Defs +import Mathlib.Data.List.Pairwise +import Mathlib.Data.List.FinRange +import Mathlib.Data.Fintype.Card +import Mathlib.Data.Nat.Basic +import Mathlib.Tactic.NormNum +import Mathlib.Tactic.FinCases +import Mathlib.Tactic.GCongr +import Mathlib.Tactic.Linarith +import Mathlib.Tactic.Positivity +import Mathlib.Data.Real.Basic +import Mathlib.Tactic.NormNum + + +/-! Exact partial bit address interchanges for split-projector bank packing. +No supplier, routing, recurrence, precision, or tape theorem is assumed here. -/ +namespace Mathproof.BeyondNLogN.TakeoverBit + +variable {R V : Type*} [CommRing R] [AddCommGroup V] [Module R V] + +/-- Exchange the P-address component between two arbitrary incoming banks. -/ +def partialSwap (P : V →ₗ[R] V) : (V × V) →ₗ[R] (V × V) where + toFun z := (z.1 - P z.1 + P z.2, z.2 - P z.2 + P z.1) + map_add' a b := by + apply Prod.ext <;> simp only [Prod.fst_add, Prod.snd_add, map_add] <;> abel + map_smul' r z := by + apply Prod.ext <;> simp only [Prod.smul_fst, Prod.smul_snd, map_smul, + RingHom.id_apply, smul_add, smul_sub] + +@[simp] theorem partialSwap_apply (P : V →ₗ[R] V) (z : V × V) : + partialSwap P z = (z.1 - P z.1 + P z.2, z.2 - P z.2 + P z.1) := rfl + +@[simp] theorem partialSwap_zero : partialSwap (0 : V →ₗ[R] V) = LinearMap.id := by + apply LinearMap.ext + intro z + simp + +/-- Every disjoint projector pair composes by adding its exchanged components. +The incoming pair is arbitrary, so correlated dirty contents are included. -/ +theorem partialSwap_comp_disjoint (P Q : V →ₗ[R] V) + (hPQ : P.comp Q = 0) (hQP : Q.comp P = 0) : + (partialSwap P).comp (partialSwap Q) = partialSwap (P + Q) := by + have hpq (z : V) : P (Q z) = 0 := by + simpa using LinearMap.congr_fun hPQ z + have hqp (z : V) : Q (P z) = 0 := by + simpa using LinearMap.congr_fun hQP z + apply LinearMap.ext + intro z + rcases z with ⟨x,y⟩ + apply Prod.ext <;> + simp only [LinearMap.comp_apply, partialSwap_apply, map_add, map_sub, + LinearMap.add_apply, hpq] <;> abel + +/-- A completed split-projector core is its own exact inverse. -/ +theorem partialSwap_involutive (P : V →ₗ[R] V) (hP : P.comp P = P) : + Function.Involutive (partialSwap P) := by + have hpp (z : V) : P (P z) = P z := by + simpa using LinearMap.congr_fun hP z + intro z + rcases z with ⟨x,y⟩ + apply Prod.ext <;> simp only [partialSwap_apply, map_add, map_sub, hpp] <;> abel + +@[simp] theorem partialSwap_id (z : V × V) : + partialSwap (LinearMap.id : V →ₗ[R] V) z = (z.2,z.1) := by + simp + +/-- Split-projector factors commute at the actual address-map level. -/ +theorem partialSwap_commute (P Q : V →ₗ[R] V) + (hPQ : P.comp Q = 0) (hQP : Q.comp P = 0) : + (partialSwap P).comp (partialSwap Q) = + (partialSwap Q).comp (partialSwap P) := by + rw [partialSwap_comp_disjoint P Q hPQ hQP, + partialSwap_comp_disjoint Q P hQP hPQ, add_comm] + + + + +/-- Execute completed cores in any explicit chronological bank schedule. -/ +def bankSwap : List (V →ₗ[R] V) → ((V × V) →ₗ[R] (V × V)) + | [] => LinearMap.id + | P :: Ps => (partialSwap P).comp (bankSwap Ps) + +private theorem comp_sum_zero (P : V →ₗ[R] V) (Ps : List (V →ₗ[R] V)) + (h : ∀ Q ∈ Ps, P.comp Q = 0) : P.comp Ps.sum = 0 := by + induction Ps with + | nil => simp + | cons Q Ps ih => + have hQ := h Q (by simp) + have ht : ∀ A ∈ Ps, P.comp A = 0 := fun A hA => h A (by simp [hA]) + simp only [List.sum_cons, LinearMap.comp_add, hQ, ih ht, zero_add] + +private theorem sum_comp_zero (P : V →ₗ[R] V) (Ps : List (V →ₗ[R] V)) + (h : ∀ Q ∈ Ps, Q.comp P = 0) : Ps.sum.comp P = 0 := by + induction Ps with + | nil => simp + | cons Q Ps ih => + have hQ := h Q (by simp) + have ht : ∀ A ∈ Ps, A.comp P = 0 := fun A hA => h A (by simp [hA]) + simp only [List.sum_cons, LinearMap.add_comp, hQ, ih ht, zero_add] + +/-- A whole shared bank executes exactly the swap on the sum of its disjoint +address blocks. The statement is on every input, not only clean scratch. -/ +theorem bankSwap_eq_sum (Ps : List (V →ₗ[R] V)) + (h : Ps.Pairwise (fun P Q => P.comp Q = 0 ∧ Q.comp P = 0)) : + bankSwap Ps = partialSwap Ps.sum := by + induction Ps with + | nil => simp [bankSwap] + | cons P Ps ih => + rcases List.pairwise_cons.mp h with ⟨hp, ht⟩ + rw [bankSwap, ih ht, List.sum_cons] + exact partialSwap_comp_disjoint P Ps.sum + (comp_sum_zero P Ps (fun Q hQ => (hp Q hQ).1)) + (sum_comp_zero P Ps (fun Q hQ => (hp Q hQ).2)) + +/-- A complete split partition needs no exterior auxiliary child. -/ +theorem bankSwap_full (Ps : List (V →ₗ[R] V)) + (h : Ps.Pairwise (fun P Q => P.comp Q = 0 ∧ Q.comp P = 0)) + (hsum : Ps.sum = LinearMap.id) (z : V × V) : + bankSwap Ps z = (z.2,z.1) := by + rw [bankSwap_eq_sum Ps h, hsum] + exact partialSwap_id z + +/-- One common ancestor-dependent weighted chart, retained for the whole bank. -/ +def weighted (A : (V × V) ≃ₗ[R] (V × V)) + (T : (V × V) →ₗ[R] (V × V)) : (V × V) →ₗ[R] (V × V) := + A.toLinearMap.comp (T.comp A.symm.toLinearMap) + +@[simp] theorem weighted_apply (A : (V × V) ≃ₗ[R] (V × V)) + (T : (V × V) →ₗ[R] (V × V)) (z : V × V) : + weighted A T z = A (T (A.symm z)) := rfl + +/-- Chart conjugations telescope exactly, with no restriction on dirty data. -/ +theorem weighted_comp (A : (V × V) ≃ₗ[R] (V × V)) + (T U : (V × V) →ₗ[R] (V × V)) : + (weighted A T).comp (weighted A U) = weighted A (T.comp U) := by + apply LinearMap.ext + intro z + simp + +@[simp] theorem weighted_id (A : (V × V) ≃ₗ[R] (V × V)) : + weighted A (LinearMap.id : (V × V) →ₗ[R] (V × V)) = LinearMap.id := by + apply LinearMap.ext + intro z + simp + +def weightedBank (A : (V × V) ≃ₗ[R] (V × V)) : + List (V →ₗ[R] V) → ((V × V) →ₗ[R] (V × V)) + | [] => LinearMap.id + | P :: Ps => (weighted A (partialSwap P)).comp (weightedBank A Ps) + +/-- Every paid weighted core is retained in its chronological product. -/ +theorem weightedBank_eq (A : (V × V) ≃ₗ[R] (V × V)) + (Ps : List (V →ₗ[R] V)) : weightedBank A Ps = weighted A (bankSwap Ps) := by + induction Ps with + | nil => simp [weightedBank, bankSwap] + | cons P Ps ih => + rw [weightedBank, ih, weighted_comp, bankSwap] + +/-- Heterogeneous completed-core packing has the exact full weighted endpoint. -/ +theorem weightedBank_full (A : (V × V) ≃ₗ[R] (V × V)) + (Ps : List (V →ₗ[R] V)) + (h : Ps.Pairwise (fun P Q => P.comp Q = 0 ∧ Q.comp P = 0)) + (hsum : Ps.sum = LinearMap.id) (z : V × V) : + weightedBank A Ps z = A ((A.symm z).2,(A.symm z).1) := by + rw [weightedBank_eq, weighted_apply, bankSwap_full Ps h hsum] + + + +section CoordinateBanks +variable {ι κ : Type*} [DecidableEq ι] + +/-- Explicit split address blocks from an actual coordinate-owner ledger. -/ +def coordinateProjector (owner : κ → ι) (s : ι) : + (κ → R) →ₗ[R] (κ → R) where + toFun v k := if owner k = s then v k else 0 + map_add' v w := by + funext k + by_cases h : owner k = s <;> simp [h] + map_smul' r v := by + funext k + by_cases h : owner k = s <;> simp [h] + +@[simp] theorem coordinateProjector_apply (owner : κ → ι) (s : ι) + (v : κ → R) (k : κ) : + coordinateProjector (R := R) owner s v k = if owner k = s then v k else 0 := rfl + +theorem coordinateProjector_idempotent (owner : κ → ι) (s : ι) : + (coordinateProjector (R := R) owner s).comp (coordinateProjector (R := R) owner s) = + coordinateProjector (R := R) owner s := by + apply LinearMap.ext + intro v + funext k + by_cases h : owner k = s <;> simp [h] + +theorem coordinateProjector_disjoint (owner : κ → ι) (s t : ι) (hst : s ≠ t) : + (coordinateProjector (R := R) owner s).comp (coordinateProjector (R := R) owner t) = 0 := by + apply LinearMap.ext + intro v + funext k + by_cases h : owner k = s + · have ht : owner k ≠ t := by simpa [h] using hst + simp [h,hst] + · simp [h] + +private theorem coordinateProjector_sum_apply (owner : κ → ι) + (roles : List ι) (hroles : roles.Nodup) (v : κ → R) (k : κ) : + (roles.map (coordinateProjector (R := R) owner)).sum v k = + if owner k ∈ roles then v k else 0 := by + induction roles with + | nil => simp + | cons s roles ih => + rcases List.nodup_cons.mp hroles with ⟨hs, ht⟩ + simp only [List.map_cons, List.sum_cons, LinearMap.add_apply, Pi.add_apply, + coordinateProjector_apply, ih ht, List.mem_cons] + by_cases he : owner k = s + · have hn : owner k ∉ roles := by simpa [he] using hs + simp [he,hs] + · simp [he] + +/-- A disjoint exhaustive coordinate ledger gives an actual identity projector. -/ +theorem coordinateProjector_sum (owner : κ → ι) (roles : List ι) + (hroles : roles.Nodup) (hcover : ∀ k, owner k ∈ roles) : + (roles.map (coordinateProjector (R := R) owner)).sum = LinearMap.id := by + apply LinearMap.ext + intro v + funext k + rw [coordinateProjector_sum_apply owner roles hroles v k] + simp [hcover k] + +/-- The concrete coordinate-owner construction supplies every projector premise +of the heterogeneous bank endpoint, including arbitrary incoming correlations. -/ +theorem coordinateBank_full (owner : κ → ι) (roles : List ι) + (hroles : roles.Nodup) (hcover : ∀ k, owner k ∈ roles) + (z : (κ → R) × (κ → R)) : + bankSwap (roles.map (coordinateProjector (R := R) owner)) z = (z.2,z.1) := by + apply bankSwap_full + · rw [List.pairwise_map] + exact (List.nodup_iff_pairwise_ne.mp hroles).imp (fun hst => + ⟨coordinateProjector_disjoint owner _ _ hst, + coordinateProjector_disjoint owner _ _ (Ne.symm hst)⟩) + · exact coordinateProjector_sum owner roles hroles hcover + +end CoordinateBanks + +section Routing +variable {G S : Type*} [Group G] + +/-- Actual bank address for invocation g and fixed role embedding H_s. -/ +def bankAddress (H : S → G) (g : G) (s : S) : G := g * (H s)⁻¹ + +/-- Every role visits every physical bank once; no favorable subset is selected. -/ +theorem bankAddress_bijective (H : S → G) (s : S) : + Function.Bijective (fun g => bankAddress H g s) := by + constructor + · intro g g' h + exact mul_right_cancel h + · intro b + refine ⟨b * H s, ?_⟩ + simp [bankAddress, mul_assoc] + +/-- Distinct role embeddings rule out within-invocation physical aliasing. -/ +theorem bankAddress_roles_injective (H : S → G) (hH : Function.Injective H) + (g : G) : Function.Injective (bankAddress H g) := by + intro s t h + apply hH + have hi : (H s)⁻¹ = (H t)⁻¹ := mul_left_cancel h + exact inv_injective hi + +end Routing +end Mathproof.BeyondNLogN.TakeoverBit + + + + + +/-! Concrete PR155 p12 bit orbit-bank construction and complete paid ledger. +The inherited all-input local word, stage cover and routing contracts remain +explicit upstream dependencies; this file proves the new address endpoints, +coordinate capacities and exact inventory, not an all-size running-time claim. -/ +namespace Mathproof.BeyondNLogN.TakeoverBit.P12 +open Mathproof.BeyondNLogN.TakeoverBit + +variable {R : Type*} [CommRing R] + +/-- The 18 actual disjoint four-coordinate blocks for retained-gauge cores. -/ +def selectedOwner (j : Fin 72) : Fin 18 := ⟨j.val / 4, by omega⟩ + +/-- The three actual disjoint 24-coordinate blocks for undeferred cores. -/ +def undeferredOwner (j : Fin 72) : Fin 3 := ⟨j.val / 24, by omega⟩ + +theorem selected_block_capacity (s : Fin 18) : + (Finset.univ.filter (fun j : Fin 72 => selectedOwner j = s)).card = 4 := by + fin_cases s <;> decide + +theorem undeferred_block_capacity (s : Fin 3) : + (Finset.univ.filter (fun j : Fin 72 => undeferredOwner j = s)).card = 24 := by + fin_cases s <;> decide + +/-- Eighteen completed selected cores cover the entire address module. -/ +theorem selected_bank_full (z : (Fin 72 → R) × (Fin 72 → R)) : + bankSwap ((List.finRange 18).map (coordinateProjector (R := R) selectedOwner)) z = + (z.2,z.1) := by + exact coordinateBank_full selectedOwner (List.finRange 18) + (List.nodup_finRange 18) (fun k => by simp) z + +/-- Three completed undeferred cores also cover the entire address module. -/ +theorem undeferred_bank_full (z : (Fin 72 → R) × (Fin 72 → R)) : + bankSwap ((List.finRange 3).map (coordinateProjector (R := R) undeferredOwner)) z = + (z.2,z.1) := by + exact coordinateBank_full undeferredOwner (List.finRange 3) + (List.nodup_finRange 3) (fun k => by simp) z + +/-- Every child in the immutable freshly replayed p12 profile, including rank60. -/ +def inheritedHistogram : List (Nat × Nat) := + [(1,120468),(2,68080),(3,28824),(4,7200),(5,11952),(6,3312), + (7,6120),(8,4464),(9,1440),(10,2016),(11,2664),(12,3528), + (13,1944),(14,2736),(15,1152),(16,4104),(17,6192),(18,5832), + (19,4536),(20,7260),(21,8580),(22,15912),(60,5720)] + +/-- The actual coordinate-full orbit banks remove precisely auxiliary exteriors; +all internal, source, target, center and data exterior entries remain charged. -/ +def packedHistogram : List (Nat × Nat) := + inheritedHistogram.filter (fun p => p.1 != 60) + +def rankMass (H : List (Nat × Nat)) : Nat := + (H.map (fun p => p.1*p.2)).sum + +theorem inherited_rank_mass : rankMass inheritedHistogram = 2096432 := by decide + +theorem removed_exterior_count : + (inheritedHistogram.filter (fun p => p.1 == 60)).map Prod.snd = [5720] := by decide + +theorem packed_rank_mass : rankMass packedHistogram = 1753232 := by decide + +theorem packed_max_rank : ∀ p ∈ packedHistogram, p.1 ≤ 22 := by decide + +/-- Three private stage banks for every full orbit, including fractional stock. -/ +def normalizedVolume : ℚ := 2*1760 + 3*((5720:ℚ)/18 + (19904:ℚ)/3) + +theorem normalized_volume : normalizedVolume = 73132/3 := by + norm_num [normalizedVolume] + +theorem packed_deficit : (72:ℚ)*normalizedVolume - rankMass packedHistogram = 1936 := by + rw [packed_rank_mass, normalized_volume] + norm_num + +theorem actual_role_counts : + 5720 + 19904 = (25624:Nat) ∧ 18*4 = (72:Nat) ∧ 3*24 = (72:Nat) := by decide + + + + +/-- The actual common weighted chart retains the selected-bank full endpoint. -/ +theorem selected_weighted_bank_full + (A : ((Fin 72 → R) × (Fin 72 → R)) ≃ₗ[R] ((Fin 72 → R) × (Fin 72 → R))) + (z : (Fin 72 → R) × (Fin 72 → R)) : + weightedBank A ((List.finRange 18).map (coordinateProjector (R := R) selectedOwner)) z = + A ((A.symm z).2,(A.symm z).1) := by + rw [weightedBank_eq, weighted_apply, selected_bank_full] + +/-- The same exact weighted endpoint holds for every undeferred bank. -/ +theorem undeferred_weighted_bank_full + (A : ((Fin 72 → R) × (Fin 72 → R)) ≃ₗ[R] ((Fin 72 → R) × (Fin 72 → R))) + (z : (Fin 72 → R) × (Fin 72 → R)) : + weightedBank A ((List.finRange 3).map (coordinateProjector (R := R) undeferredOwner)) z = + A ((A.symm z).2,(A.symm z).1) := by + rw [weightedBank_eq, weighted_apply, undeferred_bank_full] + +end Mathproof.BeyondNLogN.TakeoverBit.P12 + + + +/-! Lift the checked address maps to actual arbitrary register contents. +No clean-scratch or independence assumption occurs in these statements. -/ +namespace Mathproof.BeyondNLogN.TakeoverBit.Contents +open Mathproof.BeyondNLogN.TakeoverBit + +variable {R V B : Type*} [CommRing R] [AddCommGroup V] [Module R V] + +/-- Chronological execution on the complete contents of a physical bank. -/ +def run : List (V →ₗ[R] V) → ((V × V) → B) → ((V × V) → B) + | [], contents => contents + | P :: Ps, contents => run Ps (fun z => contents (partialSwap P z)) + +theorem run_eq_address (Ps : List (V →ₗ[R] V)) (contents : (V × V) → B) + (z : V × V) : run Ps contents z = contents (bankSwap Ps z) := by + induction Ps generalizing contents with + | nil => rfl + | cons P Ps ih => + simp only [run, ih, bankSwap, LinearMap.comp_apply] + +/-- A complete split partition executes the full transform on every dirty table. -/ +theorem run_full (Ps : List (V →ₗ[R] V)) + (h : Ps.Pairwise (fun P Q => P.comp Q = 0 ∧ Q.comp P = 0)) + (hsum : Ps.sum = LinearMap.id) (contents : (V × V) → B) (z : V × V) : + run Ps contents z = contents (z.2,z.1) := by + rw [run_eq_address, bankSwap_full Ps h hsum] + +/-- The actual p12 selected orbit bank works for arbitrary full bank contents. -/ +theorem p12_selected_contents + (contents : ((Fin 72 → R) × (Fin 72 → R)) → B) + (z : (Fin 72 → R) × (Fin 72 → R)) : + run ((List.finRange 18).map (coordinateProjector (R := R) P12.selectedOwner)) contents z = + contents (z.2,z.1) := by + rw [run_eq_address, P12.selected_bank_full] + +/-- The actual p12 undeferred orbit bank has the same unconditional endpoint. -/ +theorem p12_undeferred_contents + (contents : ((Fin 72 → R) × (Fin 72 → R)) → B) + (z : (Fin 72 → R) × (Fin 72 → R)) : + run ((List.finRange 3).map (coordinateProjector (R := R) P12.undeferredOwner)) contents z = + contents (z.2,z.1) := by + rw [run_eq_address, P12.undeferred_bank_full] + +end Mathproof.BeyondNLogN.TakeoverBit.Contents + + + +/-! Immutable PR161 p12 bank specialization. The actual coordinate-owner, +weighted-chart and dirty-content endpoints are reused from the independently +checked P12 construction; only the new frozen supplier inventory is specialized. +The retained all-input local word, charts, stage cover, routing, fallback and +sharp all-size framework are upstream contracts, not proved by this ledger. -/ +namespace Mathproof.BeyondNLogN.TakeoverBit.PR161P12 +open Mathproof.BeyondNLogN.TakeoverBit + +/-- Complete child inventory from immutable PR161 head +`d14e29157bc905be1ced0776dd893d0714013f3a`, profile_p12.json. -/ +def inheritedHistogram : List (Nat × Nat) := + [(1,120972),(2,73336),(3,29832),(4,8208),(5,12096),(6,4392), + (7,4824),(8,2736),(9,648),(10,2160),(11,2016),(12,4464), + (13,1080),(14,2232),(15,216),(16,2808),(17,2736),(18,3888), + (19,3672),(20,7260),(21,8580),(22,15912),(60,5720)] + +/-- Eighteen actual four-coordinate selected cores cover Fin72, so their +auxiliary rank60 exterior is removed; all other children remain charged. -/ +def packedHistogram : List (Nat × Nat) := + inheritedHistogram.filter (fun p => p.1 != 60) + +/-- Three stage banks, with selected roles grouped eighteen at a time and +undeferred roles grouped three at a time. -/ +def normalizedVolume : ℚ := 2*1760 + 3*((5720:ℚ)/18 + (17648:ℚ)/3) + +theorem inherited_rank_mass : P12.rankMass inheritedHistogram = 1934000 := by decide + +theorem removed_exterior_count : + (inheritedHistogram.filter (fun p => p.1 == 60)).map Prod.snd = [5720] := by decide + +theorem packed_rank_mass : P12.rankMass packedHistogram = 1590800 := by decide + +theorem packed_max_rank : ∀ p ∈ packedHistogram, p.1 ≤ 22 := by decide + +theorem normalized_volume : normalizedVolume = 66364/3 := by + norm_num [normalizedVolume] + +theorem packed_deficit : + (72:ℚ)*normalizedVolume - P12.rankMass packedHistogram = 1936 := by + rw [packed_rank_mass, normalized_volume] + norm_num + +theorem actual_role_counts : + 5720 + 17648 = (23368:Nat) ∧ 18*4 = (72:Nat) ∧ 3*24 = (72:Nat) := by decide + +/-- New source binding assembled with actual reused coordinate projectors; +no new abstract packing gadget or independence of register contents is assumed. -/ +theorem actual_bank_and_inventory_certificate + {R : Type*} [CommRing R] (z : (Fin 72 → R) × (Fin 72 → R)) : + (∀ s : Fin 18, (Finset.univ.filter + (fun j : Fin 72 => P12.selectedOwner j = s)).card = 4) ∧ + (∀ s : Fin 3, (Finset.univ.filter + (fun j : Fin 72 => P12.undeferredOwner j = s)).card = 24) ∧ + bankSwap ((List.finRange 18).map + (coordinateProjector (R := R) P12.selectedOwner)) z = (z.2,z.1) ∧ + bankSwap ((List.finRange 3).map + (coordinateProjector (R := R) P12.undeferredOwner)) z = (z.2,z.1) ∧ + normalizedVolume = 66364/3 ∧ + P12.rankMass packedHistogram = 1590800 ∧ + (72:ℚ)*normalizedVolume - P12.rankMass packedHistogram = 1936 := by + exact ⟨P12.selected_block_capacity, P12.undeferred_block_capacity, + P12.selected_bank_full z, P12.undeferred_bank_full z, + normalized_volume, packed_rank_mass, packed_deficit⟩ + +end Mathproof.BeyondNLogN.TakeoverBit.PR161P12 + + + +/-! The finite literal guard is discharged by an elementary universal charge +bound. No positive-guard oracle is used. The condition s ≤ mW is the ordinary +rank-mass bound of a finite supplier, not an unknown algorithm interface. -/ +namespace Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008 + +theorem literal_charge_lt (W m G s : ℝ) + (hW : 0 ≤ W) (hm : 0 ≤ m) (hG : 0 ≤ G) (hs : s ≤ m*W) : + 2*G*W*W+8*s+4*W+4+32*m < 64*(W+m+G+1)^3 := by + let X := W+m+G+1 + have hX : 1 ≤ X := by dsimp [X]; linarith + have hX0 : 0 ≤ X := by linarith + have hWX : W ≤ X := by dsimp [X]; linarith + have hmX : m ≤ X := by dsimp [X]; linarith + have hGX : G ≤ X := by dsimp [X]; linarith + have hcube : 0 < X^3 := by positivity + have hquad : X ≤ X^2 := by nlinarith + have hquad_cube : X^2 ≤ X^3 := by + have hp := mul_nonneg (show 0 ≤ X-1 by linarith) (sq_nonneg X) + nlinarith + have hfirst : 2*G*W*W ≤ 2*X*X*X := by gcongr + have hsecond : m*W ≤ X*X := by gcongr + have hlarge : 2*G*W*W+8*s+4*W+4+32*m ≤ 50*X^3 := by + nlinarith + dsimp [X] at hlarge hcube + linarith + +theorem finite_row_reserve : (0 : ℝ) < 70000-(51*12320/25) := by norm_num + +theorem row_reserve_value : (70000-(51*12320/25) : ℝ) = 224336/5 := by norm_num + + +end Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008 + + + +/- Source-bound arithmetic for PR163 paid balanced transfer and our new nullity-bank refinement. + This is not a formalization of all-size integer multiplication. -/ +namespace Mathproof.BeyondNLogN.TakeoverBalanced16320261009 +noncomputable def a : ℝ := (297370240363722999999999702129759636277/500000000000000000000000000000000000000000) +noncomputable def b : ℝ := (297370240363723/500000000000000000) +noncomputable def eta : ℝ := (1/1000000000000000000000000) +noncomputable def beta : ℝ := (1/1000000000000000000000000) +noncomputable def kappa : ℝ := (118877394946471/200000000000000000) +noncomputable def tau : ℝ := 1-a +noncomputable def sigma : ℝ := 1-b +noncomputable def q : ℝ := a*(1-2*eta) +noncomputable def c : ℝ := q+eta/4 +noncomputable def eps : ℝ := (1-eta)/(1+q) +noncomputable def lp : ℝ := 1-q +noncomputable def lam : ℝ := (tau+lp)/2 +noncomputable def g : ℝ := eps*q +noncomputable def r : ℝ := (g+1-eps)/2 +noncomputable def delta : ℝ := eta/8 +noncomputable def internal : ℝ := tau+(1-beta)*max (sigma-tau) 0 +noncomputable def leaf : ℝ := sigma+beta*(1-sigma) +noncomputable def coreSlacks : List ℝ := [ + (a) /- bit_positive -/, + (b-a) /- complex_above_bit -/, + (1/32-b) /- complex_below_one_over32 -/, + (beta) /- beta_positive -/, + (1-beta) /- beta_below_one -/, + ((1-beta)*b-a) /- leaf_saving_above_bit -/, + (q) /- q_positive -/, + (1-internal-q) /- q_below_internal -/, + (1-leaf-q) /- q_below_leaf -/, + (c) /- c_positive -/, + (1-c) /- c_below_one -/, + (c-q) /- q_below_reservations -/, + (lam-tau) /- lambda_above_tau -/, + (lam-sigma) /- lambda_above_sigma -/, + (lam-internal) /- lambda_above_internal -/, + (lp-lam) /- lambda_prime_above_lambda -/, + (lp-leaf) /- compact_leaf -/, + (lp-(1-c)) /- compact_reservations -/, + (q) /- lambda_prime_below_one -/, + (eps) /- epsilon_positive -/, + (1-eps) /- epsilon_below_one -/, + (1-eps) /- guard_width -/, + (1-eps*(1+c)) /- K_geometry -/, + (eps*c) /- K_dominates_log -/, + (1-eps) /- record_suffix -/, + (1-eps-delta) /- phase_local -/, + (r-delta) /- phase_boundary -/, + (1-eps-r) /- gamma_sublinear -/, + (eps-(1-r)/2) /- cell_above_band -/, + (1-eps) /- prime_interval_packing -/, + (r) /- alpha_positive -/, + (1-r) /- alpha_below_one -/, + (1/4-r) /- alpha_below_one_fourth -/, + (delta) /- delta_positive -/, + (1/8-delta) /- delta_below_one_eighth -/, + (eps-a) /- short_record_fallback -/, + (1-eps-g) /- small_field_exposure -/, + (8-eps+r-delta-g) /- artificial_boundary -/, + ((1-eps)-kappa) /- paid_balanced_prefix_above_kappa -/, + ((a)-kappa) /- coordinate_movement_above_kappa -/, + ((g)-kappa) /- compact_phase_layer_above_kappa -/, + ((a)-kappa) /- bulk_exposure_above_kappa -/, + ((min (1-eps-delta) (r-delta))-kappa) /- Gaussian_arithmetic_above_kappa -/, + ((1-eps-delta)-kappa) /- scalar_work_above_kappa -/, + ((eps)-kappa) /- dimension_above_kappa -/ +] +theorem core_slacks_positive : ∀ x ∈ coreSlacks, 0 < x := by + norm_num [coreSlacks, a, b, eta, beta, kappa, tau, sigma, q, c, eps, lp, lam, g, r, delta, internal, leaf] + +theorem all_47_slacks_positive (literal row : ℝ) + (hl : 0 < literal) (hr : 0 < row) : + ∀ x ∈ coreSlacks ++ [literal, row], 0 < x := by + intro x hx + rcases List.mem_append.mp hx with h | h + · exact core_slacks_positive x h + · simp only [List.mem_cons, List.not_mem_nil, or_false] at h + rcases h with h | h + · simpa [h] using hl + · simpa [h] using hr + +theorem strengthened_public_margin : + (148492550769873/250000000000000000 : ℝ) < kappa ∧ kappa < g := by + norm_num [kappa, g, eps, c, q, a, eta] + +/-- Complete arithmetic composition of our certified bit bank with the +pinned PR163 paid balanced transfer physical complex supplier. All finite guards are proved, subject +only to explicit nonnegative counts and their standard rank-mass bound. +This theorem does not claim the retained analytic/tape interfaces. -/ +theorem all_47_concrete_guards (W m G s : ℝ) + (hW : 0 ≤ W) (hm : 0 ≤ m) (hG : 0 ≤ G) (hs : s ≤ m*W) : + ∀ x ∈ coreSlacks ++ + [64*(W+m+G+1)^3-(2*G*W*W+8*s+4*W+4+32*m), + 70000-(51*12320/25)], 0 < x := by + apply all_47_slacks_positive + · exact sub_pos.mpr + (Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.literal_charge_lt + W m G s hW hm hG hs) + · exact Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.finite_row_reserve + +end Mathproof.BeyondNLogN.TakeoverBalanced16320261009 diff --git a/research/balanced-nullity-banks-163/LICENSE b/research/balanced-nullity-banks-163/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/balanced-nullity-banks-163/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/balanced-nullity-banks-163/MANIFEST.json b/research/balanced-nullity-banks-163/MANIFEST.json new file mode 100644 index 0000000000..6d4996ea27 --- /dev/null +++ b/research/balanced-nullity-banks-163/MANIFEST.json @@ -0,0 +1,14 @@ +{ + "arithmetic-replay.log": "393570c538268eb8ef36dd89a007861a7c4e6a6c7782f5fdd0c060e99bc37df0", + "AUDIT-TARGETS.json": "1fb48f1e81cbc806c2e08a4ed58ea75a87f6a533138a014a13bb31e7bac0db14", + "BankAndBalanced.lean": "8f32bce76e47da3c6165ea94f179ddf351ed50271996ab179505f588333b5867", + "expected.json": "0c94f8a31170b953ca0c35f4904e80f4f38dd4a553a60249b224520a6d590a1b", + "lean-audit.log": "d4b24c5a28ebe4db51f41fba151500fa4c0ce4a739069e0cc1fc180b8d2117e4", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "2d192a690294292eaed715da43ed74951a1130de7f38a6c5084816798f4d0c72", + "PROOF-ORIGINS.json": "53a97d25d58611056a51a00b6cc5d2e0cefc9b16a968f297d4b8a92baaa990c8", + "PROOF.md": "6e6e82b2918a440b4ae556e8fef439ac641be138f8edfb2ee803342cb6e8c56e", + "README.md": "10e3f5a2fc7909cde95c7d25204cf0819f638f5a66202b74ef7f645da531a267", + "VERIFICATION.json": "991a11ba4f6efadf7927578818c26b109e71d82379c22636ad9cf5d2f507c5d3", + "verify.py": "37d317bcc1185db9a08163dd325e9cd95e55007d1db45b7ed5a4d060ec85978e" +} diff --git a/research/balanced-nullity-banks-163/NOTICE b/research/balanced-nullity-banks-163/NOTICE new file mode 100644 index 0000000000..7f827029f3 --- /dev/null +++ b/research/balanced-nullity-banks-163/NOTICE @@ -0,0 +1,13 @@ +Conditional balanced transfer with completed-core nullity banks. +Prepared with substantial OpenAI Codex assistance. No personal author name has been added by this package. +Upstream framework: OpenAI integer multiplication manuscript; Douglas Colkitt/CrocSwap. +PR161 annealed modules, paired word and signed merging: eumemic, with Anthropic Claude assistance. +Paired-cube decoder, shared ledger and pricing: icekylinx/William Porter. +Full lineage remains in the pinned PR161 NOTICE and SOURCES.json. +PR163 fused supplier and adapter: chafreaky; paid layout lineage PR23/29 (Zhihao Chen), RaD, +PR34 (James Chang), PR100/103 (Rohan Arun), and retained PR141 arithmetic body. +Bit local words and completed-core sharing retain their PR161 attribution, including +an664 PR128, eumemic PR117, and Zhihao Chen/Swapnil Jain PR97. +This contribution claims the displayed nullity-bank refinement and composition only, +not authorship of upstream suppliers, balanced layout, or the all-size framework. +Apache-2.0. Consult the pinned upstream notices for full attribution. diff --git a/research/balanced-nullity-banks-163/PROOF-ORIGINS.json b/research/balanced-nullity-banks-163/PROOF-ORIGINS.json new file mode 100644 index 0000000000..884821366c --- /dev/null +++ b/research/balanced-nullity-banks-163/PROOF-ORIGINS.json @@ -0,0 +1,32 @@ +[ + { + "filename": "TakeoverBit20261008.lean", + "sha256": "7f5d05001824fd59c4070be55786151777a03972499092b2222c5b673f8bbe0a", + "change": "proof bodies unchanged; imports removed and hoisted" + }, + { + "filename": "TakeoverBit20261008P12.lean", + "sha256": "52ae9bca980c634fcc206f94832a5b72ace2a47609e1d57c663424347d2944c4", + "change": "proof bodies unchanged; imports removed and hoisted" + }, + { + "filename": "TakeoverBit20261008Contents.lean", + "sha256": "8b9e75c1ab67d210e9a6385577c9ca965ccc42c930f5279e2ab2e23e96cc2664", + "change": "proof bodies unchanged; imports removed and hoisted" + }, + { + "filename": "TakeoverBit16120261008P12.lean", + "sha256": "2ea23c607c23a2590660f588b18eb9f3525d58f9ac6b9461a30331002ed18aae", + "change": "proof bodies unchanged; imports removed and hoisted" + }, + { + "filename": "TakeoverLiteralGuard20261008.lean", + "sha256": "8fe9acaccb68ff70eb43d308f0a8b34f38119779ba3514a35078d3a4348d47c6", + "change": "imports removed and hoisted; obsolete original-layout assembly wrapper omitted from literal guard" + }, + { + "filename": "TakeoverBalanced16320261009.lean", + "sha256": "ce2087d53c07e07324556e06e4a4b940905db137b4c723291a77bb2aae511fd7", + "change": "proof bodies unchanged; imports removed and hoisted" + } +] diff --git a/research/balanced-nullity-banks-163/PROOF.md b/research/balanced-nullity-banks-163/PROOF.md new file mode 100644 index 0000000000..f83a8192e0 --- /dev/null +++ b/research/balanced-nullity-banks-163/PROOF.md @@ -0,0 +1,64 @@ +# PR163 paid-balanced review and actual combination with our bit engine + +Pinned source: chafreaky/integer-mult-bounds e1813796ef5c3ca38c5dd7b9e8d81b3908ff5997, research/paired-cube-balanced-161. Full finite package replay is owned by the physical/PUBLIC lane. This lane read PROOF.md, the full reference ORIGINAL-PROOF.md, balanced_shared.py, shared_bridge.py, certificate.py, complex/prove.py and the fused verifier's exact signed decoder/frame checks. + +## New certified arithmetic point + +Use the pinned PR163 fused complex supplier b=297370240363723/(5*10^17) and our previously checked PR161 p12 completed-core nullity-sharing uniform-bit supplier. The latter's exact constants are + + coarse = 302618322217 / 500000000000000, + atom = 302446903 / 500000000000, + old = 384599 / 10^10, + A = (1-atom)*coarse + atom*old + = 151223451172976757106049 / 250000000000000000000000000. + +The paid atom inequalities A0 is RETAINED. This is not permission to delete the old prefix bill without providing the positional router. The existing completed ordinary supplier must expose the arbitrary-width interchange/complete-spectator/restored-row contract; the exact complex supplier must expose the completed tensor contract. Those are the explicit all-size interfaces assumed by this conditional combination. + +With c=q+eta/4, r=(g+1-epsilon)/2 and delta=eta/8, exact arithmetic gives + + 1-epsilon-g=eta, + 1-epsilon-r=eta/2, + 1-epsilon*(1+c)=eta-epsilon*eta/4 >0. + +The internal complex exponent and stopping-leaf exponent stay unchanged. Since a<(1-beta)*b, the leaf-ordering gap is strict. The tiny positive backoffs establish eventual asymptotic inequalities, not a usable practical input threshold. + +## Full fixed-tape / scalar / row bills retained + +The public fused word has scalar_R=15681, physical_R=13041, reuse_pairs=2640, c=19385, q=3157, matched=6861, M_operations=33746. The normalized complex inventory has m66,W15681,rank1033626,deficit1320,maxchild20. Compared with161, the rank mass is unchanged but the complete child histogram changes; that is why its strict complex moment improves. The scalar word and compensation counts are not replaced by the smaller physical role stock. + +Our replay recomputes the full |O(66,2)| group factor, complete local literal scalar bound, logical bill, finite router guard, E, B=s+E and C0=32*66*B^2. Its local scalar bill matches the exact source-bound physical scalar_bound field. The full group factor cancels only in normalized moments, never in scalar work, routing or row stock. + +The row validator retains both conservative external reserves9909 and252, the full complex wire-bit count2159, row coefficient12320, polynomial degree70000 and positive degree gap224336/5. Internally borrowed/restored q-adic rows are not reinterpreted as free external stock. The odd divisor remains3, scalar denominators divide6, children retain incoming odd exponents and no child boundary rounding is introduced. + +Replacing PR163's bit frame refinement by our already checked bit supplier does not change the complex finite bridge, complex scalar bill or physical word. It changes only the validated bit_uniform coarse/atom/ordinary fields. The strengthened bit construction and compatible weighted local-ring implementation are separate source-bound inputs; this arithmetic replay does not assert them from a numeric exponent. + +## Exact complex fused-broadcast phases + +The fused source combines signed channels feeding the SAME target before readout. For a singleton target T=(I,b0,b1,b2), the three last contributions are + + P/2 + (2*b0-1)Q/2 + (2*b1-1)R/2. + +Repeated application of our independently verified TakeoverMerge16120261008.decoder_merge gives exactly + + (P+(2*b0-1)Q+(2*b1-1)R)/2. + +This equality holds in every actual complex module. An actual common complex-linear frame transports it exactly by decoder_merge_common_frame; no scalar phase is discarded or inferred merely from a binary symplectic label. Signed additions are undone in literal reverse order. Conservative original-source supports are unioned and never shrunk by cancellation. The face2, edge02 and edge12 source-cube intersection classes are disjoint, so iterative disjoint_merge_support proves exact support preservation. The actual fused verifier checks every signed source/target coefficient, value span, common cap and chronological chain. + +The original22 complex/P18 certificates and11 merge certificates remain unchanged and reusable. P18 fourth-root Fourier/Gauss identities certify phase energy under their displayed hypotheses; they do not supply the fused histogram, paid positional router or new exponent by themselves. + +## Explicit conditional boundary + +The exact finite arithmetic point is established. General Clifford lifts and actual phase reconciliation, common generic bases, uniform weighted local-ring compilation, arbitrary-width routing, complete row/spectator restoration, positional layout applicability, prime supply, precision/recovery, uniform setup and analytic fixed-tape transfer remain inherited all-size proof contracts. No unconditional multiplication theorem, fully closed Lean multiplier root, or general optimality result is claimed here. The next-grid failure concerns only this fixed supported margin. diff --git a/research/balanced-nullity-banks-163/README.md b/research/balanced-nullity-banks-163/README.md new file mode 100644 index 0000000000..ee29fa8a62 --- /dev/null +++ b/research/balanced-nullity-banks-163/README.md @@ -0,0 +1,78 @@ +# Conditional paid-balanced transfer with nullity banks + +Under the explicitly retained all-size contracts, this composition supports +`T(n) = O(n (log n)^(1-kappa))` with + + kappa = 118877394946471 / 200000000000000000 + = 0.000594386974732355. + +This is about 0.0702% above pinned PR163's 0.000593970203079492. +It combines PR163's fused complex supplier and paid balanced positional transfer +with the PR161 completed-core nullity-bank bit refinement. Gains are not added. +The resulting supported saving is complex-limited. + +## What changes + +For PR161's bit word, eighteen explicit four-coordinate blocks and three explicit +24-coordinate blocks each partition Fin72. Applying completed-core bank sharing +removes exactly 5720 rank60 exterior children while retaining all other children. +The normalized volume is 66364/3, rank mass 1590800, deficit 1936, maximum child22. +The paid bit moment and positive atom toll yield ordinary saving +151223451172976757106049 / 250000000000000000000000000, +which clears the PR163 complex supplier. The full scalar, router, group and row +bills are retained; all47 strict constraints and seven margins pass. + +## Reproduce exact arithmetic (Python3.11+, standard library; assertions enabled) + +Obtain two separate source snapshots at these immutable commits: + +- PR161: https://github.com/eumemic/integer-mult-bounds , commit + d14e29157bc905be1ced0776dd893d0714013f3a. +- PR163: https://github.com/chafreaky/integer-mult-bounds , commit + e1813796ef5c3ca38c5dd7b9e8d81b3908ff5997. + +The verifier requires Git checkouts pinned to those exact commits, with unchanged +tracked sources. A reviewer can acquire them using Git; the submitter can upload +this folder using GitHub's website without using Git locally. + + python3 -B research/balanced-nullity-banks-163/verify.py --pr161 /path/to/pr161 --pr163 /path/to/pr163 + +The verifier does not download or modify sources. It reconstructs the packed +ledger, proves the finite coordinate partitions by enumeration, recomputes the +bit moment using two interval implementations, checks its adjacent-grid control, +recomputes the PR163 complex moment, and replays the unchanged paid-balanced +assembly and full finite bill against expected.json. It rejects the next final +10^-18 grid point at these fixed certificates and parameters. This is not a claim +of global optimality. The verifier checks arithmetic; it does not substitute for +upstream physical-word verification. + +## Lean scope + +BankAndBalanced.lean is a single-file Mathlib-importing snapshot of existing +proof bodies: actual split-projector address interchanges, explicit partitions, +weighted endpoints, arbitrary dirty-content semantics, PR161 packed inventory, +and the47 finite arithmetic guards. See PROOF-ORIGINS.json for provenance. +It does not assert an all-size multiplication theorem. The bit inventory theorem +is proved alongside actual bank endpoints; connecting them to the full physical +multiplier still uses the contracts below, not merely the histogram arithmetic. +The Lean version is4.33.0. The compatible Mathlib commit is +`db584cd6d46c92f209a44c0f1c829460d327499d`. VERIFICATION.json records the +independent source replay and axiom audit. In that Mathlib environment, run +`lake env lean research/balanced-nullity-banks-163/BankAndBalanced.lean`. +The52 audited theorem names are listed in AUDIT-TARGETS.json. + +## Dependency and publication scope + +This is an additive research package. It depends on the unmerged PR161/PR163 +snapshots above and changes no existing source. A PR to CrocSwap/main should +explicitly state those dependencies; it does not silently import their entire +diffs or claim they are already merged. + +The completed all-input word, split-frame charts, invocation/stage cover, +weighted local-ring implementation, arbitrary-width complete-spectator routing, +borrowed-row restoration, paid layout applicability, precision/recovery, +prime supply, uniform setup and sharp fixed-tape analytic transfer remain +inherited all-size contracts. PROOF.md states these boundaries. This is a +conditional finite witness, not a fully formalized unconditional multiplier. + +See NOTICE and LICENSE for attribution. diff --git a/research/balanced-nullity-banks-163/VERIFICATION.json b/research/balanced-nullity-banks-163/VERIFICATION.json new file mode 100644 index 0000000000..26b13611da --- /dev/null +++ b/research/balanced-nullity-banks-163/VERIFICATION.json @@ -0,0 +1,400 @@ +{ + "status": "PASS", + "source_sha256": "8f32bce76e47da3c6165ea94f179ddf351ed50271996ab179505f588333b5867", + "kernel_replay_exit_code": 0, + "theorem_count": 52, + "axiom_records": [ + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_apply", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_zero", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_comp_disjoint", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_involutive", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_id", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_commute", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.bankSwap_eq_sum", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.bankSwap_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.weighted_apply", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.weighted_comp", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.weighted_id", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.weightedBank_eq", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.weightedBank_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_apply", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_idempotent", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_disjoint", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_sum", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.coordinateBank_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.bankAddress_bijective", + "axioms": [ + "propext" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.bankAddress_roles_injective", + "axioms": [ + "propext" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.selected_block_capacity", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_block_capacity", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.selected_bank_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_bank_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.inherited_rank_mass", + "axioms": [ + "propext" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.removed_exterior_count", + "axioms": [] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.packed_rank_mass", + "axioms": [ + "propext" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.packed_max_rank", + "axioms": [] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.normalized_volume", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.packed_deficit", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.actual_role_counts", + "axioms": [] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.selected_weighted_bank_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_weighted_bank_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.Contents.run_eq_address", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.Contents.run_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.Contents.p12_selected_contents", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.Contents.p12_undeferred_contents", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.inherited_rank_mass", + "axioms": [ + "propext" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.removed_exterior_count", + "axioms": [] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_rank_mass", + "axioms": [ + "propext" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_max_rank", + "axioms": [] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.normalized_volume", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_deficit", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.actual_role_counts", + "axioms": [] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.actual_bank_and_inventory_certificate", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.literal_charge_lt", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.finite_row_reserve", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.row_reserve_value", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.core_slacks_positive", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.all_47_slacks_positive", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.strengthened_public_margin", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.all_47_concrete_guards", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + } + ], + "allowed_axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ], + "forbidden_axiom_count": 0, + "sorry_count": 0, + "imports": "Mathlib only", + "lean_version": "4.33.0", + "mathlib_commit": "db584cd6d46c92f209a44c0f1c829460d327499d", + "independent_replay_sha256": "4a843d015dd3fa5daa696fcea6beca654a52ef0773720e979928cdfaa605c512", + "log_sha256": "d4b24c5a28ebe4db51f41fba151500fa4c0ce4a739069e0cc1fc180b8d2117e4", + "portable_arithmetic_replay": { + "status": "PASS", + "kappa": "118877394946471/200000000000000000", + "decimal": "0.000594386974732355", + "strict_constraints": 47, + "margins": 7, + "bit_mass": 1590800, + "bit_volume": "66364/3", + "scope": "Exact conditional finite arithmetic plus ledger and coordinate partitions; full physical realization and all-size inherited contracts are separate." + }, + "arithmetic_log_sha256": "393570c538268eb8ef36dd89a007861a7c4e6a6c7782f5fdd0c060e99bc37df0", + "scope": "Actual universal bank/address/content endpoints, explicit inventory and finite balanced arithmetic. Does not certify all-size multiplication or discharge retained implementation/analytic contracts." +} diff --git a/research/balanced-nullity-banks-163/arithmetic-replay.log b/research/balanced-nullity-banks-163/arithmetic-replay.log new file mode 100644 index 0000000000..f543fe4f7a --- /dev/null +++ b/research/balanced-nullity-banks-163/arithmetic-replay.log @@ -0,0 +1,10 @@ +{ + "status": "PASS", + "kappa": "118877394946471/200000000000000000", + "decimal": "0.000594386974732355", + "strict_constraints": 47, + "margins": 7, + "bit_mass": 1590800, + "bit_volume": "66364/3", + "scope": "Exact conditional finite arithmetic plus ledger and coordinate partitions; full physical realization and all-size inherited contracts are separate." +} diff --git a/research/balanced-nullity-banks-163/expected.json b/research/balanced-nullity-banks-163/expected.json new file mode 100644 index 0000000000..ac35a985d5 --- /dev/null +++ b/research/balanced-nullity-banks-163/expected.json @@ -0,0 +1,203 @@ +{ + "public163_pin": "e1813796ef5c3ca38c5dd7b9e8d81b3908ff5997", + "public161_pin": "d14e29157bc905be1ced0776dd893d0714013f3a", + "public163_kappa": "148492550769873/250000000000000000", + "combo": { + "kappa": "118877394946471/200000000000000000", + "a": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000", + "actual_bit_saving": "151223451172976757106049/250000000000000000000000000", + "complex_saving": "297370240363723/500000000000000000", + "beta": "1/1000000000000000000000000", + "eta": "1/1000000000000000000000000", + "weakening": "1/1000000000000000000000000000000", + "layout": "balanced", + "minimum_margin": "148684971496890003109996295013224259329740670260073915526993780506219493482636277/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "assembly": { + "parameters": { + "a_bit": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000", + "a_complex": "297370240363723/500000000000000000", + "tau": "499702629759636277000000000297870240363723/500000000000000000000000000000000000000000", + "sigma": "499702629759636277/500000000000000000", + "beta": "1/1000000000000000000000000", + "h": "1/1000000000000000000000000", + "q": "148685120181861499999999553694639454415500000000297870240363723/250000000000000000000000000000000000000000000000000000000000000000", + "c": "148685120181861500000062053694639454415500000000297870240363723/250000000000000000000000000000000000000000000000000000000000000000", + "epsilon": "249999750000249999750000000000000000000000000000000000000000/250148434971746889753110246443448196006219493780506517363723", + "lambda_": "499702629759636277000000000595240480727445999999999702129759636277/500000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime": "249851314879818138500000000446305360545584499999999702129759636277/250000000000000000000000000000000000000000000000000000000000000000", + "alpha_squared_power": "297369942993780006220242738461420265549234450766591279249993780506219493482636277/500296869943493779506220492886896392012438987561013034727446000000000000000000000000", + "delta": "1/8000000000000000000000000", + "C0": 15357445252142475384911163534109733749112243072532294522627214699095583391747069453015536869130962499078425734735050481333032075445939872461101114599020281259562662258170998957393710556545542312921582989427662274485329899950952713421816526655381087895496287770401717512180475320952843251459839043969437072824418176476598623078938232301782899487631524354139162223639580645057575093319016585855883362749273644743912576511739029226257448474109965858904887293856764291085704378482705543642743582699731591570444837469622915711281339662658470902774835017037458988488465427440232940765537959710317013225810538280743923839280388812205072641314356183042305510202119080452038882983886354196012930374340242270064451211154894495324569137083000898569966031575646710562032417520201947651018953101854993681363189960785249652810224307734743971463556809632147992930336001223203564811609443757227524656025252388216924047943515945962482778639675007737223836113574809775087004312590457672098104266793767210167756881131965639249547242261291148431122961343360403035918690458833265034156684544796356167510554300142479682193629183865062842210966866215149599648498462817434065807036767215436665289411673287606221342876728596858067741247351856234749613414993233663835493244872205601246532717431247278978643837522429726763564699477565139989830162993792904825017556834099572873144396427277834450657333374574833299173306684498054377614210521174843157691339434589262930978708953435147709693441542734751423567341711456519766129441335525145009636510278620206606618209794045105354620973745461908604660963667829752812683312700672549783756754214552233059577108376206089929672765742129104305017830925877317891424412781058627609538441065590163871519733813521295972292820509613876578455153197023520481021955904081459150448579147689346491254684839330616470564185930346984119702983975598093101649606680541520115532695139801476595552027029210855155575196600447782752333381435538957578018977288201862206264112090275664328439187775588202657996802534361862135624185037906743769078511012940911463980555060014233048818444490840167403853163215385104422616916238868919628918778403209580385882406560804413513255451720252448720844597799642414708000459937671656880752317307055659864202740719808836383460822436051417926959028287097162092099007938524706426499022219987612421377685618112804927146994264711785488586945785240167906358606971515493555398014431315113674744516993964713115980076584660719851394498342169686372826455015602394963235298255680806317028517740356487467588715781959823030708305997323079365631473212928552712014279937214776239576755178846311358804891034559758183987193620048815717564222230865513538439338884621344923087514075350169161585349609388105164408746922628300667809990350305051223354729739822812129995940393395745640350844745819573328709538173363554960195158338995866276709837573496029679327812942222485449556678673125777666455090137482807140559773922418609324526787255729675040800350158797607624085938749314599411420196003926016504725906620356950693885263679243264052490544607997208757140999444813647887608959654628764349337892114095226304571857789139396466898635363442586061896314793675379741062568415395909939913943977136317328948408347609615543535512564503169158011616271574941760888432089126559441380397781088773287603708388049477480751957802564699863240969236556821061703731263632897651490586929653266366467291706368527258573537591028669351757400398782382265284209755153851379115839539496137737013322015801583949394550159190845504564731212984616154246766399046435315916222976505649709734514063608448483251885603227987957682811751663191162359019184715757781406281790773196003264023192654209596563950137688247087916589368222285411034466549961563557115776204401267967301165270992543082985572513692792426909810046918181026336695837380661651497464538789508981274975866827786282188643394146105416918552188235060621333938990665591245692616677386942733995634365414310892424158548377926109248344829250262571053273128114273482961861955931907159165987547320850251019496180176466947939804233110589080956648699901451009563092830097268279182515139935838755686481320150266773583823607795950175600293058153918922176713724781713948838069755302468035987154557922166892475240817070237232138607268077009545437619426503880355761114009591339994605794794001020508533353812023095543401163023553598034123651984728475700845230719800193547728212979750266531777619712504034289062401404471912280606648452063867661418518721755597512428441105329958686863698450773189135879342905939055200728680226524178989341579281469287968738753218733190329168543630558837211258512788608867957997649716905966190019892774232858317111012305788233386080635971307321348590093203803985837203396453462490275740114446711392084240374785770783585327623745983866417745215448806706527134306775572840392814771485415344282272482843176250638423656823721652312273641618331255312744608631482640679434692990453093038218751661188912535367976014847092473375070642639119056442888599065857113064310439832665052585587165241091396497414544032142227693438340921051880002870789544258849793092585095580790899673065792598706985721897653771206689510301984893168099247422374135978503568122299635339675065918102994876072375809509711150775518050087585980085325069140077184913015586175359019337743025669027927244848152107272301273067262691376709015428780463895666928989124225042956880949524533211251690395882039755731304981153887814565645405411900397423005512940778152666082607402587636759298020276808510614873583266382195368969224890666733086254355771008312637610026618355903351502769808366387593736061934748232796991615770783024671563763719542454781352666994026552783073123784018396222160158786816605307881507385028757943837389214039403426461434611574517852257349000356031985121905382498856750868918199508132162104567522590074676730760987195745020768236082884128122630148342264961239748929477501798139784402415127205172542327244416894961880786803728110441137009680011321834162388786910104956171468295563095870693590729676559075219589923557250351962364441277694690109649462859128711297095723665651874902259075309159943153354181071623322558233082961227775034116411246355622276901424070786239801653759438822545032352203714597472503214113891701408810938465667365295272014479273410555764948835826835122792038954777493155321759668029159339046444678258438237028780464512431952446756404202134123069358126602833074738914115280881265394956925042519719742254864757464671633488932767804886905962935123410904305756410662082136147393307842760175069163426907786642054294279311873356836112606312740305599291324422687990490545795545812059532270854504449419066760628338448507637939916466471613583443915561681938944424249779113633898424800938242658547592580923856316635856282162357370626816879881433584748872539622622853422351359643872530232947656470775138520290203420119185572443133104795316798772710482286558245567186725675849815631540830722653888491403493423443060393131821863586916609484230011646115685464367443398275352895293619823827863323136556675460547404174091772429632191887492365008909184202378563290373903254813967269490694854559640873914059518692310080149081039663908403718086857885210147883848059528409726403428887418564218652019563436630257802064848122477809365426495123394335736171321388417991767117679547216743041941836346074506859710017578776278788109363506858102700967586685748196455022373981926169183323741225222519434725920792541432893999983494325227182185092244901996248837194897240572613282419973589003317338625017050889002021070002769777316650328770344121868303589242995678709582278765760312990023597583514247312589173889615290579192486516917302514167501321935502959182264740119123521377099866661275494171245904230022237743976694727166412680344859737572180516479793720463078685637640402318419850891717371915598468157635047263413685668580942119759081941965831602550959400571237536843840535193152141567477133273110537734768756017966680955120328013636072286758016579258071030040371579496333832007082824570738597727860552041333955390542612368743460797584835113257753851285192191022579564897457782034348609573814424384289888402675185044794152324894126370010721368740083908524415346724351937463328391069605941636324825758897781601835558977301150912159233686345681635921682759680146028990945726210669889839326883284779019520061278939628614276787714132819691734200973877464955793192177860065926883684105036642674367696350940676574589508241654773564305565067668630337484189910744964067235887392483327931691754521855016731670994450150163647014734942723079944381859466896485395878592771374138417663001369849314179691759223902985720234051969165368004839893731942825286005684142045732699657089886590397398498986831566449111677499680518918803745231980917919265277073822198233285239596544992601050018533496646508885121602526922539416708605948360081833495404101232792778681794601164526648161849315737091737566798749678109962391366025769588294210539321836034371619765387462514950312425142182491691177765706992671620716490669928089752207092950497729875454688104468905565370280898977375418355615156707803881728996034523596985866434853484907807159064919361081355890264204779420941569173449467271606432837424442544420227487659623539045448425026290152503494341851942657150815680353988262964340222006263771357243438345526332133246028200718471116912958310286931605072641259722965559632751411512498885154644530548890064899825343993864741188240529641051471147106115302588461358750320137895532057138133467737935249581642953427506573814972345863114547924053256150485528767374483463122291625945137153172161327025467539142818243517536303827525417791007574653341564130918711311085531896227678539776530170238679927126702319821011263385977608771343408073426202981258643540211867388219042262538007452148966691040487530161851837596561883401593454928342396095885467977314649747046883758269398510352717065307273884193634422969311872697875000890912436359661916664935048436553578105273921278816417314399029184864454788428425627614701364738767523465831298023870607747739447662744061266852531990376222700908399781385118689730829590664138109913900309005281987384151050403927846221285453154694289125043140195404776526265600738437602000804869848968998676102524008244964461300914183123395815251942087562057986619495964610130833226909353447970972937837233555775086461065294394874766728980372166839176871737076174330015702453845154971317846497632360324802043776079095956306168573250001260885199678853881201955234066410001726231388027625225422715243160245854198188306055692197252175126275317936774434285411043479086977947059596666794762413671935284012671803336916557406465122064248009969067563401720526233760718514775567595961200678874789281653919655761992181520617297023628509177055050752246617905732073578257053720278658146132455501180628400116983864997500461632417381223379402150048550694528326574055213527639716298846521588292412547724565775422312583063721052265788766494620234777025544561761238025906585142316472661382975049089132305643848505238185757307655076532283710449323604870822029756812226427726940760785664204346137673733931449098447723507516817760950053209355628249927120024471829448213413264238549781112947108764781082095939899758148640281213832700546768589438192915105213835323714397430374658445260422890240100260285397802621578676962235478769106244526941267015755026726406375406335846615332686378682872757816474678365991850236570424736544109896918791697961698512124588860981756679337206275466315977955803425779013681759453021437049640621908136265351037900894054210158292196519993180127338953822532372490062848454169844546133791227679064800781921499194382945101698176137998507821685853634310683669394151569690187927102288551254986697187698812309950969450338777326132652208542733482528518379310056533809093795619536284636413952, + "C1": "1", + "kappa": "118877394946471/200000000000000000" + }, + "constraints": { + "a_positive": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000", + "a_below_b": "297870240363723/500000000000000000000000000000000000000000", + "b_below_one_over32": "15327629759636277/500000000000000000", + "beta_positive": "1/1000000000000000000000000", + "beta_below_one": "999999999999999999999999/1000000000000000000000000", + "phase_leaf_above_bit": "1/1000000000000000000000000000000", + "q_positive": "148685120181861499999999553694639454415500000000297870240363723/250000000000000000000000000000000000000000000000000000000000000000", + "q_below_internal": "297370240363722999999999702129759636277/250000000000000000000000000000000000000000000000000000000000000000", + "q_below_leaf": "297620240363722999999999702129759636277/250000000000000000000000000000000000000000000000000000000000000000", + "c_positive": "148685120181861500000062053694639454415500000000297870240363723/250000000000000000000000000000000000000000000000000000000000000000", + "c_below_one": "249851314879818138499999937946305360545584499999999702129759636277/250000000000000000000000000000000000000000000000000000000000000000", + "q_below_reservations": "1/4000000000000000000000000", + "lambda_above_tau": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_sigma": "595240480727445999999999702129759636277/500000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_internal": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_above_lambda": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000000000000000000000000000", + "compact_leaf": "297620240363722999999999702129759636277/250000000000000000000000000000000000000000000000000000000000000000", + "compact_reservations": "1/4000000000000000000000000", + "lambda_prime_below_one": "148685120181861499999999553694639454415500000000297870240363723/250000000000000000000000000000000000000000000000000000000000000000", + "epsilon_positive": "249999750000249999750000000000000000000000000000000000000000/250148434971746889753110246443448196006219493780506517363723", + "epsilon_below_one": "148684971496890003110246443448196006219493780506517363723/250148434971746889753110246443448196006219493780506517363723", + "guard_width": "148684971496890003110246443448196006219493780506517363723/250148434971746889753110246443448196006219493780506517363723", + "K_geometry": "187648497471684389815610246443448196006219493780506517363723/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "K_dominates_log": "148684971496890003110058794950724321829678170260073915526993780506219493482636277/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "record_suffix": "148684971496890003110246443448196006219493780506517363723/250148434971746889753110246443448196006219493780506517363723", + "phase_local": "1189479771975120024881721399150596302866197133805695461587993780506219493482636277/2001187479773975118024881971547585568049755950244052138909784000000000000000000000000", + "phase_boundary": "237895954395024004976144161082141863061436938563984333760793780506219493482636277/400237495954795023604976394309517113609951190048810427781956800000000000000000000000", + "gamma_sublinear": "1/2000000000000000000000000", + "cell_above_band": "499999500000499999499999749851565028253110246889753556551803993780506219493482636277/1000593739886987559012440985773792784024877975122026069454892000000000000000000000000", + "prime_interval_packing": "148684971496890003110246443448196006219493780506517363723/250148434971746889753110246443448196006219493780506517363723", + "alpha_positive": "297369942993780006220242738461420265549234450766591279249993780506219493482636277/500296869943493779506220492886896392012438987561013034727446000000000000000000000000", + "alpha_below_one": "499999500000499999500000250148434971746889753110246443448196006219493780506517363723/500296869943493779506220492886896392012438987561013034727446000000000000000000000000", + "alpha_below_one_fourth": "124776847542879664870334880483262677737560512439486667402611506219493780506517363723/500296869943493779506220492886896392012438987561013034727446000000000000000000000000", + "delta_positive": "1/8000000000000000000000000", + "delta_below_one_eighth": "999999999999999999999999/8000000000000000000000000", + "short_record_fallback": "124925488299890842369961635445798756597002291642687025932913237091271344880319156585023509318605420729/125074217485873444876555123221724098003109746890253258681861500000000000000000000000000000000000000000", + "small_field_exposure": "1/1000000000000000000000000", + "artificial_boundary": "14009501838189800946199056522825989459638716861283156441622860018658481341519552091169/2001187479773975118024881971547585568049755950244052138909784000000000000000000000000", + "literal_scalar_guard": "2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502300395295110268283892329629967641512881281845729875540877712855573167398062864660726534646659833991598092547912694840931849170819742026815806639063040684137169911800120578683941778569328977416763181455759212145572350284364135506480112435379335095161413824345820478188733746341084963929103360041005388269595885739821332245361687045503891959763361282446772643636538973819300570731621612448107802729341159183182224719977452000576259056408184433241944732592916458503799405444637653195130609403095897994777175230429371502589716999397156591089521384260227523750139521300555680630776750314492730894313419528350003663200896896481702508961659676115387976191534728268158033073202158986064397657271120884989619531686201785532856848838351726712990764953292692316577971542964860087221084056487258707983383332518175908038382452851367864764375676180836888990431510931422637200730393089024411300890026092445213475424149516345595246837739432327398879130444965683266277618654824387798668288690816269044032743497469868995933641353167029515326868491539231575130458506422958615046373874011666733977670718257738471087663982150036606588168403662962245014126762774523312082974353720939299325830027112686065596396563684379464760863567750505273663266990829240753164379423102212077882168324688369156584492035254641823850049703590923235698741657533537636810477245200716458249722687166289520444463964006588147040898324650333018052255000752196467076235591418337871170125941561043486459541844128813990337094548672191384555378319681919855034938897205066815832335470158493857210653871984346296307309842117077055129731285822941407416685330924399177974173734203191372995118224765989216126088603453990665599427063379734008006573341382441177436800904795845286897453339448957517014672032244437136857178259324151032125677177120918128175672196828221037371387876912147643394392267032178442074289027057699540962273982733407945128112662263877136909081555037579679923584487512471719463693350538951817320733737652868165778093968867346074886351599358000572250922402265392047599691810670843526930634894659260668428166977235050522614886812174154285898414975965282587010695944457807896392533688466876385946856562344785037017928926526152785906797654963567438134111874606692163098311245477678653723584189837562265768417631230303780300126531946276464630455798487584270866369218135646826058725022912444281636903127026716738879684634880350366516195078355590223401294487338543981736742044946094647939244580265859113411600499184949498262487709193814130417797950746654438711147973808745177521188545042267549153125846865570156725665992337342240005709594972881776846278825507183836670357616862251518086361085475353981057496736810752119163563435315645712635546526222890232935760672308845202925449459541733255275900029441154042797746485573679223116576752410107206763939514122826247482273843933808354919423106595573344274709187463476638670810429612549624988316174343774207945258010505356530006779332033584483072463542246663764304451715668563500690114549984070154387734421300481216580296167548256141444473938011836029321180323678958139862152768847387786256893726110891903381851864775785325062787037359338093253221694421539670115785909595101716672580654959371007544666521360790406146565887786436679029690991048454670532209479466620", + "row_product_gap": "224336/5", + "g1_above_kappa": "27344449988706228303267101317366475079462455075626377728467/50029686994349377950622049288689639201243898756101303472744600000000000000000", + "g2_above_kappa": "176752997545499999999702129759636277/500000000000000000000000000000000000000000", + "g3_above_kappa": "136721999795096169769445753476585931949116269158638108135817636277/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "g4_above_kappa": "176752997545499999999702129759636277/500000000000000000000000000000000000000000", + "g5_above_kappa": "218755349761214854679247057428685357187503634385517241321218636277/400237495954795023604976394309517113609951190048810427781956800000000000000000000000", + "g6_above_kappa": "1093777749399814160383794299584412559730302196805561328632162636277/2001187479773975118024881971547585568049755950244052138909784000000000000000000000000", + "g7_above_kappa": "49970213005750621976722400700016589102023202561265171606717855075626377728467/50029686994349377950622049288689639201243898756101303472744600000000000000000" + }, + "margins": { + "g1": "148684971496890003110246443448196006219493780506517363723/250148434971746889753110246443448196006219493780506517363723", + "g2": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000", + "g3": "148684971496890003109996295013224259329740670260073915526993780506219493482636277/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "g4": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000", + "g5": "237895954395024004976144161082141863061436938563984333760793780506219493482636277/400237495954795023604976394309517113609951190048810427781956800000000000000000000000", + "g6": "1189479771975120024881721399150596302866197133805695461587993780506219493482636277/2001187479773975118024881971547585568049755950244052138909784000000000000000000000000", + "g7": "249999750000249999750000000000000000000000000000000000000000/250148434971746889753110246443448196006219493780506517363723" + }, + "minimum_margin": "148684971496890003109996295013224259329740670260073915526993780506219493482636277/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "absorption_gap": "136721999795096169769445753476585931949116269158638108135817636277/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "scoped_limit": "297370240363722999999999702129759636277/500297370240363722999999999702129759636277", + "recurrence": { + "internal": "499702629759636277000000000297870240363723/500000000000000000000000000000000000000000", + "leaf": "499702629759636277000000000297370240363723/500000000000000000000000000000000000000000", + "reservations": "249851314879818138499999937946305360545584499999999702129759636277/250000000000000000000000000000000000000000000000000000000000000000" + }, + "finite_bridge": { + "complex": { + "m": 66, + "W": 55289425308686917570667462003848984137279416792299224505861018216701799982771898723399775354204853295805961609794608399572705290217939777070394813229172091836043383807923346533454778535440750078150177937641654588341410324320198476949210412083427740588455832697819257181207769482758056564498236253792755202674345544977810552426328969761296772286351537105068425501021079545710610456960096042689826460881065698447986494944293748415427762989564601158820946190983705593808102814345665070822486126387326743650597711970103922799169299588653944130760944631434266279781137209771330745357342776869613754015075771348789372590506971494518620160000000000000000000, + "s": 3644447900268912943109414328243760606968916169973667382762266489079562190484827918491984962710627236319796752431959817716774254084995103629498368038952632650731597387401860658375660284323288102817298375165665000033733727943740161401384131203376384273546537116772918023288250872991855045885852556983788686252118684285009528095288355825425045440421681901139178392763115513456710378431594683516441206903555411875773132378246959377568071994633741498462308483362140404190134180191368688508000959433277660400012289435164252108106253839463173372623041397590132958210895843988718928193401491300595075958649748691803058735618605887251661455360000000000000000000, + "N": 4654170104423616554638164010272346091525338318081434624560713222756608378117397252400210666893081203396713814484336655024295069388921657147689634172725410447265943921080212832355099015801402340613368718684202796799353461392938077263755994129846605291547841283152950671461912870176687371031035766533157124388121683525968364849356178820541530477519547795337690304275736560189911727771655301087339514594924221793976288076428017850160362677522178019873965242784165001200605555445206166283124908285904680927159554862606796638919933387986940007180948084528616254659211856188901000183131972799431806345252217217039855354854231386567475200000000000000000000, + "maxchild": 20, + "invocations_per_stage": 3525886442745164056544063644145716736004044180364723200424782744512582104634391857878947474919000911664177132185103526533556870749183073596734571342973795793383290849303191539662953799849547227737400544457729391514661713176468240351330298583217125220869576729661326266259024901649005584114421035252391760900092184489369973370724377894349644301151172572225522957784648909234781611948223712944954177723427440753012339451839407462242698998122862136268155486957700758485307238973641035062973415368109606762999662774702118665848434384838590914531021276158042617166069588021894697108433312726842277534281982740181708602162296504975360000000000000000000, + "stages": 3, + "auxiliary_banks_after_sharing": 1, + "halving_degree": 1, + "wire_bits": 2159, + "original_X_involution_scalar_group_upper": 42240, + "local_group_upper": 5590695752904, + "logical_group_upper": 59136504735780189634999122266089085381987411497867861183671235415108810095101489164817433605230492896129148868463928780747576603269834668925893621152836190577438101676912456817052894678520987540344208718839624285352724904699280500418009685178863424392243033283182870720956222995240509714695488290472051543165738803262111844385686629661506803778182910367304492672097783988924531969191519841022750989302113292311139776749777658696621768152985036757572201362511984121485098148992035267252162690438112963629944630326145924542798201505708797416747199839313407709097725131951962883250596345338061409580641579961608642981267750915008370779755642880000000000000000000, + "finite_group_router_upper": 3479719089404603038166688260876835458833739678750486633731973635332158574518197699679233265969464758068756825255527322768187233334873743977333181238063307365955524565651705398908489083668032699822955167376653618449211979424977635935552774312980577358662299210665749094462422814815087749391475292275497276724730517652904195315190955882060599496666035178070531927710363426217754650869056290144997324417352981447034060532428229017099484283808649787047500056058561340594317322256869227358784818932728036616783861742967302454974980980477893850334880027922626705218765369919615730171828950753779697834754053841312869254223712881658375416371048821774272513711787550744971467059988700056621894416458148343910657284033110077987885034310049959643458369537538930796920006696868259937314002097782545042336782520144945864918000640774053990310410371159189200791841062009789418397184561035518339986440869914839611450752227624590471092048871803833288698336136647179722281854457028644276388251018887297210950254179413177754828956516021498043134385899631840567642462364347369854591277727499718116839775910615025986758691425727265284886688868620365668288045614472285770025493228130378481003082974363611167333376315497341291498806160947730114860708689996296011590498240948369993493278879178322933664038394389614488329541870648273033058485800602185070869593136180808072512871525509762601219059134536562737551642488187618031728016735555909843837835587149453946245257918593913137390275991993065872987146454871992117731004302081180868659062577005020528773619897192325218127671582213094826925918621126412480628254023896173064705604975513572051058330514985971399165617481503911306830693854410510992415713293386948792883558564412701695222370661964558334961972393438874056958708489620405356354111252959790745871615030401166899684014181692591004041320265654083513165110233253464114438746187657621474191260209937704436778932485890224165056314715481828815459785986781051512422400000000000019248832, + "scalar_group_upper": 3479719089404603038166688260876835458833739678750486633731973635332158574518197699679233265969464758068756825255527322768187233334873743977333181238063307365955524565651705398908489083668032699822955167376653618449211979424977635935552774312980577358662299210665749094462422814815087749391475292275497276724730517652904195315190955882060599496666035178070531927710363426217754650869056290144997324417352981447034060532428229017099484283808649787047500056058561340594317322256869227358784818932728036616783861742967302454974980980477893850334880027922626705218765369919615730171828950753779697834754053841312869254223712881658375416371048821774272513711787550744971467059988700056621894416458148343910657284033110077987885034310049959643458369537538930796920006696868259937314002097782545042336782520144945864918000640774053990310410371159189200791841062009789418397184561035518339986440869914839611450752227624590471092048871803833288698336136647179722281854457028644276388251018887297210950254179413177754828956516021498043134385899631840567642462364347369854591277727499718116839775910615025986758691425727265284886688868620365668288045614472285770025493228130378481003082974363611167333376315497341291498806160947730114860708689996296011590498240948369993493278879178322933664038394389614488329541870648273033058485800602185070869593136180808072512871525509762601219059134536562737551642488187618031728016735555909843837835587149453946245257918593913137390275991993065872987146454871992117731004302081180868659062577005020528773619897192325218127671582213094826925918621126412480628254023896173064705604975513572051058330514985971399165617481503911306830693854410510992415713293386948792883558564412701695222370661964558334961972393438874056958708489620405356354111252959790745871615030401166899684014181692591004041320265654083513165110233253464114438746187657621474191260209937704436778932485890224165056314715481828815459785986781051512422400000000000019248832, + "coefficient_bound": 26, + "coefficient_denominator_divides": 6, + "physical_roles_per_vertex": 13041, + "scalar_role_reserve": 15681, + "reuse_pairs": 2640 + }, + "semantic": { + "E": 2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502321669744702239669766220301603051495828490583570938240111777787782014001122271218445147739195177908841071237077792506927992415071639481287934963020079344270862984684187567622360024543895783028882498953590185257038557239940673240626468643368823999410551509602058751932143148382694138342410608842333662718029697667989791175513586554200854740731459293966529233055536061969781963320838669151098661422457138921277082622164137795469147496211511322562066280900696999831523487436381943489401961567925956281665912072090521189650522207591571669884563492632931909651763770046785044112255149075080873122094182353022875986869802422349044539017963355023267705914778716783180458599520413534783810737399757247385729095915558770945391013146468917168851668274934662193436174838169528701290700082546747345178936347690422427243025501785505598846931132707517074018864801984460082153246719248707822481161323911955535113882348333090393695902813625708085075015669784440975145753369334293852940667458064844994688668336024010800150395315576938849061199978822680103323420405685185206464596975259762308648632960015260589795957686411303195188970642136981200020612673216982647101772024377457131081587471316365151234814344868588533481462325684389456974760346031477770490519476206968826572010284586650436415534597438574250989776816788985446571882054910185258404604921501095830285435654201498641119949704921323774495752793667591944350577548426702717586748127530977206426634549344302895505805584949398428181562416904461699596594329480525623243420528264836148292818768769350692596447167253370588874707882298688144874473402049102066149408428788203951069926478682008479594126885860467199416891311157048487567291292415433728582208266824550555611783694299918333971108011889617125987920738925780894058664855333638562116706548865793457025040257317817482003230030800610950206882341770962709629168130715110606414569765276868551298243024594965666028677618482770566025382958386479526445592997393299222505334334810970756182406549853585591414029318901528057905332134475120951698401281612538897769771961018810042535256266707200924706771810420034564298186505272754308082537655392046288244525205330252451867404522390189005966175669078020533617918016481546951264334026642014681255606464964359146464841649877319476339502201924971969471893525550072109016797232851428787722153595610002918213678329006553127105258349908248817802152401611184593302599887845988567634615890158717277686795970005894551372090193337567331280921081475166223551308420045168020835598673068023688387912759729397096143348337936910669268744539778097957482284456560707447400857119640107592401571895089013937447228090919814237946186920187584321709176613875721255368427566261135650137752515677697574570528329173517904719925762286493031554541705154620843348715721567438958866317477011253300468960979381640633530847437201856541073670057774631027499283050858733275369194131796578683114967950554479074368228575224583907907427789555349250515039249072700970199923385700299061774818639726052900299468569845085172529307774936976732873935072470343889447308758171242271785907632782478010150646402320884683286507451929585875674756163722381094128601559479626851954727447703184488907161983179654823646904286326491845601733832960147554013682357171974670532209479468736, + "literal_charge": 21274449591971385873890671635409982947208737841062699234064932208846603059406557718613092535343917242978689165097665996143244251897454472128323957038660133693072884066988938418245974566805612119317497830973111466206955576537734146356207989488904249137685256238273743409402041609174413307248801328274448433811928168458930151899508696962780968098011519756589418997088150481392589217056702990858693115979738094857902186685794892888439803326889320121548307780541327724081991744290294271352164830058286888736841661149687060805208194415078795042108372704385901624248746229363481478398760588142227780762824672872323668905525867342030056303678907879729723243988515022425526318254548719413080128636362396109564229356985412534164308117190455860903321641969876858203295204668614069616026059488637195553015172246519204643048934137734082555456526680185028433291053037444952516326159683411180271297819510321638458198816744798449065074193380686195885224818757708868134714509906054272378767248575950655924838554141804216753962409909333734331487283448528192961899262226591418223101248095574670962241757522118708293704261266588600802238474018955006485910442459335018797670656517831755757444203679085638417781184209068720598757933884183311493355202237017326140053104756748689841959898281279831042562183932427139727113198062210873140397376647621594127676300379372035712967035209120675485740914735627454854469017258926298322547674506250510512536112639335256508607783259409046263740820584437844467868232270315041216009798605768208481631059769332460483298610856835385793295269024292567398040181611089744742116226160658732723097863804773095752744478817106599008661094477983290802707703057821967864229035699720575634925442109378174982789504073047073654672440659608973248706681343757201486596009487529991029371744875328849368060489596444631842153888463306812490074738784267554879103657411065452295782543460606170130362331088529119596063445190886101798470874007806981899646854347405184600597158102590404312580986239516527677719543527485654409732209728904098709470941695370839137066359549374107089289472150402091884998245880278399771529307471721071841710934238391851991516863376065920547960045403968948246742551867747711120361517979513130222152035322518157295219486680492741257460039757210571084570694668189171766993603795644386341434363844516855784377474356092154953306094108845468355222881532078922467766730834226786404809490398344233321402820173295950053925059799903432845613071708217869320582290216725288820710851353890417800722321369249676764785920651918622159792894643120115618692912527800756618464223365207395147524667225815555293069581830100776870474057562719859825834712230340651679877064969136204864130945489937502205989454807341634767656864672701794476302744759776278641675713466800550969235993759735749740724601146093705021465258814386048573593268048186154246951179057683224573863395256636698383702184029058126651776210704866422970564719227377900648457521764767442575706826037205895471670031735561084704089741982745911734148544603955949011607388720591429461134458507860126128434492284131923754863935090223893752676209992779904655587153800550611969126363043000875379865058087181838941538108082772234581328220283816102237764965701439455167945173710874983991366123520000000000000002116, + "strict_literal_gap": 2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502300395295110268283892329629967641512881281845729875540877712855573167398062864660726534646659833991598092547912694840931849170819742026815806639063040684137169911800120578683941778569328977416763181455759212145572350284364135506480112435379335095161413824345820478188733746341084963929103360041005388269595885739821332245361687045503891959763361282446772643636538973819300570731621612448107802729341159183182224719977452000576259056408184433241944732592916458503799405444637653195130609403095897994777175230429371502589716999397156591089521384260227523750139521300555680630776750314492730894313419528350003663200896896481702508961659676115387976191534728268158033073202158986064397657271120884989619531686201785532856848838351726712990764953292692316577971542964860087221084056487258707983383332518175908038382452851367864764375676180836888990431510931422637200730393089024411300890026092445213475424149516345595246837739432327398879130444965683266277618654824387798668288690816269044032743497469868995933641353167029515326868491539231575130458506422958615046373874011666733977670718257738471087663982150036606588168403662962245014126762774523312082974353720939299325830027112686065596396563684379464760863567750505273663266990829240753164379423102212077882168324688369156584492035254641823850049703590923235698741657533537636810477245200716458249722687166289520444463964006588147040898324650333018052255000752196467076235591418337871170125941561043486459541844128813990337094548672191384555378319681919855034938897205066815832335470158493857210653871984346296307309842117077055129731285822941407416685330924399177974173734203191372995118224765989216126088603453990665599427063379734008006573341382441177436800904795845286897453339448957517014672032244437136857178259324151032125677177120918128175672196828221037371387876912147643394392267032178442074289027057699540962273982733407945128112662263877136909081555037579679923584487512471719463693350538951817320733737652868165778093968867346074886351599358000572250922402265392047599691810670843526930634894659260668428166977235050522614886812174154285898414975965282587010695944457807896392533688466876385946856562344785037017928926526152785906797654963567438134111874606692163098311245477678653723584189837562265768417631230303780300126531946276464630455798487584270866369218135646826058725022912444281636903127026716738879684634880350366516195078355590223401294487338543981736742044946094647939244580265859113411600499184949498262487709193814130417797950746654438711147973808745177521188545042267549153125846865570156725665992337342240005709594972881776846278825507183836670357616862251518086361085475353981057496736810752119163563435315645712635546526222890232935760672308845202925449459541733255275900029441154042797746485573679223116576752410107206763939514122826247482273843933808354919423106595573344274709187463476638670810429612549624988316174343774207945258010505356530006779332033584483072463542246663764304451715668563500690114549984070154387734421300481216580296167548256141444473938011836029321180323678958139862152768847387786256893726110891903381851864775785325062787037359338093253221694421539670115785909595101716672580654959371007544666521360790406146565887786436679029690991048454670532209479466620, + "B": 2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502321669744702239669766220301603051495828490583570938240111777787782014001122271218445147739195177908841071237077792506927992415071639481287934963020079344270862984684187567622360024543895783028882498953590185257038557239940673240626468643368823999410551509602058751932143148382694138342410608842333662718029697667989791175513586554200854740731459293966529233055536061969781963320838669151098661422457138921277082622164137795469147496211511322562066280900696999831523487436381943489401961567925956281665912072090521189650522207591571669884563492632931909651763770046785044112255149075080873122094182353022875986869802422349044539017963355023267705914778716783180458599520413534783810737399757247385729095915558770945391013146468917168851668274934662193436174838169528701290700082546747345178936347690422427243025501785505598846931132707517074018864801984460082153246719248707822481161323911955535113882348333090393695902813625708085075015669784440975145753369334293852940667458064844994688668336024010800150395315576938849061199978822680103323420405685185206464596975259762308648632960015260589795957686411303195188970642136981200020612673216982647101772024377457131081587471316365151234814344868588533481462325684389456974760346031477770490519476206968826572010284586650436415534597438574250989776816788985446571882054910185258404604921501095830285435654201498641119949704921323774495752793667591944350577548426702717586748127530977206426634549344302895505805584949398428181562416904461699596594329480525623243420528264836148292818768769350692596447167253370588874707882298688144874473402049102066149408428788203951069926478682008479594126885860467199416891311157048487567291292415433728582208266824550555611783694299918333971108011889617125987920738925780894058664855333638562116706548865793457025040257317817482003230030800610950206882341770962709629168130715110606414569765276868551298243024594965666028677618482770566025382958386479526445592997393299222505334334810970756182406549853585591414029318901528057905332134475120951698401281612538897769771961018810042535256266707200924706771810420034564298186505272754308082537655392046288244525205330252451867404522390189005966175669078020533617918016481546951264334026642014681255606464964359146464841649877319476339502201924971969471893525550072109016797232851428787722153595610002918213678329006553127105258349908248817802152401611184593302599887845988567634615890158717277686795970005894551372090193337567331280921081475166223551308420045168020835598673068023688387912759729397096143348337936910669268744539778097957482284456560707447400857119640107592401571895092658385347497003862923652274430680794553237879150281258483521857507128451620478056244500640408201806848125925949864537642536540578026658171203522659795981366453164826360726975852671537623757063796680015799195847470935584484813831459158762230875667324405270392142112155084829556106822996440331631352017261476702592192437317650637606340464294513122652101062564093062177288275350104484494982985011051988727941183548069354979833312640542338523188807220479725633926311822916658201519334910321844116564167851941875310839008271828634933591774932102668249544860405914080332895880911373056314947499362285141594293536891695766159900934018627334670532209479468736, + "C0": 15357445252142475384911163534109733749112243072532294522627214699095583391747069453015536869130962499078425734735050481333032075445939872461101114599020281259562662258170998957393710556545542312921582989427662274485329899950952713421816526655381087895496287770401717512180475320952843251459839043969437072824418176476598623078938232301782899487631524354139162223639580645057575093319016585855883362749273644743912576511739029226257448474109965858904887293856764291085704378482705543642743582699731591570444837469622915711281339662658470902774835017037458988488465427440232940765537959710317013225810538280743923839280388812205072641314356183042305510202119080452038882983886354196012930374340242270064451211154894495324569137083000898569966031575646710562032417520201947651018953101854993681363189960785249652810224307734743971463556809632147992930336001223203564811609443757227524656025252388216924047943515945962482778639675007737223836113574809775087004312590457672098104266793767210167756881131965639249547242261291148431122961343360403035918690458833265034156684544796356167510554300142479682193629183865062842210966866215149599648498462817434065807036767215436665289411673287606221342876728596858067741247351856234749613414993233663835493244872205601246532717431247278978643837522429726763564699477565139989830162993792904825017556834099572873144396427277834450657333374574833299173306684498054377614210521174843157691339434589262930978708953435147709693441542734751423567341711456519766129441335525145009636510278620206606618209794045105354620973745461908604660963667829752812683312700672549783756754214552233059577108376206089929672765742129104305017830925877317891424412781058627609538441065590163871519733813521295972292820509613876578455153197023520481021955904081459150448579147689346491254684839330616470564185930346984119702983975598093101649606680541520115532695139801476595552027029210855155575196600447782752333381435538957578018977288201862206264112090275664328439187775588202657996802534361862135624185037906743769078511012940911463980555060014233048818444490840167403853163215385104422616916238868919628918778403209580385882406560804413513255451720252448720844597799642414708000459937671656880752317307055659864202740719808836383460822436051417926959028287097162092099007938524706426499022219987612421377685618112804927146994264711785488586945785240167906358606971515493555398014431315113674744516993964713115980076584660719851394498342169686372826455015602394963235298255680806317028517740356487467588715781959823030708305997323079365631473212928552712014279937214776239576755178846311358804891034559758183987193620048815717564222230865513538439338884621344923087514075350169161585349609388105164408746922628300667809990350305051223354729739822812129995940393395745640350844745819573328709538173363554960195158338995866276709837573496029679327812942222485449556678673125777666455090137482807140559773922418609324526787255729675040800350158797607624085938749314599411420196003926016504725906620356950693885263679243264052490544607997208757140999444813647887608959654628764349337892114095226304571857789139396466898635363442586061896314793675379741062568415395909939913943977136317328948408347609615543535512564503169158011616271574941760888432089126559441380397781088773287603708388049477480751957802564699863240969236556821061703731263632897651490586929653266366467291706368527258573537591028669351757400398782382265284209755153851379115839539496137737013322015801583949394550159190845504564731212984616154246766399046435315916222976505649709734514063608448483251885603227987957682811751663191162359019184715757781406281790773196003264023192654209596563950137688247087916589368222285411034466549961563557115776204401267967301165270992543082985572513692792426909810046918181026336695837380661651497464538789508981274975866827786282188643394146105416918552188235060621333938990665591245692616677386942733995634365414310892424158548377926109248344829250262571053273128114273482961861955931907159165987547320850251019496180176466947939804233110589080956648699901451009563092830097268279182515139935838755686481320150266773583823607795950175600293058153918922176713724781713948838069755302468035987154557922166892475240817070237232138607268077009545437619426503880355761114009591339994605794794001020508533353812023095543401163023553598034123651984728475700845230719800193547728212979750266531777619712504034289062401404471912280606648452063867661418518721755597512428441105329958686863698450773189135879342905939055200728680226524178989341579281469287968738753218733190329168543630558837211258512788608867957997649716905966190019892774232858317111012305788233386080635971307321348590093203803985837203396453462490275740114446711392084240374785770783585327623745983866417745215448806706527134306775572840392814771485415344282272482843176250638423656823721652312273641618331255312744608631482640679434692990453093038218751661188912535367976014847092473375070642639119056442888599065857113064310439832665052585587165241091396497414544032142227693438340921051880002870789544258849793092585095580790899673065792598706985721897653771206689510301984893168099247422374135978503568122299635339675065918102994876072375809509711150775518050087585980085325069140077184913015586175359019337743025669027927244848152107272301273067262691376709015428780463895666928989124225042956880949524533211251690395882039755731304981153887814565645405411900397423005512940778152666082607402587636759298020276808510614873583266382195368969224890666733086254355771008312637610026618355903351502769808366387593736061934748232796991615770783024671563763719542454781352666994026552783073123784018396222160158786816605307881507385028757943837389214039403426461434611574517852257349000356031985121905382498856750868918199508132162104567522590074676730760987195745020768236082884128122630148342264961239748929477501798139784402415127205172542327244416894961880786803728110441137009680011321834162388786910104956171468295563095870693590729676559075219589923557250351962364441277694690109649462859128711297095723665651874902259075309159943153354181071623322558233082961227775034116411246355622276901424070786239801653759438822545032352203714597472503214113891701408810938465667365295272014479273410555764948835826835122792038954777493155321759668029159339046444678258438237028780464512431952446756404202134123069358126602833074738914115280881265394956925042519719742254864757464671633488932767804886905962935123410904305756410662082136147393307842760175069163426907786642054294279311873356836112606312740305599291324422687990490545795545812059532270854504449419066760628338448507637939916466471613583443915561681938944424249779113633898424800938242658547592580923856316635856282162357370626816879881433584748872539622622853422351359643872530232947656470775138520290203420119185572443133104795316798772710482286558245567186725675849815631540830722653888491403493423443060393131821863586916609484230011646115685464367443398275352895293619823827863323136556675460547404174091772429632191887492365008909184202378563290373903254813967269490694854559640873914059518692310080149081039663908403718086857885210147883848059528409726403428887418564218652019563436630257802064848122477809365426495123394335736171321388417991767117679547216743041941836346074506859710017578776278788109363506858102700967586685748196455022373981926169183323741225222519434725920792541432893999983494325227182185092244901996248837194897240572613282419973589003317338625017050889002021070002769777316650328770344121868303589242995678709582278765760312990023597583514247312589173889615290579192486516917302514167501321935502959182264740119123521377099866661275494171245904230022237743976694727166412680344859737572180516479793720463078685637640402318419850891717371915598468157635047263413685668580942119759081941965831602550959400571237536843840535193152141567477133273110537734768756017966680955120328013636072286758016579258071030040371579496333832007082824570738597727860552041333955390542612368743460797584835113257753851285192191022579564897457782034348609573814424384289888402675185044794152324894126370010721368740083908524415346724351937463328391069605941636324825758897781601835558977301150912159233686345681635921682759680146028990945726210669889839326883284779019520061278939628614276787714132819691734200973877464955793192177860065926883684105036642674367696350940676574589508241654773564305565067668630337484189910744964067235887392483327931691754521855016731670994450150163647014734942723079944381859466896485395878592771374138417663001369849314179691759223902985720234051969165368004839893731942825286005684142045732699657089886590397398498986831566449111677499680518918803745231980917919265277073822198233285239596544992601050018533496646508885121602526922539416708605948360081833495404101232792778681794601164526648161849315737091737566798749678109962391366025769588294210539321836034371619765387462514950312425142182491691177765706992671620716490669928089752207092950497729875454688104468905565370280898977375418355615156707803881728996034523596985866434853484907807159064919361081355890264204779420941569173449467271606432837424442544420227487659623539045448425026290152503494341851942657150815680353988262964340222006263771357243438345526332133246028200718471116912958310286931605072641259722965559632751411512498885154644530548890064899825343993864741188240529641051471147106115302588461358750320137895532057138133467737935249581642953427506573814972345863114547924053256150485528767374483463122291625945137153172161327025467539142818243517536303827525417791007574653341564130918711311085531896227678539776530170238679927126702319821011263385977608771343408073426202981258643540211867388219042262538007452148966691040487530161851837596561883401593454928342396095885467977314649747046883758269398510352717065307273884193634422969311872697875000890912436359661916664935048436553578105273921278816417314399029184864454788428425627614701364738767523465831298023870607747739447662744061266852531990376222700908399781385118689730829590664138109913900309005281987384151050403927846221285453154694289125043140195404776526265600738437602000804869848968998676102524008244964461300914183123395815251942087562057986619495964610130833226909353447970972937837233555775086461065294394874766728980372166839176871737076174330015702453845154971317846497632360324802043776079095956306168573250001260885199678853881201955234066410001726231388027625225422715243160245854198188306055692197252175126275317936774434285411043479086977947059596666794762413671935284012671803336916557406465122064248009969067563401720526233760718514775567595961200678874789281653919655761992181520617297023628509177055050752246617905732073578257053720278658146132455501180628400116983864997500461632417381223379402150048550694528326574055213527639716298846521588292412547724565775422312583063721052265788766494620234777025544561761238025906585142316472661382975049089132305643848505238185757307655076532283710449323604870822029756812226427726940760785664204346137673733931449098447723507516817760950053209355628249927120024471829448213413264238549781112947108764781082095939899758148640281213832700546768589438192915105213835323714397430374658445260422890240100260285397802621578676962235478769106244526941267015755026726406375406335846615332686378682872757816474678365991850236570424736544109896918791697961698512124588860981756679337206275466315977955803425779013681759453021437049640621908136265351037900894054210158292196519993180127338953822532372490062848454169844546133791227679064800781921499194382945101698176137998507821685853634310683669394151569690187927102288551254986697187698812309950969450338777326132652208542733482528518379310056533809093795619536284636413952, + "C1": 1, + "induction_gap": 245388340315854495121991495023661354133772589464405098560835281231210593354019555143204809575641856722291194489372719301193616799647826159579757887820071223106654636111050438191495751716485818695124159328484048794755630779268936969158749727291785790306894906681006422231592986767946388346377694932706235427152142784836989450028374317183063203380895257549480826760271435164826739807632685330155718123900280161432695419226532158212485722545375693195990796362804742759742725917432842044603389791467383156312396163024378938394840961078454714202388522126089198783312815501652525725420856212824101710091243502711285243089767465596146429310562531820838246195141964036386977667992333784800904065593805038690857840165112369937462991853946434986034550591529039889942641409960245899894496155913835925603690714427978783216632282652185350804110391405344267420394508689231484590201167625358071977829989612598492896437837504075800683681711004705602678862156000874995105476159542852930583132791352717479396514543009746560892105943675938040697032178998767177924243015937188965591032407979029824417117095144958500076152110001069748144440755055131143299379561950147695675291209196170790861794308920116977841826009571049029564192723661000347022780697656581844126333817888558148438858693544050730279006391032579314348383417483341726167308484102464011875039770669245289569053370315400675272769228984745966480541333705931741952201361584450779326850521243305632190114357848274877760293759481552810837844820287785429409739193492470687215042264321232635941437404752907555527467413383180997744420400148964258443628979070098673792084717606302084025121666947854676905542764446282440636655033920168714101675111829088679088416088899017520789101335421071428013989215397416644857473658623389821671427674995252610577512050322911253131859211944038596666016247376225153558207550373063492998554888580920952391708138131289219486525718977892325465230055854953215786176257899380807103644121328698903259664929947496469383326286563627861859954182187535400895764477928092562530607757748705780763587088674121305145938437603223108021159308048538225758101153578764087878011594956574876552904477637107998204434002769826088279804383770536124007804304192063468870467893053981298039318821032128707649760060073749229537610127792812276679987477985700133781138307150786679926037397394611571161387429268032865427283431018256364862938990177608641555871765353175304933281067617839664481651571704230273983452875393518335293014396311381254899480921988612253618879517438535306676833380425595251991660952995091525032647927535458234697488586825233573202703716781037985646889946321208777879673711271946767903809948726047445877686120392643104955379850171778688163274102126680878508444266761189704537482574079118130447309771519192797202081634827220328648531606261068653634762233494516255628307404776706858390508708834601264897008646546562983946360187373787346425825026502825166589159365404652363307340702487787070996971736376432277781406562795750954160208053781639250158662196318892749978189443599641836214518616936539387692422155247530353148031561963426984668637356710756857535578502681262021631597998560237428258197520890833021959495277829596803778310503074257439014215218565832359454110570594125081714805152020433763053050634665307117361238244863227269421732556357631665326777103377909512101347728315848156030582196328671462365501813019054259602691910273427111817453707511754008411283207639828440879115320662481009495070733076384053735716696980585867475945451451632411845785680475987953695363293698311225826327156039939435741826425950384128738263556609420740617600738683900894516668818578184982813685973717501435264569198072863889402431256917351853788278324748638370087025599361388713671432149463428590762196328434465289201875753262745420886261254218348598928424459889789228762368105383041556546813071637279440584703191488864477114637272334834163218052935897385189713813648366910256840069690327797675638041266996826858514819047856599720555974644532336376341915423147840463479113504223750866935902556906829947300394079605318925784823743990331563491028308230395256964522179938306014663290083982727831715151268072100089494646507958010913026276692220056723587598417289180621183577079586468288019596167019726559547363309560062771643065546613302515146937109315291412368623507609804469300980952281034100560672316181292568391370829081955158464900787242246061359338501835361109152620295946787204589278663415921390862293932802855596468826293101157606576254299895075065183725848640195038168140115238141875608609663281932121508309849213169636906548962762790229247985424467798338812598996036676288818676668020039053269385224237236006604554516626741039697049248452711713870708320270355284148316234748223145351134971979820642035510926640676212230251793685052973119933811537507199542921985886099868559230539499820772565054396424423335994260188311756682328300590138836072346894700375172449221942310825056561920528548189480019682715977200510265557444727939596334566578509841650642419995868546617797990536589793984959654750046004443272269498433270536404174860207593718627146563818414240126343169066224110289896039479249190155643300061135375135749044698752258870903455753119806914130887885547024377713477997887249790908543042453431913066622227351526052356973191952304344647002675594522000489033148689097463503118249558277146364423179459261437672925470825192600425893579520562041434304347237999198826154802593109923761892805497881437726822119855138188118058662783447363009685726520879605684932206112719489605720892676070178453033570794379935889511795906208022176982250800694161341196693332468658133233056859508089043451636005730974242647702874311303164831450289352805610181457063655032687294375885415896338259476839287814607339274526710653286349752736405778956851518821342810708582296938181310293525162934948124660222441967947885080711857144314720550984995695087455018431062631654976, + "fixed_odd_divisor": 3 + }, + "rows": { + "coefficient": 12320, + "complex_coefficient": 2159, + "degree": 70000, + "suffix_slope": 280000, + "degree_gap": "224336/5" + }, + "bit_uniform": { + "coarse_saving": "302618322217/500000000000000", + "atom_beta": "302446903/500000000000", + "old_atom_saving": "384599/10000000000", + "ordinary_saving": "151223451172976757106049/250000000000000000000000000" + }, + "conservative_old_coarse_row_reserve": 9909, + "ordinary_leaf_row_degree": 252 + } + }, + "finite_bridge": { + "bit_uniform": { + "coarse_saving": "302618322217/500000000000000", + "atom_beta": "302446903/500000000000", + "old_atom_saving": "384599/10000000000", + "ordinary_saving": "151223451172976757106049/250000000000000000000000000", + "selector_stock": "Internally borrowed and restored q-adic rows; complete spectators preserved.", + "external_stock": "The bit group cardinality is not inserted into external polynomial row stock." + }, + "conservative_old_coarse_row_reserve": 9909, + "ordinary_leaf_row_degree": 252, + "complex": { + "m": 66, + "W": 55289425308686917570667462003848984137279416792299224505861018216701799982771898723399775354204853295805961609794608399572705290217939777070394813229172091836043383807923346533454778535440750078150177937641654588341410324320198476949210412083427740588455832697819257181207769482758056564498236253792755202674345544977810552426328969761296772286351537105068425501021079545710610456960096042689826460881065698447986494944293748415427762989564601158820946190983705593808102814345665070822486126387326743650597711970103922799169299588653944130760944631434266279781137209771330745357342776869613754015075771348789372590506971494518620160000000000000000000, + "s": 3644447900268912943109414328243760606968916169973667382762266489079562190484827918491984962710627236319796752431959817716774254084995103629498368038952632650731597387401860658375660284323288102817298375165665000033733727943740161401384131203376384273546537116772918023288250872991855045885852556983788686252118684285009528095288355825425045440421681901139178392763115513456710378431594683516441206903555411875773132378246959377568071994633741498462308483362140404190134180191368688508000959433277660400012289435164252108106253839463173372623041397590132958210895843988718928193401491300595075958649748691803058735618605887251661455360000000000000000000, + "N": 4654170104423616554638164010272346091525338318081434624560713222756608378117397252400210666893081203396713814484336655024295069388921657147689634172725410447265943921080212832355099015801402340613368718684202796799353461392938077263755994129846605291547841283152950671461912870176687371031035766533157124388121683525968364849356178820541530477519547795337690304275736560189911727771655301087339514594924221793976288076428017850160362677522178019873965242784165001200605555445206166283124908285904680927159554862606796638919933387986940007180948084528616254659211856188901000183131972799431806345252217217039855354854231386567475200000000000000000000, + "maxchild": 20, + "invocations_per_stage": 3525886442745164056544063644145716736004044180364723200424782744512582104634391857878947474919000911664177132185103526533556870749183073596734571342973795793383290849303191539662953799849547227737400544457729391514661713176468240351330298583217125220869576729661326266259024901649005584114421035252391760900092184489369973370724377894349644301151172572225522957784648909234781611948223712944954177723427440753012339451839407462242698998122862136268155486957700758485307238973641035062973415368109606762999662774702118665848434384838590914531021276158042617166069588021894697108433312726842277534281982740181708602162296504975360000000000000000000, + "stages": 3, + "auxiliary_banks_after_sharing": 1, + "halving_degree": 1, + "wire_bits": 2159, + "original_X_involution_scalar_group_upper": 42240, + "local_group_upper": 5590695752904, + "logical_group_upper": 59136504735780189634999122266089085381987411497867861183671235415108810095101489164817433605230492896129148868463928780747576603269834668925893621152836190577438101676912456817052894678520987540344208718839624285352724904699280500418009685178863424392243033283182870720956222995240509714695488290472051543165738803262111844385686629661506803778182910367304492672097783988924531969191519841022750989302113292311139776749777658696621768152985036757572201362511984121485098148992035267252162690438112963629944630326145924542798201505708797416747199839313407709097725131951962883250596345338061409580641579961608642981267750915008370779755642880000000000000000000, + "finite_group_router_upper": 3479719089404603038166688260876835458833739678750486633731973635332158574518197699679233265969464758068756825255527322768187233334873743977333181238063307365955524565651705398908489083668032699822955167376653618449211979424977635935552774312980577358662299210665749094462422814815087749391475292275497276724730517652904195315190955882060599496666035178070531927710363426217754650869056290144997324417352981447034060532428229017099484283808649787047500056058561340594317322256869227358784818932728036616783861742967302454974980980477893850334880027922626705218765369919615730171828950753779697834754053841312869254223712881658375416371048821774272513711787550744971467059988700056621894416458148343910657284033110077987885034310049959643458369537538930796920006696868259937314002097782545042336782520144945864918000640774053990310410371159189200791841062009789418397184561035518339986440869914839611450752227624590471092048871803833288698336136647179722281854457028644276388251018887297210950254179413177754828956516021498043134385899631840567642462364347369854591277727499718116839775910615025986758691425727265284886688868620365668288045614472285770025493228130378481003082974363611167333376315497341291498806160947730114860708689996296011590498240948369993493278879178322933664038394389614488329541870648273033058485800602185070869593136180808072512871525509762601219059134536562737551642488187618031728016735555909843837835587149453946245257918593913137390275991993065872987146454871992117731004302081180868659062577005020528773619897192325218127671582213094826925918621126412480628254023896173064705604975513572051058330514985971399165617481503911306830693854410510992415713293386948792883558564412701695222370661964558334961972393438874056958708489620405356354111252959790745871615030401166899684014181692591004041320265654083513165110233253464114438746187657621474191260209937704436778932485890224165056314715481828815459785986781051512422400000000000019248832, + "scalar_group_upper": 3479719089404603038166688260876835458833739678750486633731973635332158574518197699679233265969464758068756825255527322768187233334873743977333181238063307365955524565651705398908489083668032699822955167376653618449211979424977635935552774312980577358662299210665749094462422814815087749391475292275497276724730517652904195315190955882060599496666035178070531927710363426217754650869056290144997324417352981447034060532428229017099484283808649787047500056058561340594317322256869227358784818932728036616783861742967302454974980980477893850334880027922626705218765369919615730171828950753779697834754053841312869254223712881658375416371048821774272513711787550744971467059988700056621894416458148343910657284033110077987885034310049959643458369537538930796920006696868259937314002097782545042336782520144945864918000640774053990310410371159189200791841062009789418397184561035518339986440869914839611450752227624590471092048871803833288698336136647179722281854457028644276388251018887297210950254179413177754828956516021498043134385899631840567642462364347369854591277727499718116839775910615025986758691425727265284886688868620365668288045614472285770025493228130378481003082974363611167333376315497341291498806160947730114860708689996296011590498240948369993493278879178322933664038394389614488329541870648273033058485800602185070869593136180808072512871525509762601219059134536562737551642488187618031728016735555909843837835587149453946245257918593913137390275991993065872987146454871992117731004302081180868659062577005020528773619897192325218127671582213094826925918621126412480628254023896173064705604975513572051058330514985971399165617481503911306830693854410510992415713293386948792883558564412701695222370661964558334961972393438874056958708489620405356354111252959790745871615030401166899684014181692591004041320265654083513165110233253464114438746187657621474191260209937704436778932485890224165056314715481828815459785986781051512422400000000000019248832, + "coefficient_bound": 26, + "coefficient_denominator_divides": 6, + "physical_roles_per_vertex": 13041, + "scalar_role_reserve": 15681, + "reuse_pairs": 2640 + }, + "semantic": { + "E": 2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502321669744702239669766220301603051495828490583570938240111777787782014001122271218445147739195177908841071237077792506927992415071639481287934963020079344270862984684187567622360024543895783028882498953590185257038557239940673240626468643368823999410551509602058751932143148382694138342410608842333662718029697667989791175513586554200854740731459293966529233055536061969781963320838669151098661422457138921277082622164137795469147496211511322562066280900696999831523487436381943489401961567925956281665912072090521189650522207591571669884563492632931909651763770046785044112255149075080873122094182353022875986869802422349044539017963355023267705914778716783180458599520413534783810737399757247385729095915558770945391013146468917168851668274934662193436174838169528701290700082546747345178936347690422427243025501785505598846931132707517074018864801984460082153246719248707822481161323911955535113882348333090393695902813625708085075015669784440975145753369334293852940667458064844994688668336024010800150395315576938849061199978822680103323420405685185206464596975259762308648632960015260589795957686411303195188970642136981200020612673216982647101772024377457131081587471316365151234814344868588533481462325684389456974760346031477770490519476206968826572010284586650436415534597438574250989776816788985446571882054910185258404604921501095830285435654201498641119949704921323774495752793667591944350577548426702717586748127530977206426634549344302895505805584949398428181562416904461699596594329480525623243420528264836148292818768769350692596447167253370588874707882298688144874473402049102066149408428788203951069926478682008479594126885860467199416891311157048487567291292415433728582208266824550555611783694299918333971108011889617125987920738925780894058664855333638562116706548865793457025040257317817482003230030800610950206882341770962709629168130715110606414569765276868551298243024594965666028677618482770566025382958386479526445592997393299222505334334810970756182406549853585591414029318901528057905332134475120951698401281612538897769771961018810042535256266707200924706771810420034564298186505272754308082537655392046288244525205330252451867404522390189005966175669078020533617918016481546951264334026642014681255606464964359146464841649877319476339502201924971969471893525550072109016797232851428787722153595610002918213678329006553127105258349908248817802152401611184593302599887845988567634615890158717277686795970005894551372090193337567331280921081475166223551308420045168020835598673068023688387912759729397096143348337936910669268744539778097957482284456560707447400857119640107592401571895089013937447228090919814237946186920187584321709176613875721255368427566261135650137752515677697574570528329173517904719925762286493031554541705154620843348715721567438958866317477011253300468960979381640633530847437201856541073670057774631027499283050858733275369194131796578683114967950554479074368228575224583907907427789555349250515039249072700970199923385700299061774818639726052900299468569845085172529307774936976732873935072470343889447308758171242271785907632782478010150646402320884683286507451929585875674756163722381094128601559479626851954727447703184488907161983179654823646904286326491845601733832960147554013682357171974670532209479468736, + "literal_charge": 21274449591971385873890671635409982947208737841062699234064932208846603059406557718613092535343917242978689165097665996143244251897454472128323957038660133693072884066988938418245974566805612119317497830973111466206955576537734146356207989488904249137685256238273743409402041609174413307248801328274448433811928168458930151899508696962780968098011519756589418997088150481392589217056702990858693115979738094857902186685794892888439803326889320121548307780541327724081991744290294271352164830058286888736841661149687060805208194415078795042108372704385901624248746229363481478398760588142227780762824672872323668905525867342030056303678907879729723243988515022425526318254548719413080128636362396109564229356985412534164308117190455860903321641969876858203295204668614069616026059488637195553015172246519204643048934137734082555456526680185028433291053037444952516326159683411180271297819510321638458198816744798449065074193380686195885224818757708868134714509906054272378767248575950655924838554141804216753962409909333734331487283448528192961899262226591418223101248095574670962241757522118708293704261266588600802238474018955006485910442459335018797670656517831755757444203679085638417781184209068720598757933884183311493355202237017326140053104756748689841959898281279831042562183932427139727113198062210873140397376647621594127676300379372035712967035209120675485740914735627454854469017258926298322547674506250510512536112639335256508607783259409046263740820584437844467868232270315041216009798605768208481631059769332460483298610856835385793295269024292567398040181611089744742116226160658732723097863804773095752744478817106599008661094477983290802707703057821967864229035699720575634925442109378174982789504073047073654672440659608973248706681343757201486596009487529991029371744875328849368060489596444631842153888463306812490074738784267554879103657411065452295782543460606170130362331088529119596063445190886101798470874007806981899646854347405184600597158102590404312580986239516527677719543527485654409732209728904098709470941695370839137066359549374107089289472150402091884998245880278399771529307471721071841710934238391851991516863376065920547960045403968948246742551867747711120361517979513130222152035322518157295219486680492741257460039757210571084570694668189171766993603795644386341434363844516855784377474356092154953306094108845468355222881532078922467766730834226786404809490398344233321402820173295950053925059799903432845613071708217869320582290216725288820710851353890417800722321369249676764785920651918622159792894643120115618692912527800756618464223365207395147524667225815555293069581830100776870474057562719859825834712230340651679877064969136204864130945489937502205989454807341634767656864672701794476302744759776278641675713466800550969235993759735749740724601146093705021465258814386048573593268048186154246951179057683224573863395256636698383702184029058126651776210704866422970564719227377900648457521764767442575706826037205895471670031735561084704089741982745911734148544603955949011607388720591429461134458507860126128434492284131923754863935090223893752676209992779904655587153800550611969126363043000875379865058087181838941538108082772234581328220283816102237764965701439455167945173710874983991366123520000000000000002116, + "strict_literal_gap": 2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502300395295110268283892329629967641512881281845729875540877712855573167398062864660726534646659833991598092547912694840931849170819742026815806639063040684137169911800120578683941778569328977416763181455759212145572350284364135506480112435379335095161413824345820478188733746341084963929103360041005388269595885739821332245361687045503891959763361282446772643636538973819300570731621612448107802729341159183182224719977452000576259056408184433241944732592916458503799405444637653195130609403095897994777175230429371502589716999397156591089521384260227523750139521300555680630776750314492730894313419528350003663200896896481702508961659676115387976191534728268158033073202158986064397657271120884989619531686201785532856848838351726712990764953292692316577971542964860087221084056487258707983383332518175908038382452851367864764375676180836888990431510931422637200730393089024411300890026092445213475424149516345595246837739432327398879130444965683266277618654824387798668288690816269044032743497469868995933641353167029515326868491539231575130458506422958615046373874011666733977670718257738471087663982150036606588168403662962245014126762774523312082974353720939299325830027112686065596396563684379464760863567750505273663266990829240753164379423102212077882168324688369156584492035254641823850049703590923235698741657533537636810477245200716458249722687166289520444463964006588147040898324650333018052255000752196467076235591418337871170125941561043486459541844128813990337094548672191384555378319681919855034938897205066815832335470158493857210653871984346296307309842117077055129731285822941407416685330924399177974173734203191372995118224765989216126088603453990665599427063379734008006573341382441177436800904795845286897453339448957517014672032244437136857178259324151032125677177120918128175672196828221037371387876912147643394392267032178442074289027057699540962273982733407945128112662263877136909081555037579679923584487512471719463693350538951817320733737652868165778093968867346074886351599358000572250922402265392047599691810670843526930634894659260668428166977235050522614886812174154285898414975965282587010695944457807896392533688466876385946856562344785037017928926526152785906797654963567438134111874606692163098311245477678653723584189837562265768417631230303780300126531946276464630455798487584270866369218135646826058725022912444281636903127026716738879684634880350366516195078355590223401294487338543981736742044946094647939244580265859113411600499184949498262487709193814130417797950746654438711147973808745177521188545042267549153125846865570156725665992337342240005709594972881776846278825507183836670357616862251518086361085475353981057496736810752119163563435315645712635546526222890232935760672308845202925449459541733255275900029441154042797746485573679223116576752410107206763939514122826247482273843933808354919423106595573344274709187463476638670810429612549624988316174343774207945258010505356530006779332033584483072463542246663764304451715668563500690114549984070154387734421300481216580296167548256141444473938011836029321180323678958139862152768847387786256893726110891903381851864775785325062787037359338093253221694421539670115785909595101716672580654959371007544666521360790406146565887786436679029690991048454670532209479466620, + "B": 2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502321669744702239669766220301603051495828490583570938240111777787782014001122271218445147739195177908841071237077792506927992415071639481287934963020079344270862984684187567622360024543895783028882498953590185257038557239940673240626468643368823999410551509602058751932143148382694138342410608842333662718029697667989791175513586554200854740731459293966529233055536061969781963320838669151098661422457138921277082622164137795469147496211511322562066280900696999831523487436381943489401961567925956281665912072090521189650522207591571669884563492632931909651763770046785044112255149075080873122094182353022875986869802422349044539017963355023267705914778716783180458599520413534783810737399757247385729095915558770945391013146468917168851668274934662193436174838169528701290700082546747345178936347690422427243025501785505598846931132707517074018864801984460082153246719248707822481161323911955535113882348333090393695902813625708085075015669784440975145753369334293852940667458064844994688668336024010800150395315576938849061199978822680103323420405685185206464596975259762308648632960015260589795957686411303195188970642136981200020612673216982647101772024377457131081587471316365151234814344868588533481462325684389456974760346031477770490519476206968826572010284586650436415534597438574250989776816788985446571882054910185258404604921501095830285435654201498641119949704921323774495752793667591944350577548426702717586748127530977206426634549344302895505805584949398428181562416904461699596594329480525623243420528264836148292818768769350692596447167253370588874707882298688144874473402049102066149408428788203951069926478682008479594126885860467199416891311157048487567291292415433728582208266824550555611783694299918333971108011889617125987920738925780894058664855333638562116706548865793457025040257317817482003230030800610950206882341770962709629168130715110606414569765276868551298243024594965666028677618482770566025382958386479526445592997393299222505334334810970756182406549853585591414029318901528057905332134475120951698401281612538897769771961018810042535256266707200924706771810420034564298186505272754308082537655392046288244525205330252451867404522390189005966175669078020533617918016481546951264334026642014681255606464964359146464841649877319476339502201924971969471893525550072109016797232851428787722153595610002918213678329006553127105258349908248817802152401611184593302599887845988567634615890158717277686795970005894551372090193337567331280921081475166223551308420045168020835598673068023688387912759729397096143348337936910669268744539778097957482284456560707447400857119640107592401571895092658385347497003862923652274430680794553237879150281258483521857507128451620478056244500640408201806848125925949864537642536540578026658171203522659795981366453164826360726975852671537623757063796680015799195847470935584484813831459158762230875667324405270392142112155084829556106822996440331631352017261476702592192437317650637606340464294513122652101062564093062177288275350104484494982985011051988727941183548069354979833312640542338523188807220479725633926311822916658201519334910321844116564167851941875310839008271828634933591774932102668249544860405914080332895880911373056314947499362285141594293536891695766159900934018627334670532209479468736, + "C0": 15357445252142475384911163534109733749112243072532294522627214699095583391747069453015536869130962499078425734735050481333032075445939872461101114599020281259562662258170998957393710556545542312921582989427662274485329899950952713421816526655381087895496287770401717512180475320952843251459839043969437072824418176476598623078938232301782899487631524354139162223639580645057575093319016585855883362749273644743912576511739029226257448474109965858904887293856764291085704378482705543642743582699731591570444837469622915711281339662658470902774835017037458988488465427440232940765537959710317013225810538280743923839280388812205072641314356183042305510202119080452038882983886354196012930374340242270064451211154894495324569137083000898569966031575646710562032417520201947651018953101854993681363189960785249652810224307734743971463556809632147992930336001223203564811609443757227524656025252388216924047943515945962482778639675007737223836113574809775087004312590457672098104266793767210167756881131965639249547242261291148431122961343360403035918690458833265034156684544796356167510554300142479682193629183865062842210966866215149599648498462817434065807036767215436665289411673287606221342876728596858067741247351856234749613414993233663835493244872205601246532717431247278978643837522429726763564699477565139989830162993792904825017556834099572873144396427277834450657333374574833299173306684498054377614210521174843157691339434589262930978708953435147709693441542734751423567341711456519766129441335525145009636510278620206606618209794045105354620973745461908604660963667829752812683312700672549783756754214552233059577108376206089929672765742129104305017830925877317891424412781058627609538441065590163871519733813521295972292820509613876578455153197023520481021955904081459150448579147689346491254684839330616470564185930346984119702983975598093101649606680541520115532695139801476595552027029210855155575196600447782752333381435538957578018977288201862206264112090275664328439187775588202657996802534361862135624185037906743769078511012940911463980555060014233048818444490840167403853163215385104422616916238868919628918778403209580385882406560804413513255451720252448720844597799642414708000459937671656880752317307055659864202740719808836383460822436051417926959028287097162092099007938524706426499022219987612421377685618112804927146994264711785488586945785240167906358606971515493555398014431315113674744516993964713115980076584660719851394498342169686372826455015602394963235298255680806317028517740356487467588715781959823030708305997323079365631473212928552712014279937214776239576755178846311358804891034559758183987193620048815717564222230865513538439338884621344923087514075350169161585349609388105164408746922628300667809990350305051223354729739822812129995940393395745640350844745819573328709538173363554960195158338995866276709837573496029679327812942222485449556678673125777666455090137482807140559773922418609324526787255729675040800350158797607624085938749314599411420196003926016504725906620356950693885263679243264052490544607997208757140999444813647887608959654628764349337892114095226304571857789139396466898635363442586061896314793675379741062568415395909939913943977136317328948408347609615543535512564503169158011616271574941760888432089126559441380397781088773287603708388049477480751957802564699863240969236556821061703731263632897651490586929653266366467291706368527258573537591028669351757400398782382265284209755153851379115839539496137737013322015801583949394550159190845504564731212984616154246766399046435315916222976505649709734514063608448483251885603227987957682811751663191162359019184715757781406281790773196003264023192654209596563950137688247087916589368222285411034466549961563557115776204401267967301165270992543082985572513692792426909810046918181026336695837380661651497464538789508981274975866827786282188643394146105416918552188235060621333938990665591245692616677386942733995634365414310892424158548377926109248344829250262571053273128114273482961861955931907159165987547320850251019496180176466947939804233110589080956648699901451009563092830097268279182515139935838755686481320150266773583823607795950175600293058153918922176713724781713948838069755302468035987154557922166892475240817070237232138607268077009545437619426503880355761114009591339994605794794001020508533353812023095543401163023553598034123651984728475700845230719800193547728212979750266531777619712504034289062401404471912280606648452063867661418518721755597512428441105329958686863698450773189135879342905939055200728680226524178989341579281469287968738753218733190329168543630558837211258512788608867957997649716905966190019892774232858317111012305788233386080635971307321348590093203803985837203396453462490275740114446711392084240374785770783585327623745983866417745215448806706527134306775572840392814771485415344282272482843176250638423656823721652312273641618331255312744608631482640679434692990453093038218751661188912535367976014847092473375070642639119056442888599065857113064310439832665052585587165241091396497414544032142227693438340921051880002870789544258849793092585095580790899673065792598706985721897653771206689510301984893168099247422374135978503568122299635339675065918102994876072375809509711150775518050087585980085325069140077184913015586175359019337743025669027927244848152107272301273067262691376709015428780463895666928989124225042956880949524533211251690395882039755731304981153887814565645405411900397423005512940778152666082607402587636759298020276808510614873583266382195368969224890666733086254355771008312637610026618355903351502769808366387593736061934748232796991615770783024671563763719542454781352666994026552783073123784018396222160158786816605307881507385028757943837389214039403426461434611574517852257349000356031985121905382498856750868918199508132162104567522590074676730760987195745020768236082884128122630148342264961239748929477501798139784402415127205172542327244416894961880786803728110441137009680011321834162388786910104956171468295563095870693590729676559075219589923557250351962364441277694690109649462859128711297095723665651874902259075309159943153354181071623322558233082961227775034116411246355622276901424070786239801653759438822545032352203714597472503214113891701408810938465667365295272014479273410555764948835826835122792038954777493155321759668029159339046444678258438237028780464512431952446756404202134123069358126602833074738914115280881265394956925042519719742254864757464671633488932767804886905962935123410904305756410662082136147393307842760175069163426907786642054294279311873356836112606312740305599291324422687990490545795545812059532270854504449419066760628338448507637939916466471613583443915561681938944424249779113633898424800938242658547592580923856316635856282162357370626816879881433584748872539622622853422351359643872530232947656470775138520290203420119185572443133104795316798772710482286558245567186725675849815631540830722653888491403493423443060393131821863586916609484230011646115685464367443398275352895293619823827863323136556675460547404174091772429632191887492365008909184202378563290373903254813967269490694854559640873914059518692310080149081039663908403718086857885210147883848059528409726403428887418564218652019563436630257802064848122477809365426495123394335736171321388417991767117679547216743041941836346074506859710017578776278788109363506858102700967586685748196455022373981926169183323741225222519434725920792541432893999983494325227182185092244901996248837194897240572613282419973589003317338625017050889002021070002769777316650328770344121868303589242995678709582278765760312990023597583514247312589173889615290579192486516917302514167501321935502959182264740119123521377099866661275494171245904230022237743976694727166412680344859737572180516479793720463078685637640402318419850891717371915598468157635047263413685668580942119759081941965831602550959400571237536843840535193152141567477133273110537734768756017966680955120328013636072286758016579258071030040371579496333832007082824570738597727860552041333955390542612368743460797584835113257753851285192191022579564897457782034348609573814424384289888402675185044794152324894126370010721368740083908524415346724351937463328391069605941636324825758897781601835558977301150912159233686345681635921682759680146028990945726210669889839326883284779019520061278939628614276787714132819691734200973877464955793192177860065926883684105036642674367696350940676574589508241654773564305565067668630337484189910744964067235887392483327931691754521855016731670994450150163647014734942723079944381859466896485395878592771374138417663001369849314179691759223902985720234051969165368004839893731942825286005684142045732699657089886590397398498986831566449111677499680518918803745231980917919265277073822198233285239596544992601050018533496646508885121602526922539416708605948360081833495404101232792778681794601164526648161849315737091737566798749678109962391366025769588294210539321836034371619765387462514950312425142182491691177765706992671620716490669928089752207092950497729875454688104468905565370280898977375418355615156707803881728996034523596985866434853484907807159064919361081355890264204779420941569173449467271606432837424442544420227487659623539045448425026290152503494341851942657150815680353988262964340222006263771357243438345526332133246028200718471116912958310286931605072641259722965559632751411512498885154644530548890064899825343993864741188240529641051471147106115302588461358750320137895532057138133467737935249581642953427506573814972345863114547924053256150485528767374483463122291625945137153172161327025467539142818243517536303827525417791007574653341564130918711311085531896227678539776530170238679927126702319821011263385977608771343408073426202981258643540211867388219042262538007452148966691040487530161851837596561883401593454928342396095885467977314649747046883758269398510352717065307273884193634422969311872697875000890912436359661916664935048436553578105273921278816417314399029184864454788428425627614701364738767523465831298023870607747739447662744061266852531990376222700908399781385118689730829590664138109913900309005281987384151050403927846221285453154694289125043140195404776526265600738437602000804869848968998676102524008244964461300914183123395815251942087562057986619495964610130833226909353447970972937837233555775086461065294394874766728980372166839176871737076174330015702453845154971317846497632360324802043776079095956306168573250001260885199678853881201955234066410001726231388027625225422715243160245854198188306055692197252175126275317936774434285411043479086977947059596666794762413671935284012671803336916557406465122064248009969067563401720526233760718514775567595961200678874789281653919655761992181520617297023628509177055050752246617905732073578257053720278658146132455501180628400116983864997500461632417381223379402150048550694528326574055213527639716298846521588292412547724565775422312583063721052265788766494620234777025544561761238025906585142316472661382975049089132305643848505238185757307655076532283710449323604870822029756812226427726940760785664204346137673733931449098447723507516817760950053209355628249927120024471829448213413264238549781112947108764781082095939899758148640281213832700546768589438192915105213835323714397430374658445260422890240100260285397802621578676962235478769106244526941267015755026726406375406335846615332686378682872757816474678365991850236570424736544109896918791697961698512124588860981756679337206275466315977955803425779013681759453021437049640621908136265351037900894054210158292196519993180127338953822532372490062848454169844546133791227679064800781921499194382945101698176137998507821685853634310683669394151569690187927102288551254986697187698812309950969450338777326132652208542733482528518379310056533809093795619536284636413952, + "C1": 1, + "induction_gap": 245388340315854495121991495023661354133772589464405098560835281231210593354019555143204809575641856722291194489372719301193616799647826159579757887820071223106654636111050438191495751716485818695124159328484048794755630779268936969158749727291785790306894906681006422231592986767946388346377694932706235427152142784836989450028374317183063203380895257549480826760271435164826739807632685330155718123900280161432695419226532158212485722545375693195990796362804742759742725917432842044603389791467383156312396163024378938394840961078454714202388522126089198783312815501652525725420856212824101710091243502711285243089767465596146429310562531820838246195141964036386977667992333784800904065593805038690857840165112369937462991853946434986034550591529039889942641409960245899894496155913835925603690714427978783216632282652185350804110391405344267420394508689231484590201167625358071977829989612598492896437837504075800683681711004705602678862156000874995105476159542852930583132791352717479396514543009746560892105943675938040697032178998767177924243015937188965591032407979029824417117095144958500076152110001069748144440755055131143299379561950147695675291209196170790861794308920116977841826009571049029564192723661000347022780697656581844126333817888558148438858693544050730279006391032579314348383417483341726167308484102464011875039770669245289569053370315400675272769228984745966480541333705931741952201361584450779326850521243305632190114357848274877760293759481552810837844820287785429409739193492470687215042264321232635941437404752907555527467413383180997744420400148964258443628979070098673792084717606302084025121666947854676905542764446282440636655033920168714101675111829088679088416088899017520789101335421071428013989215397416644857473658623389821671427674995252610577512050322911253131859211944038596666016247376225153558207550373063492998554888580920952391708138131289219486525718977892325465230055854953215786176257899380807103644121328698903259664929947496469383326286563627861859954182187535400895764477928092562530607757748705780763587088674121305145938437603223108021159308048538225758101153578764087878011594956574876552904477637107998204434002769826088279804383770536124007804304192063468870467893053981298039318821032128707649760060073749229537610127792812276679987477985700133781138307150786679926037397394611571161387429268032865427283431018256364862938990177608641555871765353175304933281067617839664481651571704230273983452875393518335293014396311381254899480921988612253618879517438535306676833380425595251991660952995091525032647927535458234697488586825233573202703716781037985646889946321208777879673711271946767903809948726047445877686120392643104955379850171778688163274102126680878508444266761189704537482574079118130447309771519192797202081634827220328648531606261068653634762233494516255628307404776706858390508708834601264897008646546562983946360187373787346425825026502825166589159365404652363307340702487787070996971736376432277781406562795750954160208053781639250158662196318892749978189443599641836214518616936539387692422155247530353148031561963426984668637356710756857535578502681262021631597998560237428258197520890833021959495277829596803778310503074257439014215218565832359454110570594125081714805152020433763053050634665307117361238244863227269421732556357631665326777103377909512101347728315848156030582196328671462365501813019054259602691910273427111817453707511754008411283207639828440879115320662481009495070733076384053735716696980585867475945451451632411845785680475987953695363293698311225826327156039939435741826425950384128738263556609420740617600738683900894516668818578184982813685973717501435264569198072863889402431256917351853788278324748638370087025599361388713671432149463428590762196328434465289201875753262745420886261254218348598928424459889789228762368105383041556546813071637279440584703191488864477114637272334834163218052935897385189713813648366910256840069690327797675638041266996826858514819047856599720555974644532336376341915423147840463479113504223750866935902556906829947300394079605318925784823743990331563491028308230395256964522179938306014663290083982727831715151268072100089494646507958010913026276692220056723587598417289180621183577079586468288019596167019726559547363309560062771643065546613302515146937109315291412368623507609804469300980952281034100560672316181292568391370829081955158464900787242246061359338501835361109152620295946787204589278663415921390862293932802855596468826293101157606576254299895075065183725848640195038168140115238141875608609663281932121508309849213169636906548962762790229247985424467798338812598996036676288818676668020039053269385224237236006604554516626741039697049248452711713870708320270355284148316234748223145351134971979820642035510926640676212230251793685052973119933811537507199542921985886099868559230539499820772565054396424423335994260188311756682328300590138836072346894700375172449221942310825056561920528548189480019682715977200510265557444727939596334566578509841650642419995868546617797990536589793984959654750046004443272269498433270536404174860207593718627146563818414240126343169066224110289896039479249190155643300061135375135749044698752258870903455753119806914130887885547024377713477997887249790908543042453431913066622227351526052356973191952304344647002675594522000489033148689097463503118249558277146364423179459261437672925470825192600425893579520562041434304347237999198826154802593109923761892805497881437726822119855138188118058662783447363009685726520879605684932206112719489605720892676070178453033570794379935889511795906208022176982250800694161341196693332468658133233056859508089043451636005730974242647702874311303164831450289352805610181457063655032687294375885415896338259476839287814607339274526710653286349752736405778956851518821342810708582296938181310293525162934948124660222441967947885080711857144314720550984995695087455018431062631654976, + "fixed_odd_divisor": 3, + "exact_grid": "One dyadic grid times 3^(-K), K=G*(D_complex+1); completed children preserve the incoming odd exponent." + }, + "rows": { + "coefficient": 12320, + "complex_coefficient": 2159, + "degree": 70000, + "suffix_slope": 280000, + "degree_gap": "224336/5" + } + } + } +} diff --git a/research/balanced-nullity-banks-163/lean-audit.log b/research/balanced-nullity-banks-163/lean-audit.log new file mode 100644 index 0000000000..5943da67d0 --- /dev/null +++ b/research/balanced-nullity-banks-163/lean-audit.log @@ -0,0 +1,82 @@ +'Mathproof.BeyondNLogN.TakeoverBit.partialSwap_apply' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.partialSwap_zero' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.partialSwap_comp_disjoint' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.partialSwap_involutive' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.partialSwap_id' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.partialSwap_commute' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.bankSwap_eq_sum' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.bankSwap_full' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.weighted_apply' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.weighted_comp' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.weighted_id' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.weightedBank_eq' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.weightedBank_full' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_apply' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_idempotent' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_disjoint' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_sum' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.coordinateBank_full' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.bankAddress_bijective' depends on axioms: [propext] +'Mathproof.BeyondNLogN.TakeoverBit.bankAddress_roles_injective' depends on axioms: [propext] +'Mathproof.BeyondNLogN.TakeoverBit.P12.selected_block_capacity' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_block_capacity' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.selected_bank_full' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_bank_full' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.inherited_rank_mass' depends on axioms: [propext] +'Mathproof.BeyondNLogN.TakeoverBit.P12.removed_exterior_count' does not depend on any axioms +'Mathproof.BeyondNLogN.TakeoverBit.P12.packed_rank_mass' depends on axioms: [propext] +'Mathproof.BeyondNLogN.TakeoverBit.P12.packed_max_rank' does not depend on any axioms +'Mathproof.BeyondNLogN.TakeoverBit.P12.normalized_volume' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.packed_deficit' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.actual_role_counts' does not depend on any axioms +'Mathproof.BeyondNLogN.TakeoverBit.P12.selected_weighted_bank_full' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_weighted_bank_full' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.Contents.run_eq_address' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.Contents.run_full' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.Contents.p12_selected_contents' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.Contents.p12_undeferred_contents' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.inherited_rank_mass' depends on axioms: [propext] +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.removed_exterior_count' does not depend on any axioms +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_rank_mass' depends on axioms: [propext] +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_max_rank' does not depend on any axioms +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.normalized_volume' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_deficit' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.actual_role_counts' does not depend on any axioms +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.actual_bank_and_inventory_certificate' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.literal_charge_lt' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.finite_row_reserve' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.row_reserve_value' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBalanced16320261009.core_slacks_positive' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBalanced16320261009.all_47_slacks_positive' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBalanced16320261009.strengthened_public_margin' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBalanced16320261009.all_47_concrete_guards' depends on axioms: [propext, + Classical.choice, + Quot.sound] diff --git a/research/balanced-nullity-banks-163/verify.py b/research/balanced-nullity-banks-163/verify.py new file mode 100644 index 0000000000..6a117777c9 --- /dev/null +++ b/research/balanced-nullity-banks-163/verify.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 +"""Read-only exact arithmetic replay. Full physical supplier checks are separate. +Requires two immutable upstream checkouts; no downloads or source edits. +""" +from pathlib import Path +from fractions import Fraction as Q +from math import lcm +import argparse,hashlib,json,subprocess,sys +sys.dont_write_bytecode=True +if hasattr(sys,'set_int_max_str_digits'):sys.set_int_max_str_digits(0) +HERE=Path(__file__).resolve().parent + +def need(ok,msg): + if not ok:raise ValueError(msg) + +def checkout(path,pin): + path=path.resolve() + def git(*args): + p=subprocess.run(['git','-C',str(path),*args],capture_output=True,text=True) + need(p.returncode==0,'Git failed: '+p.stderr);return p.stdout.strip() + need(git('rev-parse','HEAD')==pin,'Incorrect pinned checkout: '+str(path)) + need(not git('status','--porcelain','--untracked-files=no'),'Tracked source changes in '+str(path)) + return path + +def main(): + need(not sys.flags.optimize,'Assertions must be enabled; do not use -O') + ap=argparse.ArgumentParser(description=__doc__) + ap.add_argument('--pr161',type=Path,required=True) + ap.add_argument('--pr163',type=Path,required=True) + args=ap.parse_args() + expected=json.loads((HERE/'expected.json').read_text()) + r161=checkout(args.pr161,expected['public161_pin']) + r163=checkout(args.pr163,expected['public163_pin']) + sys.path.insert(0,str(r161/'scripts')) + import paired_cube_network as p + from audit_community_candidate import moment + ar=r163/'research/paired-cube-balanced-161/arithmetic' + sys.path.insert(0,str(ar)) + import certificate as c + from interval_moment import saving_grid + n=json.loads((r161/'certificates/paired-cube-network.json').read_text()) + raw=json.loads((r161/'research/paired-cube-bit/out/profile_p12.json').read_text()) + inherited={int(k):int(v) for k,v in raw['child_histogram'].items()} + original=n['bit']['counts'] + need(inherited=={int(k):int(v) for k,v in original['child_multiplicities'].items()},'Bit sources disagree') + need((raw['m'],raw['h'],raw['v'],raw['R'],raw['selected_roles'])==(72,24,1760,23368,5720),'Wrong immutable word') + need(raw['selected_rank_histogram']=={'20':5720},'Wrong selected ranks') + need(sum(k*v for k,v in inherited.items())==1934000,'Inherited rank mass') + packed=dict(inherited);need(packed.pop(60)==5720,'Exterior child inventory') + W=2*1760+3*(Q(5720,18)+Q(17648,3)) + rank=sum(k*v for k,v in packed.items()) + need((W,rank,72*W-rank,max(packed))==(Q(66364,3),1590800,1936,22),'Packed ledger') + # Actual disjoint coordinate blocks, not nullity divisibility alone. + need(all(sum(j//4==i for j in range(72))==4 for i in range(18)),'Selected blocks') + need(all(sum(j//24==i for j in range(72))==24 for i in range(3)),'Undeferred blocks') + profile=dict(original,W_per_vertex=W,rank_per_vertex=rank,deficit_per_vertex=1936, + child_multiplicities={r:Q(v) for r,v in packed.items()},edge_count=sum(packed.values()),maxchild=22) + coarse=Q(302618322217,500000000000000) + atom=Q(302446903,500000000000) + old=Q(384599,10**10) + effective=(1-atom)*coarse+atom*old + need(0. A POSIX verify.sh is included; the clean packaged replay was tested on Windows. + +## Scope + +The consequence is conditional T(n)=O(n (log n)^(1-kappa)) under retained all-size compiler, weighted/restored selector, routing/layout, fixed-tape leaf, prime, precision/recovery and analytic transfer conditions. This finite certificate does not independently prove those interfaces. It makes no unconditional complexity, practical speedup, global optimality or Lean/kernel claim. + +The package preserves the 264 omitted-label research: exact full-decoder checks, cap partitions, 132 source partners, a 139-role repair and a fully paid conservative host. Cheap optimized reuse still needs complete arbitrary-dirty compensation; the paid fallback does not improve the bound. No prospective hybrid gain enters this certificate. + +## Sources and credits + +Pinned primary heads: PR200 a1175449f34d39ff933d9d8ab23ced1f32b290ec; PR202 8d8d67bcf69c5ea67d3a29dbc64ba588156d6e8d; PR211 c63e50a5dde96fe1459d6b29e55e47f42f104347; PR210 5de2b8986e83942b7a704ee8a3ebda4c6db6a4fc. Original licenses and contributor notices are retained. Cascade construction, earlier completed banks and finite-bootstrap arguments are credited rather than claimed as new. This contribution is the composed cut schedule, independent native admission/column replay and exact finite assembly. + +Prepared with OpenAI Codex assistance. This directory was prepared locally for manual upload; nothing was published. diff --git a/research/coordinated-crossover-pr200-v2/PRIVACY.md b/research/coordinated-crossover-pr200-v2/PRIVACY.md new file mode 100644 index 0000000000..ce2c654700 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/PRIVACY.md @@ -0,0 +1,7 @@ +# Privacy and provenance + +No new personal author name, email, home-directory path or account credential is added by this package. Unpacked files and 1,633 archived text entries were scanned. + +Original public contributor attribution is retained. Two historical files in the pinned source archive credit the existing public PR186 contributor handle. Public PR links also disclose their original submitters. This is a source-attributed package, not an anonymous-source archive. + +Upstream copyright/license notices are preserved unchanged rather than silently redacted. This does not add a new personal authorship byline to the submission. diff --git a/research/coordinated-crossover-pr200-v2/PROOF.md b/research/coordinated-crossover-pr200-v2/PROOF.md new file mode 100644 index 0000000000..29a6d51e08 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/PROOF.md @@ -0,0 +1,47 @@ +# Sufficient conditional composition + +## Frozen root + +The root is the retained project's conditional integer-multiplication assembly under its existing all-size interfaces. This package changes only internal frames and finite ordinary-leaf bootstrap depth. It supplies a concrete finite bit histogram and positive moments, then instantiates the same 47 strict inequalities at kappa=427415195711/625000000000000. It does not infer an unconditional multiplier from a finite network. + +The frozen bit scalar word is PR200's diagonal construction with 1,760 source labels, 34 redirected terminals, aliases, gauge events and literal inverse. Its ambient form is G=I-J/9 in dimension 24. Width 72 uses the preserved explicit banks and three-copy normalization. Input hashes freeze the public word and every replacement. + +## Preservation by frame admission + +For each scalar operation the checker computes the actual fresh-source supports of its formal sum. Every required chi vector must belong to the proposed frame. It reconstructs each complete physical role trajectory, including fixed start/root/full endpoints, donor-recipient splices and redirected terminals. Every adjacent frame pair must be nested. It separately reconstructs target chronology through gauge reads, terminal updates, partner deliveries and final covector frames. + +Thus rank fit or fresh support alone does not admit a replacement. Every incident physical path and the complete target chronology must pass. The scalar word itself is unchanged. + +The frozen list has 6,258 unique operation indices. Its spaces differ from PR211 at 220 operations and from PR200's raw operation-frame list at 2,268 operations. These are comparisons of subspaces, not basis serializations. + +## Uniform retained-prime admission + +The checker uses exact integer row spaces, annihilators and fraction-free determinants. Literal normalized basis pivots are nonzero and below 2^80 in absolute value, proving independence modulo every retained prime q>2^80. Each new frame has a nonzero scaled Gram determinant, computed through its complementary annihilator when smaller. Exact B A^t=0 and ambient nondegeneracy identify that complementary space. + +After dividing out integer factors 2 through 999, every residual is below 2^80. All prime divisors of the determinants are therefore below the allowed-prime lower bound. Basis normalization and Gram determinants stay nonsingular. Exact rational inclusions reduce modulo retained primes with the admitted dimensions preserved. All 4,346 distinct replacement frames pass. + +Fixed endpoints and bank charts retain their earlier prime admission in baseline/. Every inherited PR211 replacement is freshly checked; PR211's stated rerun is not substituted as evidence. + +## Literal scalar replay + +bit-columns.cpp implements the complete unchanged scalar program, including initial ancestor-response subtraction, redirected terminal pivots, ordered target reads, partner operations and reverse word. It checks all 1,760 source, 1,760 target and 17,114 dirty columns: 20,634 total. + +F2 columns use bitsets. The defining integer computation uses unbounded packed digits with coefficient bound 39,780 and 24-bit separation. Both orientations are compared with the decoder; source and dirty rows must be restored. Omitted-ancestor-response, omitted-pre-target and omitted-write controls must fail. + +## Paid histogram and banks + +Old and new event-graph rank-increment histograms are computed exactly. Fixed endpoint frames make their rank masses telescope equally. The final packed histogram equals the admitted paid PR211 baseline histogram plus 9 times the new-minus-old event histogram. Floating entropy guides nomination only; it certifies no saving. + +The preserved nine-replica bank assignments fill width 72, with gauge charts, inverse maps and arbitrary dirty restoration. Source births, aliases and removed terminals are excluded from fresh bank allocation. Internal frame changes preserve bank endpoint inventory. The conservative paid router/selector bound from baseline/ remains valid. The final row has W=56,402, rank=4,055,136, deficit=5,808 and maximum child 22. + +## Finite exact composition + +native-pricing.cpp constructs rational logarithm/exponential enclosures, checks both moments and derives the stopped-leaf ordinary toll. Each of four finite bootstrap levels calls only its certified predecessor for ordinary leaves and routing. No limiting saving is substituted. + +The retained complex saving is 700918443859411/10^18. Concrete bridge guards are read from the pinned public certificate and checked. Both suppliers enter the paired assembly together; gains are never added. Eta=beta=10^-24 and all 47 original constraints remain strict. The largest admitted fixed-grid point is 683864313137600/10^18, reduced to 427415195711/625000000000000. Its immediate successor is rejected. This is a boundary for these fixed suppliers and parameters, not global optimality. + +## Discovery and excluded gains + +Global cuts of a concavity majorant nominate coordinated expansion/contraction choices. The final frozen bases and exact checks establish the claim independently of search optimality. + +The omitted-label decoder, cap contractions, shared-total/rank-two ideas, operator slices and proposed absorbers are archived as research. Only admitted trajectories with paid moments contribute. An optimized omitted-label host is never supplied as an assumed oracle or unpriced gain. diff --git a/research/coordinated-crossover-pr200-v2/PUBLIC-SOURCES.json b/research/coordinated-crossover-pr200-v2/PUBLIC-SOURCES.json new file mode 100644 index 0000000000..f38c3e39ed --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/PUBLIC-SOURCES.json @@ -0,0 +1,114 @@ +[ + { + "number": 204, + "sha": "bf9b943a480c632a3951d2fe1e42b77182cdb45c", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/204", + "acquired_utc": "2026-10-09T16:44:39.3571022Z", + "tracked_clean": true, + "autocrlf": false + }, + { + "number": 206, + "sha": "5cee197f1b4d253d6ab19afea2a1bb5b0e6642fd", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/206", + "acquired_utc": "2026-10-09T16:44:57.4917275Z", + "tracked_clean": true, + "autocrlf": false + }, + { + "number": 207, + "sha": "cd14825023b75af4f5919a30e5e6d548b6ade5bc", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/207", + "acquired_utc": "2026-10-09T16:46:07.644261Z", + "tracked_clean": true, + "autocrlf": false + }, + { + "number": 186, + "sha": "cd14825023b75af4f5919a30e5e6d548b6ade5bc", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/186", + "acquired_utc": "2026-10-09T16:47:04.5862638Z", + "tracked_clean": true, + "autocrlf": false + }, + { + "number": 211, + "sha": "c63e50a5dde96fe1459d6b29e55e47f42f104347", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/211", + "acquired_utc": "2026-10-09T17:17:06.7647399Z", + "tracked_clean": true, + "autocrlf": false + }, + { + "number": 208, + "sha": "344c3f847cf04e722a0bba8782df4659561dbc6b", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/208", + "acquired_utc": "2026-10-09T17:17:23.5367588Z", + "tracked_clean": true, + "autocrlf": false + }, + { + "number": 210, + "sha": "5de2b8986e83942b7a704ee8a3ebda4c6db6a4fc", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/210", + "acquired_utc": "2026-10-09T17:18:19.2442123Z", + "tracked_clean": true, + "autocrlf": false + }, + { + "number": 209, + "sha": "a7aeea067ec1e2b7e91b0ecec660512b7cafca26", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/209", + "acquired_utc": "2026-10-09T17:18:36.9290457Z", + "tracked_clean": true, + "autocrlf": false + }, + { + "number": 204, + "sha": "525ed356ec4928f4c31c7668ecb547f575278f4e", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/204", + "acquired_utc": "2026-10-09T17:19:35.842697Z", + "tracked_clean": true, + "autocrlf": false + }, + { + "number": 210, + "sha": "8e678c6bd3796b24110bcc9056b65353a0180412", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/210", + "checked_utc": "2026-10-09T17:53:21.8430939Z", + "tracked_clean": true, + "autocrlf": false + }, + { + "number": 213, + "sha": "b7af6934299024e04555929c13640cf2342613f4", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/213", + "checked_utc": "2026-10-09T17:53:22.0899395Z", + "tracked_clean": true, + "autocrlf": false + }, + { + "number": 212, + "sha": "9b6ad038f8690206c14ed8f28fb90ec6b3a79ae1", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/212", + "checked_utc": "2026-10-09T17:53:22.2322319Z", + "tracked_clean": true, + "autocrlf": false + }, + { + "number": 208, + "sha": "5fcb7111a06505fc5289574fa706a0dc3507ff01", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/208", + "checked_utc": "2026-10-09T17:53:22.4243792Z", + "tracked_clean": true, + "autocrlf": false + }, + { + "number": 197, + "sha": "8c5e1cf07c23d843642bf2d4c76f882669edc43f", + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/197", + "checked_utc": "2026-10-09T17:53:22.5388813Z", + "tracked_clean": true, + "autocrlf": false + } +] diff --git a/research/coordinated-crossover-pr200-v2/README.md b/research/coordinated-crossover-pr200-v2/README.md new file mode 100644 index 0000000000..f3bfbd54c9 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/README.md @@ -0,0 +1,58 @@ +# Coordinated cascade frames: conditional kappa = 0.000683864313137600 + +Under the retained multiplication interfaces, this finite supplier certificate gives + + T(n) = O(n (log n)^(1-kappa)), + kappa = 427415195711 / 625000000000000 + = 0.000683864313137600. + +This composes the newly pinned PR211 cascade witness with 220 further geometrically distinct operation-frame changes selected by global concavity cuts, completed entrance banks, the retained PR202 complex supplier, and four finite ordinary-leaf bootstrap levels. It is above PR211's 0.000683847872495777, but below the requested 0.0007. + +The final replacement list has 6,258 entries; all are independently admitted. Canonical comparison against PR200's raw op_frame list gives 2,268 genuinely different subspaces. A serialized basis replacement is not necessarily a changed subspace. The bit row remains m=72, W=56,402, rank=4,055,136, deficit=5,808 and maximum child 22 in its integer three-copy normalization. The scalar word, source/target contracts, endpoint frames, partner deliveries, terminal inventory and entrance-bank construction are fixed. The complete child histogram changes. The retained complex supplier has saving 700918443859411/10^18; the bit branch binds. + +## Offline replay + +Windows, with g++ on PATH: + + powershell -ExecutionPolicy Bypass -File verify.ps1 + +Or specify the compiler: + + powershell -ExecutionPolicy Bypass -File verify.ps1 -Compiler C:/mingw64/bin/g++.exe + +Linux/macOS, with a C++20 compiler, unzip and sha256sum: + + sh verify.sh + +The Windows command is tested from a fresh package copy using only included archives. The POSIX wrapper is provided but has not been tested on Linux. No Python interpreter, network, GPU, Lean or account access is needed. Three C++ programs are built from source; exact verification uses arbitrary-precision integers and rational bounds. Historical predecessor Python sources are retained only for provenance. + +The wrapper hashes all payload files before and after, validates 149,024 required-value directions and every complete physical/target frame chain, and certifies 4,346 distinct replacement frames for every retained prime q>2^80. It then replays all 20,634 source/target/dirty columns over F2 and the defining integer decoder in both orientations, including literal source/scratch restoration. Finally it re-derives the stopped-leaf toll, four finite bootstrap levels, both moments and all 47 strict assembly inequalities. The next 10^-18 kappa grid point and deliberately malformed profile/column controls are rejected. Fresh working files remain in a unique work directory. + +## Contents + +- certificate.json and receipts/ASSEMBLY.json: exact conditional assembly and all inequalities. +- witnesses/: complete replacement bases, canonical merged bases and both profiles. +- native/: C++ admission, independent scalar-column replay and exact interval pricing; licensed portable dependencies are bundled. +- native-inputs.zip: frozen LF public word/frame/terminal inputs, the PR211 current-frame list, its paid banked baseline histogram and the retained complex bridge. +- baseline/: earlier completed bank/chart proof, verifier, original source archives and notices. Its smaller exponent and three-level composition are historical, superseded by this root certificate. +- research/: mathematical crossover notes and two portable omitted-label archives. These contribute no unpriced gain. +- PUBLIC-SOURCES.json: pinned public heads and acquisition times. +- FILES.json and SHA256SUMS: payload integrity manifests. + +See PROOF.md for the sufficient composition and RESEARCH-STATUS.md for which new concepts contribute. + +## Scope + +This is a conditional finite supplier improvement, not an unconditional integer-multiplication theorem, a practical multiplier implementation, or a Lean/kernel certificate. The inherited all-size Clifford/tensor realization, weighted/restored-row compilation, fixed-tape leaf guarantees, paid router/layout, prime supply, precision/recovery and analytic transfer conditions remain explicit. The complex physical word is unchanged and inherits its earlier completed admission; its moment is freshly replayed. The new integer/F2 scalar-column checker is independent of the old Python verifier. No global optimum is claimed. + +The 264 omitted triple labels have exact decoder formulas, cap-compatible partitions and substantial checked local constructions. The literal 139-role repair and a fully paid flat host are preserved. Cheap optimized reuse still needs a complete arbitrary-dirty compensation chronology; the fully paid fallback is too expensive. Neither is credited as an improved supplier. + +## Provenance + +Primary immutable sources: +- PR200 a1175449f34d39ff933d9d8ab23ced1f32b290ec: fixed physical bit word and original checkers. +- PR202 8d8d67bcf69c5ea67d3a29dbc64ba588156d6e8d: retained source-assisted complex supplier and bridge. +- PR211 c63e50a5dde96fe1459d6b29e55e47f42f104347: newly admitted cascade frame witness. +- PR210 5de2b8986e83942b7a704ee8a3ebda4c6db6a4fc: independent fourth-bootstrap comparison. + +All predecessor notices and source-specific credits are retained. Global graph cuts and concavity are classical; this contribution is the concrete composed schedule, native admission, independent scalar replay and finite exact assembly. Prepared with OpenAI Codex assistance. Apache-2.0, with third-party dependency licenses preserved. No submission or publication was performed locally. diff --git a/research/coordinated-crossover-pr200-v2/RESEARCH-STATUS.md b/research/coordinated-crossover-pr200-v2/RESEARCH-STATUS.md new file mode 100644 index 0000000000..a3a0877dbb --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/RESEARCH-STATUS.md @@ -0,0 +1,18 @@ +# Crossover findings and their disposition + +The sole current root claim is conditional kappa=0.000683864313137600. Smaller values in historical predecessor documents are superseded. No archive supplies an unpriced gain. + +1. Global cuts and concavity: USED. Selects 220 further operation-frame changes on admitted PR211. Complete exact path/value/prime admission and paired assembly pass. +2. Completed entrance banks: USED. Existing coordinate partitions, inverse charts and arbitrary dirty restoration remain intact. Actual bank stock, selector and router costs stay paid. +3. Finite bootstrap composition: USED. Four concrete levels are certified rather than a limiting fixed point. +4. The 264 omitted labels: PARTIALLY PROVED, no headline saving. Complete 2024-label decoder passes 4,096,576 entries; cross/missing checks pass 998,976 entries and 319,440 cap tests. Exact partitions and 132 source pairs exist. The 59-row shortcut has 133 physical nesting failures. A 139-role/233-shear repair passes source/dirty/restoration checks. +5. Old-query reuse: fresh support and cap repair PROVED, cheap noise-safe host OPEN. Contracting 2,094 frames admits all 240 distinct creation events; 1,222 prime certificates pass. Copies still carry arbitrary old scratch noise. That noise and the selected-gauge chronology must be implemented and paid. +6. Complete fallback: a sufficient expensive flat host is preserved. It pays 169,488 new captures, 34 terminal repairs, face deliveries and centre extensions. W=566552/3, rank=13,594,856, deficit=2,392. It performs far below the requested threshold; no improvement is claimed. +7. Shared totals/rank-two compensation: local algebra exists, but inherited physical caps fail. No bound contribution. +8. Fourier rank-one slice/broadcast: REJECTED for arbitrary-array inputs. Fourier rank is not physical operator rank; the admitted action is invertible. No unsupported input promise is introduced. +9. Public PR208 absorption ladder: target prices/tiling checks lack physical charts, normalizers and complete columns. Its prospective gain is not combined. +10. Public PR209 five-stage/Walsh mechanism: a potential future complex construction, explicitly untested in this framework. Its prospective saving is not added. + +The two research ZIPs retain portable C++ sources, exact witnesses and mathematical proofs for items 4-6. Historical-base fallback files retain their original inputs; they are not receipts for the final PR211 root. + +All work was local; nothing was published. Original upstream attribution remains, but no new personal author name, email, home-directory path or account credential was added. diff --git a/research/coordinated-crossover-pr200-v2/SHA256SUMS b/research/coordinated-crossover-pr200-v2/SHA256SUMS new file mode 100644 index 0000000000..49478c7d7f --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/SHA256SUMS @@ -0,0 +1,74 @@ +3a138f67954162087618a3cf38fb0e4c29564c1e039b1a25439f5c4f1e884868 baseline/arithmetic.py +3026341b38b322f8514f22497abb54bc2eb73324cb75af9d6c9c4cd9378d07cc baseline/BANK-CHART-PROOF.md +f5beb67709bf1235a2b6483883aa997a150ed4be47db978ab8be6040114cf924 baseline/baseline-pr202.part01 +21e1ff2a0ddc3e8febad3ca19d210d2e83d575f0968bb5125ab62bf6d00794fe baseline/baseline-pr202.part02 +218c880af743a75e272cd51b3bd1ce5f36583f332823c2b5606d21d5d8b72e98 baseline/baseline-pr202.part03 +e0f95fcdd581a7617eabd53f4d0ea9e7cf0551a31fcd081e3d2154750740f114 baseline/baseline-pr202.part04 +9b64c7b8b5b7893eae071733b7ca14e280fe08b3db942c1c6d00e88d6e615286 baseline/baseline-pr202.part05 +34d948f1f3724370d50605e1f8784407c6ee8f95f34e3135ad6afae07d7fcd0a baseline/BASELINE.json +fa555f609d1a9d5bdc37f868f0828e084193c829406a4bf3d67b20f62233ff66 baseline/BOOTSTRAP-REVIEW.md +23416f66749bf92dc7b47c69d5a94125effc26a043dd9ffbe83479e4d42e5e3a baseline/certificate.json +423c86f2406ea0540f25b336a467235099ff847d2e9f185de9126b479a8c61a9 baseline/CROSSOVERS.md +f1b53bd80b85d8504a6bdd229346ed43be354886397936ac1a754d54e2789695 baseline/FILES.json +65b6b30748fe8db9b472c6c4bd34ba6b6ec757f4440ad0d78f8cad139cbd906b baseline/frames/opframe-bases.json +e480ceee488b96e95fefb6ceee6280f3650c6d408f864f36615e7046873a8cc7 baseline/frames/verify-bit-frames.py +111710eaa3cbef146def51419e66077e103366198790e06a434d75c99a17b508 baseline/geometry/audit-gauge-charts.py +a1019da230d9d9c452c23a68e29c6647ddf73ec1a4be17f77cc9e9bcbe16431f baseline/geometry/BANK-PROOF-PR200.md +aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098 baseline/geometry/base_two_moment.py +c9cec5576df65336cae37753ef37311be1c1a28cb6075c4489182e2278c3d0ee baseline/geometry/check-normalizer-routing.py +b130f84bd79fcecc1189a6bd294e53c7de99882a54eb5c44ef05fe6b496aa435 baseline/geometry/pack-admitted-frames.py +ebd1765d5edc7804bc55e36ebac6c40500d8d393c40aa76cab6668954b6d4e70 baseline/geometry/pack-pr200.py +56822a01bfc646b0f3b28d3ebc60aeb6acf380d53bbed96780992ea66ad1bec7 baseline/geometry/retained-packing.py +c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 baseline/LICENSE +c9850418622aea8d1382a230306c940947b5da818f4854b4b272ed60cf239f6c baseline/NOTICE +7396fa4635dd4a09eefddfdd2d4cc66fcda021d31c17e7fb131a69f2fd7033e9 baseline/PR-STATEMENT.md +6439f550614aae7549f505467aa3f6798b299a6411a340d8d5416e97f0e98cd9 baseline/PR205-COMPARISON.md +0fa8d2d5a0affc673311e624701b13883fe5d09de890da5a11d7efddeb3d1a49 baseline/PROOF.md +4ad7dfac61595bd30f6ce405cbad3660d62fb822494fafa2de5cae8a5b313979 baseline/README.md +fdf15f8e56a3349c4cf3a05e4d073f03512a65deff2383767a4eaed1c445310f baseline/requirements.txt +d03b7b8b76a1244df91fa9aac17739bc61004751e937fcf0bb5bbf38d0dcc8e8 baseline/verify_inner.py +bd0a759be666d68d1f1ce588c8d7e3c51c92b86d8d4a2951b3803c64e5042a76 baseline/verify.py +ceb8b16040a25b28b68b5225a2ae98010c673bcc1eeb2fc74456875eb59a4b0e certificate.json +c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE +3b028a860ab3e49664d162c10a55fe2c921ff0e7d42a65064c8160898335f2cc native-inputs.zip +19eeb04a01bda9435cfcc592e90b36e40fb0a97258ab42d7fdfa513befc5f43c native/bit-columns.cpp +4330ec991d0f5edda0eb143f64f4ddfa5b713ffd768614adc438a07cad3f5614 native/frame-admission.cpp +7aa7cf83bae8ab6f7570c467ce6d430924d22e206af6d08bd293b81ed6644e2d native/native-deps.zip +270478ae915d5fe3f9305d4e264fe6653f93634d2d414bc10fda3896258cf37a native/native-pricing.cpp +c9850418622aea8d1382a230306c940947b5da818f4854b4b272ed60cf239f6c NOTICE +6c5d974e64c2279192aabf421ed2c1f76e18105e88e3d9b3c15c7f23c991c6d2 NOTICE-PR211 +2deca68bd9e68518d903c854a97803987389afabbf1cd85438323577d563ca9b PR-STATEMENT.md +2f6332e65f78aea45052abea6b43458b46bdc495397e549c497d044465b060e4 PRIVACY.md +b95262ded4b39283a4b1f94f7c0b9dcf53fbeecfb1726b30541a3da6d675a2a7 PROOF.md +2ced214f667988949e951801ec4c412d1f4657ac674899af6ba77467f3bab466 PUBLIC-SOURCES.json +c365313584edb28abb2bd583ca00bdc827e6f1137d2faa5b607b7a095eb43167 README.md +8421204bb5ea407a0cc0073b8403da661829f0edf7e3ab8f2ab07131bb7833db receipts/ALL-COLUMNS.json +ceb8b16040a25b28b68b5225a2ae98010c673bcc1eeb2fc74456875eb59a4b0e receipts/ASSEMBLY.json +31a3ed16fafcf4a7470d2937999819890579309472ba7bab47a16bec583d5c4b receipts/FRAME-ADMISSION.json +e122f3f9d58995f03249767b56717161738910b250b395e7fd2cc6db6407a154 receipts/INDEPENDENT-ASSEMBLY.json +96c44a735ce161201b2c3cfc769aff56c3d4559d6a55280c6f1512163c46c511 receipts/native-pricing-admitted-replay.json +4137b1834a2827a409b20ca55867851f1f31e636d2134d7b88d8492f59620b98 receipts/native-pricing-admitted-reprice.json +2c78c7ebc0a848368f04f27c01e8ab049e37c64402b3e30a007166eb797ea40f receipts/PACKAGED-REPLAY.json +0e47493e5fdce872a0dc6307cd11518e1bb8caddb16f7985fa1ce842f60ce761 RESEARCH-STATUS.md +51f2a3b5003f675ac2079891dbba9abdeeb31a724c35876a53792adc39ffd58d research/CENTRE-EXTENSION-PROOF.md +5781be0906c0732d7e3fc6c06cfc9aa7c1bdbfee26cbbd1e3051d9f7dcc37d43 research/CENTRE-EXTENSION.json +973566b0f4b143d563002e6567d1a950c6d7fc66684463d63685c37db5bd05cc research/CLOSURE-CHECKS.md +235d9713a31538249d5ad33a09012b50a522912ae012bda8e7bc72a70ecec444 research/FIFTH-BOOTSTRAP-COMPARISON.json +5405f10bd21750cbfaa72aaccbe162008b4d1687cabf88cdcf3bde8da51e0d35 research/FINAL-CUT-NOMINATION.json +9f790ed16bf6f0d2afbaa0d3ecc0f039495affa2864cbf6df55e33b209f6d654 research/HYBRID-CAP-CHECKS.txt +b2cfba303f463c94e9cb79289d18a0b6c6026b04e207c4a351a48e87383fe573 research/HYBRID-CAP-PROOF.md +a1706ff554a268bcc3e9d2d4f4f7ef21ba78da8496c7fc1d232e323f6fe51894 research/hybrid-cap.cpp +04a69f4cd893186f67f02ba3c199eca32874571312b307dbd952c7ed3637de0b research/LATE-REFINEMENT-SUMMARY.md +da231de5c1f26410a359fd506c91c79ca950551a21f1f438a94ad7db351cd781 research/LATEST-PUBLIC-ASSESSMENT.md +4f43b15d9a51e6d08d8619fa442aa6b34c27b2e666b6e724a5b09bf7ebf5492c research/MAJORIZATION-CUT.md +227e3b61586f9675c36549c2bd43b71b5c5eb3bb1806d84267838650d87310e7 research/omitted-label-compiler.zip +6845176db7d563f7da1e7d19dd4dee3305cab9fb1e04981f08e9862ba5f2e911 research/omitted-label-structural.zip +fcc19086ccba61688dbcaba9fe97ce7df1581a6fcf89af20e26ea04f11c1fec4 research/PR210-NAIVE-UNION-FAILURE.txt +fcc19086ccba61688dbcaba9fe97ce7df1581a6fcf89af20e26ea04f11c1fec4 research/PR210-PLATEAU-UNION-FAILURE.txt +9cb8194372a64d4bc375fb6def7570b5816c1a5d795565b2d25de53cf0dd0e92 research/W-PADDING-PROOF.md +772385748a5b97e548dde1fb17c0718d2f5ba29d19b846896a610c88eb3692f6 verify.ps1 +e382380e32a6c6c1e96ddb0ee3892451b91ebee3952df6a2d76630e63d6de100 verify.sh +f065829ab1d04dc9d7370b4585d9807f1969cfadb6cf67ced67495f78f10d28b witnesses/additional-bases.json +d6648093b0810c36436e3ffb4e06ab906e00e6780ae1be5acbd4ce23570d70b5 witnesses/bit-profile.json +663f9deacd3f4f8a3e2744353e9a7e62f2f384a658e64b27c6d52a6315eec4d8 witnesses/complex-profile.json +b6ccabfe3400939c1465b459f1d6776c104268485e956d554d3bb6a337ac862b witnesses/merged-bases.json diff --git a/research/coordinated-crossover-pr200-v2/baseline-pr202.part01 b/research/coordinated-crossover-pr200-v2/baseline-pr202.part01 new file mode 100644 index 0000000000..abc3e2fb85 Binary files /dev/null and b/research/coordinated-crossover-pr200-v2/baseline-pr202.part01 differ diff --git a/research/coordinated-crossover-pr200-v2/baseline-pr202.part02 b/research/coordinated-crossover-pr200-v2/baseline-pr202.part02 new file mode 100644 index 0000000000..047bac3233 Binary files /dev/null and b/research/coordinated-crossover-pr200-v2/baseline-pr202.part02 differ diff --git a/research/coordinated-crossover-pr200-v2/baseline-pr202.part03 b/research/coordinated-crossover-pr200-v2/baseline-pr202.part03 new file mode 100644 index 0000000000..dea0a3b789 Binary files /dev/null and b/research/coordinated-crossover-pr200-v2/baseline-pr202.part03 differ diff --git a/research/coordinated-crossover-pr200-v2/baseline-pr202.part04 b/research/coordinated-crossover-pr200-v2/baseline-pr202.part04 new file mode 100644 index 0000000000..bbf44c183d Binary files /dev/null and b/research/coordinated-crossover-pr200-v2/baseline-pr202.part04 differ diff --git a/research/coordinated-crossover-pr200-v2/baseline-pr202.part05 b/research/coordinated-crossover-pr200-v2/baseline-pr202.part05 new file mode 100644 index 0000000000..6ef03d88c3 Binary files /dev/null and b/research/coordinated-crossover-pr200-v2/baseline-pr202.part05 differ diff --git a/research/coordinated-crossover-pr200-v2/baseline/BANK-CHART-PROOF.md b/research/coordinated-crossover-pr200-v2/baseline/BANK-CHART-PROOF.md new file mode 100644 index 0000000000..217224417e --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/BANK-CHART-PROOF.md @@ -0,0 +1,47 @@ +# Final302 frame changes, concrete charts and completed banks + +2026-10-09. This supersedes the234-frame candidate for packaging. It is a sufficient finite construction under the unchanged all-size interfaces, not an unconditional multiplication theorem. + +## Admitted bit word and paid inventory + +The new word uses immutable PR200 at a1175449f34d39ff933d9d8ab23ced1f32b290ec, with302 exact operation-frame changes. All source/gauge/root endpoints,1760 compensated aliases, source/target chronology and34 terminal sinks are retained. The frame lane executed the complete F2 and defining-integer dirty-column replay. The geometry lane independently reconstructed every actual modified frame and full paid ledger, audited its terminal−102 rank3/−102 rank21 histogram substitution, and recomputed all24602 used-frame Bareiss prime witnesses from their actual bases. Everyprime q>2^80 remains eligible. + +The entrance classes remain exactly2200 rank20 genuine physical starts; rank21 recipient gauges remain internal splices. Sources, centre-touched roles and deleted terminals are forbidden as entrance gauges, with explicit rejected controls. Remove only2200 per-vertex rank60 exterior children after the complete bank endpoint proof. Every source, target, internal, centre, compensation and fallback child stays charged. + +The resulting full normalized profile is m72, W56402/3, rank1351712, deficit1936, largest child22. Integer moment normalization multiplies stock, every child count and deficit by three. Nine physical replicas supply1100 selected18×4 banks and44742 undeferred3×24 banks per stage, with31680 data registers: literal stock169206. All462078 role-copy assignments across three stages are checked exactly once. + +Two independent rational enclosures, including the full10^-16 bad-class32*72²-per-edge fallback, certify + +`coarse = 136731504666219/200000000000000000`, + +`ordinary = 546573370825043616599485038841961823/800000000000000000000000000000000000000`, + +`ordinary ≈ 0.0006832167135313045`. + +Adjacent coarse and preceding atom-grid controls fail for this fixed profile/envelope. No independent supplier gains are added. + +## All actual charts and fixed normalizers + +The220 unchanged rank20 gauge frames have sigma=ker A with four annihilator rows a. For G=9I-J, residual basis rows15a−(sum a)1 are Gorthogonal to sigma. Put these four columns before the20 sigma columns in B. Reusing PR197's fraction-free factorization, independently verify both B·C=dI and C·B=dI and replay every elementary factor to the identity. This constructs the literal residual projector's chart, rather than an assumed normalizing gadget. + +Across everyactualchart, maximum factor count is186, factor numerator magnitude5, denominator/inverse denominator18, integral inverse numerator18, and basis entry magnitude2. All nonzero inverse and factor denominators are below2^80 and thus units at every inherited primeq>2^80, including local ringsZ/q^w. The chart gzip witness hash is `f81a21df89d4702b70564f9577b5506504de429ca5df253e78bd28f2685cd432`. + +Embed B^-1 in the corresponding24-coordinate tensor stage and use the explicit coordinate permutation Pi_b sending its first residual block into bank intervalb. Choose fixed H_b=(b+1)Pi_bdiag(B^-1,I48), with b0..17 for selected banks or b0..2 for undeferred banks. A common inputcoordinatej outside that tensorstage maps to (b+1)e_(Pi_b(j)); these columns are distinct at everyq>2^80. This supplies literal distinct normalizers without a greedy choice or same-invocation alias. Scalar multiplication leaves conjugation unchanged. + +Group routing sends banklabelg to coregH_b. Each role's routing is a bijection on the completeGL cover. Distinct H_b preventtwo simultaneous roles from borrowing the same physical bank. Replica execution is serial and stages are private. After everycore completes, its arbitrary-dirty residual is conjugate to a disjoint coordinate partial swap. Each bank's partition sums to I72, so the exact ring-general identity gives the full required dirty endpoint; inverse order restores the same contents. The common weighted ancestor chart telescopes and spectators remain intact. + +## Fully charged extra routing + +Allow186 chart elementary factors,71 coordinate transpositions and72 fixed-scalar coordinate factors, totalling329. Nine full replicas contain27 stage-core occurrences. A conservative out-and-back old-selector bill is + +`K =54*((169206−1)+17114*72*329) =21900544398 <2^40`. + +These are additional paid ordinary-selector calls, never silently counted as zero work or as extra recursive children. As in PR197 PROOF5, their cost is O(K V w^(1−a_old)); the inherited positive stopped-leaf atom/row toll absorbs the fixed coefficient K. They change the finite stopping constant, not the exponent or external row order. Full group stock remains charged. All-size restored weighted selector and routing guarantees remain the original conditions. + +## Source-bound receipts and final assembly + +Frame receipt SHA256 `79160698cb761b17af5667e141367160ba0d3d447e0e6121b6de784065e0fb7f`; override witness SHA256 `65b6b30748fe8db9b472c6c4bd34ba6b6ec757f4440ad0d78f8cad139cbd906b`; independent used-frame prime witness SHA256 `038867338525dcae7f9e721b809b42b93cfe2f777db02c6f6189eca25ebed6cd`. All pinned sources stayed byte-identical through the independent geometry audit. + +The parent owns the admitted complex supplier, finite depth-three leaf composition and unchanged47 balanced inequalities with complete scalar/group/router/layout charges. No unattained infinite-depth limit is substituted. General compiler, common weighted chart, restored rows, paid layout, prime supply, precision/recovery and analytic transfer remain inherited. No Lean formalization or publication occurred. + +Reproduce withgeometry/pack-admitted-frames.py againstframes/pr200-fastdirections1, geometry/audit-gauge-charts.py, andgeometry/check-normalizer-routing.py. The complete bank profile, full exact moment proof and each physical assignment hash are inpacked-pr200-fastdirections1.json. diff --git a/research/coordinated-crossover-pr200-v2/baseline/BASELINE.json b/research/coordinated-crossover-pr200-v2/baseline/BASELINE.json new file mode 100644 index 0000000000..38dc26ae37 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/BASELINE.json @@ -0,0 +1,34 @@ +{ + "base_commit": "8d8d67bcf69c5ea67d3a29dbc64ba588156d6e8d", + "bit_source_commit": "a1175449f34d39ff933d9d8ab23ced1f32b290ec", + "archive_sha256": "ddb0fbdbda0a45b25ea5c5ce5fd7858687d99211f45b6c3a674d38e1ae7c378d", + "bytes": 51416352, + "parts": [ + { + "file": "baseline-pr202.part01", + "bytes": 12000000, + "sha256": "f5beb67709bf1235a2b6483883aa997a150ed4be47db978ab8be6040114cf924" + }, + { + "file": "baseline-pr202.part02", + "bytes": 12000000, + "sha256": "21e1ff2a0ddc3e8febad3ca19d210d2e83d575f0968bb5125ab62bf6d00794fe" + }, + { + "file": "baseline-pr202.part03", + "bytes": 12000000, + "sha256": "218c880af743a75e272cd51b3bd1ce5f36583f332823c2b5606d21d5d8b72e98" + }, + { + "file": "baseline-pr202.part04", + "bytes": 12000000, + "sha256": "e0f95fcdd581a7617eabd53f4d0ea9e7cf0551a31fcd081e3d2154750740f114" + }, + { + "file": "baseline-pr202.part05", + "bytes": 3416352, + "sha256": "9b64c7b8b5b7893eae071733b7ca14e280fe08b3db942c1c6d00e88d6e615286" + } + ], + "scope": "Exact tracked PR202 LF source, plus pinned replayed aligned complex witness. PR200 bit source agrees except its SOURCE.json receipt." +} diff --git a/research/coordinated-crossover-pr200-v2/baseline/BOOTSTRAP-REVIEW.md b/research/coordinated-crossover-pr200-v2/baseline/BOOTSTRAP-REVIEW.md new file mode 100644 index 0000000000..1289eb2003 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/BOOTSTRAP-REVIEW.md @@ -0,0 +1,38 @@ +# Finite-bootstrap proof scope review + +## Sufficient conditional argument + +Let c be the certified coarse bit saving and let a0 be the completed atom-wrapped ordinary supplier saving. Assume the inherited all-width ordinary leaf interface, complete spectator handling, restored borrowed rows, fixed finite tapes and paid routing/layout. These assumptions must be stated for the selected new packed supplier and its retained old ordinary selector. + +For j=1,2,3, construct Aj using the coarse supplier at atom width w=ceil(e^c), with ordinary leaves, source exchanges and routing executed only by A(j-1). This is an acyclic call graph. Within one level, rank-r children have smaller width because r<=22<72; ordinary recursion decreases j. No limit construction or self-call through a completed leaf is used. + +The inherited stopped-leaf estimate is + +Tj(e)/V = O(e^(1-c) + e^((1-c)^2+c(1-a(j-1))) + e^c log e). + +Therefore the achieved ordinary saving is + +a(j) = (1-c)c + c a(j-1) = c - c^j(c-a0). + +Here 02^80 remains allowed. +2. **Complete bank endpoint.** Apply the concrete ring-general partial-swap construction in BANK-CHART-PROOF.md. Exactly 2200 genuine rank20 entrance gauges give rank4 residuals; the 14914 other retained physical chains give rank24 residuals. Nine replicas fill 18-by-4 and 3-by-24 banks, private to each of three stages. All 462078 role-copy assignments occur once. Arbitrary correlated dirty contents obey the full-swap identity and inverse restoration. Sources, spliced recipient gauges and deleted terminals are excluded. Only the 2200 rank60 entrance exterior children are removed. +3. **No free routing.** All 220 gauge charts have literal inverse and elementary-factor witnesses. Explicit normalizers H_b=(b+1)Pi_b diag(B^-1,I48) are distinct modulo every permitted prime, witnessed by an outside-stage unit column. The nine-replica routing bill K=21900544398<2^40 includes charts, permutations and scalar factors. Its fixed ordinary-selector cost is absorbed by the inherited positive stopped-leaf atom/row toll, changing the finite stopping constant rather than the exponent. This remains an explicit inherited all-width assumption, not a consequence of the finite checks alone. +4. **Paid profile.** The normalized bit profile is m=72, W=56402/3, rank=1351712, deficit=1936, largest child22. Integer moment normalization scales W, histogram and deficit by three; actual persistent stock is 169206 on nine replicas. Include the full 10^-16 bad-class envelope with 32*72^2 fallback children per paid edge. Two independent exact rational log/exp enclosures prove coarse c=136731504666219/200000000000000000 and reject c+10^-18. The ordinary leaf starts at the fully paid a0=546573370825043616599485038841961823/(8*10^38), not at the coarse root. +5. **Acyclic finite bootstrap.** Construct A0 -> A1 -> A2 -> A3. At each fixed level, internally borrowing/restoring spectators gives a_j=(1-c)c+c*a_(j-1). This is the PR185/197 completed-leaf composition under their all-width interfaces. Each a_(j-1)1: + md=(lo+hi)//2;v=paid(row,Q(md,den),bit) + if v['upper']<1:lo=md + elif v['lower']>1:hi=md + else:raise ValueError('inconclusive') + a=Q(lo,den);z=Q(hi,den);assert paid(row,a,bit)['upper']<10 for v in z['strict_constraints'].values()) +try:assembly.assembly(a,c['saving'],bridge,k+Q(1,grid),eta=eta,beta=beta) +except AssertionError:pass +else:raise AssertionError('next k accepted') +out=dict(status='PASS_EXACT_47_CONSTRAINT_ASSEMBLY',scope='Conditional finite supplier certificate; retained all-size interfaces and analytic assumptions',bit_profile=bp,complex_profile=cp,bit=b,complex=c,ordinary_chain=chain,bit_ordinary=chain[-1],a_bit=a,a_complex=c['saving'],eta=eta,beta=beta,kappa=k,kappa_float=float(k),binding='bit',assembly=z,adjacent_kappa_rejected=True) +(O/'assembly.json').write_text(json.dumps(enc(out),indent=2,sort_keys=True)+'\n') +print(json.dumps(enc({k:out[k] for k in ['status','kappa','kappa_float','bit_ordinary','a_complex']}),indent=2)) diff --git a/research/coordinated-crossover-pr200-v2/baseline/certificate.json b/research/coordinated-crossover-pr200-v2/baseline/certificate.json new file mode 100644 index 0000000000..5e882a3fbb --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/certificate.json @@ -0,0 +1,199 @@ +{ + "a_bit": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "a_complex": "700918443859411/1000000000000000000", + "adjacent_kappa_rejected": true, + "assembly": { + "absorption_gap": "134281643351448469855595122809435201472739986862783885293176478497632435149777090241037553043786318538250810999419972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "margins": { + "Gaussian_arithmetic": "269255886111883479314991099644648533713048750891109557636200948729645684632351887487203757789591105011931098889929870370327450919972289/394115409732265729633160997421775731199794069476514498167468200820023068506193706555112716272207407476078528044337600000000000000000000000", + "balanced_prefix": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "bulk_exposure": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_phase_layer": "168284928819927174571777066478749333790272697198172744835625641220994994809711929319935155711813301482483082263329870370327450919972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "coordinate_movement": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "dimension": "246153846153846153846153600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "scalar_work": "1346279430559417396575940786747573332889326656949102227509004228821919709407178107938068846619221009326043276240329870370327450919972289/1970577048661328648165804987108878655998970347382572490837341004100115342530968532775563581361037037380392640221688000000000000000000000000" + }, + "minimum_margin": "168284928819927174571777066478749333790272697198172744835625641220994994809711929319935155711813301482483082263329870370327450919972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "parameters": { + "C0": { + "base": 2, + "exponent": 210000 + }, + "C1": 1, + "a_bit": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "a_complex": "700918443859411/1000000000000000000", + "alpha_squared_power": "336569857639854349143800455088581333661566120019734099503251153735412811180778526265382825841442974031563109974329870370327450919972289/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000000000000", + "beta": "1/1000000000000000000000000", + "c": "2187704074659053269433904051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "delta": "1/8000000000000000000000000", + "epsilon": "246153846153846153846153600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "eta": "1/1000000000000000000000000", + "kappa": "1366380910073/2000000000000000", + "lambda_": "6395624591850681893461133787520736218685239832140422550106711103807918410980047703259889301788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime": "3197812295925340946730566895948072184001673185503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q": "2187704074659053269433104051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "sigma": "999299081556140589/1000000000000000000", + "tau": "6395624591850681893461133783145328069367133293274205695434780470941211685185743138040360243/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "recurrence": { + "internal": "6395624591850681893461133783145328069367133293274205695434780470941211685185743138040360243/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "leaf": "999299081556140589000000000700918443859411/1000000000000000000000000000000000000000000", + "reservations": "3197812295925340946730566095948072184001673185503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "strict_constraints": { + "Gaussian_arithmetic_above_kappa": "214850777155596201368600808930470355522283178903230270162019178396787203748294034208300043037326711738979101128519972289/394115409732265729633160997421775731199794069476514498167468200820023068506193706555112716272207407476078528044337600000000000000000000000", + "K_dominates_log": "168284928819927174571838604940287795328734235598172744835625641220994994809711929319935155711813301482483082263329870370327450919972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "K_geometry": "184783669544204542559187223388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "alpha_below_one": "492307692307692307692307446322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000000000000", + "alpha_below_one_fourth": "122824495683693186161219011239216334666274080591391046577830561602521796097004754772207341009223371862242976903881170129629672549080027711/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000000000000", + "alpha_positive": "336569857639854349143800455088581333661566120019734099503251153735412811180778526265382825841442974031563109974329870370327450919972289/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000000000000", + "artificial_boundary": "13795385620059859954557211835837422495990005841237450092528224032414803008712432326207385188431549748156340912609847010388889017647240083133/1970577048661328648165804987108878655998970347382572490837341004100115342530968532775563581361037037380392640221688000000000000000000000000", + "balanced_prefix_above_kappa": "268563779347159105043352287070117180165143973468154616229475666330515895328389813224208299978467977335760967097/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000", + "beta_below_one": "999999999999999999999999/1000000000000000000000000", + "beta_positive": "1/1000000000000000000000000", + "bit_positive": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "bulk_exposure_above_kappa": "2989237084506538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_below_one": "3197812295925340946730566095948072184001673185503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_positive": "2187704074659053269433904051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cell_above_band": "492307692307692307692306953677868917333918979274376611390168000128706577178438645332374487485582183628933403054552329870370327450919972289/985288524330664324082902493554439327999485173691286245418670502050057671265484266387781790680518518690196320110844000000000000000000000000", + "compact_leaf": "55234945691061930566893705133163651557985503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_phase_layer_above_kappa": "134281643351448469855595122809435201472739986862783885293176478497632435149777090241037553043786318538250810999419972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "compact_reservations": "1/4000000000000000000000000", + "complex_above_bit": "110469891382123861133783145328069367133293274205695434780470941211685185743138040360243/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_below_one_over32": "30549081556140589/1000000000000000000", + "coordinate_movement_above_kappa": "2989237084506538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "delta_below_one_eighth": "999999999999999999999999/8000000000000000000000000", + "delta_positive": "1/8000000000000000000000000", + "dimension_above_kappa": "491971122450052453611726932569939441043609700224474057455808722443125780596733533136624999988130553879110139923045977335760967097/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000", + "epsilon_below_one": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "epsilon_positive": "246153846153846153846153600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "gamma_sublinear": "1/2000000000000000000000000", + "guard_width": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "lambda_above_internal": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_sigma": "110469891382123861133787520736218685239832140422550106711103807918410980047703259889301788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_tau": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_above_lambda": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_below_one": "2187704074659053269433104051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "leaf_saving_above_bit": "110469891382123861133778659450028666902893274205695434780470941211685185743138040360243/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "literal_scalar_guard": "1", + "phase_boundary": "269255886111883479314991099644648533713048750891109557636200948729645684632351887487203757789591105011931098889929870370327450919972289/394115409732265729633160997421775731199794069476514498167468200820023068506193706555112716272207407476078528044337600000000000000000000000", + "phase_local": "1346279430559417396575940786747573332889326656949102227509004228821919709407178107938068846619221009326043276240329870370327450919972289/1970577048661328648165804987108878655998970347382572490837341004100115342530968532775563581361037037380392640221688000000000000000000000000", + "prime_interval_packing": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "q_below_internal": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_leaf": "55234945691061930566893705133163651557985503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_reservations": "1/4000000000000000000000000", + "q_positive": "2187704074659053269433104051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "record_suffix": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "row_product_gap": "23971789/25", + "scalar_work_above_kappa": "1074254871066505337507328127554845332050743894001325042096341310654438068799141436525766602968424239213414195838919972289/1970577048661328648165804987108878655998970347382572490837341004100115342530968532775563581361037037380392640221688000000000000000000000000", + "short_record_fallback": "1574306855524918884571274205389066327000920465903440952946365445540569604237553260610885033093742760664679982409998088157882306036774103883673142683918570723766876330273287070119111281479259396462862693773/1576461638929062918532643989687102924799176277906057992669872803280092274024774826220450865088829629904314112177350400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "small_field_exposure": "1/1000000000000000000000000" + } + }, + "beta": "1/1000000000000000000000000", + "binding": "bit", + "bit": { + "accepted": { + "lower": "1652402343749999997851238800561347063905497669045666488650474907/1652402343750000000000000000000000000000000000000000000000000000", + "saving": "136731504666219/200000000000000000", + "strict_gap_lower": "2438016547619109504615743675878715911813/676824000000000000000000000000000000000000000000000", + "upper": "1652402343749999997851238800561347063905497701989363999508104809/1652402343750000000000000000000000000000000000000000000000000000" + }, + "next_excluded": { + "lower": "8262011718750000006555831576444862302593421956910263100630461/8262011718750000000000000000000000000000000000000000000000000", + "saving": "85457190416387/125000000000000000", + "strict_gap_lower": "65013736811541319536185606023662851449/18048640000000000000000000000000000000000000000000", + "upper": "275400390625000000218527719214828743419780737420068666036349517/275400390625000000000000000000000000000000000000000000000000000" + }, + "saving": "136731504666219/200000000000000000" + }, + "bit_ordinary": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "bit_profile": { + "L": 0, + "N": 5808, + "W": 56402, + "child_multiplicities": { + "1": 378477, + "10": 5796, + "11": 3627, + "12": 12159, + "13": 4806, + "14": 10638, + "15": 2808, + "16": 9396, + "17": 4284, + "18": 3996, + "19": 2790, + "2": 178653, + "20": 15840, + "21": 45054, + "22": 20016, + "3": 91629, + "4": 28737, + "5": 24219, + "6": 12096, + "7": 11691, + "8": 7344, + "9": 5175 + }, + "m": 72, + "maxchild": 22, + "total_rank": 4055136 + }, + "complex": { + "accepted": { + "lower": "265143999999999999505356323836919762528275607173151/265144000000000000000000000000000000000000000000000", + "saving": "700918443859411/1000000000000000000", + "strict_gap_lower": "44967606923916385224702216933483/24104000000000000000000000000000000000000000000000", + "upper": "24103999999999999955032393076083614775297783066517/24104000000000000000000000000000000000000000000000" + }, + "next_excluded": { + "lower": "66286000000000000033428585232057842908390904631703/66286000000000000000000000000000000000000000000000", + "saving": "175229610964853/250000000000000000", + "strict_gap_lower": "-1162733399375924970726640217937/2305600000000000000000000000000000000000000000000", + "upper": "2305600000000000001162733399375924970726640217937/2305600000000000000000000000000000000000000000000" + }, + "saving": "700918443859411/1000000000000000000" + }, + "complex_profile": { + "L": 0, + "N": 1320, + "W": 12052, + "child_multiplicities": { + "1": 87534, + "10": 2790, + "11": 1062, + "12": 3591, + "13": 381, + "14": 2226, + "15": 5637, + "16": 264, + "17": 243, + "18": 7959, + "19": 501, + "2": 39834, + "20": 66, + "3": 29769, + "4": 12627, + "5": 5850, + "6": 4815, + "7": 2118, + "8": 4593, + "9": 1287 + }, + "m": 66, + "maxchild": 20, + "total_rank": 794112 + }, + "eta": "1/1000000000000000000000000", + "kappa": "1366380910073/2000000000000000", + "kappa_float": 0.0006831904550365, + "ordinary_chain": [ + "546573370825043616599485038841961823/800000000000000000000000000000000000000", + "109385155514905442426418537664349652181461624755757237/160000000000000000000000000000000000000000000000000000000", + "21877040740002110769946254600167413306868853489797819501857050278676903/32000000000000000000000000000000000000000000000000000000000000000000000000", + "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "scope": "Conditional finite supplier certificate; retained all-size interfaces and analytic assumptions", + "status": "PASS_EXACT_47_CONSTRAINT_ASSEMBLY" +} diff --git a/research/coordinated-crossover-pr200-v2/baseline/frames/opframe-bases.json b/research/coordinated-crossover-pr200-v2/baseline/frames/opframe-bases.json new file mode 100644 index 0000000000..dfbfb9f407 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/frames/opframe-bases.json @@ -0,0 +1 @@ +[[18670,[[1,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,1,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18715,[[1,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18730,[[0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,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,1,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]]],[18731,[[0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,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,1,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]]],[18771,[[1,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,1,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18816,[[1,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18831,[[0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,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,1,0,0,0,1,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]]],[18832,[[0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,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,1,0,0,0,1,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]]],[18872,[[1,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,1,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18881,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[18882,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[18917,[[1,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18932,[[0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,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,1,0,0,0,0,1,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]]],[18933,[[0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,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,1,0,0,0,0,1,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]]],[18973,[[1,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,1,0,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18982,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0],[0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[18983,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0],[0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19018,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,1,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,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]]],[19033,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19034,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19074,[[1,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,1,0,0,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19083,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19084,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19119,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,1,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,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]]],[19134,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19135,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19175,[[1,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,1,0,0,0,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19184,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19185,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19220,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,1,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,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]]],[19235,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19236,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19276,[[1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19285,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19286,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19321,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,1,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,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]]],[19336,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19337,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19377,[[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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19386,[[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,1,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,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,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]]],[19387,[[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,1,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,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,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]]],[19422,[[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,1,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,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]]],[19437,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19438,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19478,[[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,1,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,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]]],[19487,[[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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19488,[[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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19523,[[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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19538,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19539,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19579,[[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,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,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]]],[19588,[[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,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,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,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]]],[19589,[[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,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,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,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]]],[19624,[[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,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,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]]],[19639,[[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,1,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19640,[[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,1,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19680,[[1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19689,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19690,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19725,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19740,[[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,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,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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]]],[19741,[[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,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,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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]]],[19781,[[1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,1,0,0,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,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]]],[19790,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1],[0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19791,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1],[0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19826,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19841,[[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,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,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,1,0,0,0,0,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,0,0,0,0,0]]],[19842,[[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,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,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,1,0,0,0,0,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,0,0,0,0,0]]],[20664,[[1,0,0,0,0,0,0,0,0,2,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],[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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20669,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20672,[[0,1,0,0,0,0,0,0,0,2,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],[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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20677,[[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20680,[[0,0,1,0,0,0,0,0,0,2,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],[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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20685,[[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20688,[[0,0,0,1,0,0,0,0,0,2,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],[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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20693,[[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20696,[[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,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,1,0,0,0,0,2,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20701,[[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20704,[[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,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,1,0,0,0,2,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20709,[[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20712,[[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,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,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,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,1,0,0,2,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]]],[20717,[[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20720,[[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,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,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,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,1,0,2,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]]],[20725,[[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20728,[[0,0,2,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,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20733,[[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20736,[[0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,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,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20741,[[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20744,[[0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20749,[[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20752,[[0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0]]],[20757,[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20760,[[0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,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,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0]]],[20765,[[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,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,1,0,0,0,0,2,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,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,1,-1,0,0,0,0,0,0]]],[20768,[[0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0]]],[20773,[[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,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,1,0,0,0,2,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,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,1,-1,0,0,0,0,0,0]]],[20776,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0]]],[20781,[[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,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,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,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,1,0,0,2,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]]],[20784,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0]]],[20789,[[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,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,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,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,1,0,2,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]]],[20792,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0]]],[20797,[[0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0]]],[20800,[[0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0]]],[20805,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0]]],[20808,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0]]],[20813,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0]]],[20816,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0]]],[20821,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0]]],[20824,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0]]],[20829,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,0,0,0,0,1,0,0,0]]],[20832,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0]]],[20837,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0]]],[20840,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]]],[20845,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0]]],[20848,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]]],[20853,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1]]],[20864,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,0,0,0],[0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,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,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,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,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,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,1,-1,0,0,0,0]]],[20909,[[1,0,0,0,0,0,0,0,0,0,0,0,0,2,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,0,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[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,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,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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[20918,[[1,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,0,0,0,0,2,0,0,0,0],[0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,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,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,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,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,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,1,-1,0,0,0,0]]],[20963,[[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,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[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,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,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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[20972,[[1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,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,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,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,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,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,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,1,-1,0,0,0,0]]],[21017,[[1,1,0,0,1,1,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[21026,[[1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,1,-1,0,0,0,0]]],[21080,[[1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,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,1,-1,0,0,0,0]]],[21125,[[1,1,1,1,0,0,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[21134,[[1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,1,-1,0,0,0,0]]],[21188,[[1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,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,1,-1,0,0,0,0]]],[21242,[[1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,1,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,1,-1,0,0,0,0]]],[21296,[[1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,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,1,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,1,-1,0,0,0,0]]],[21350,[[1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,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,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,1,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0]]],[21395,[[1,1,1,1,0,0,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[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,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,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,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,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,1,0,0,0,2,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[21728,[[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,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,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,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,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,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,1,0,0,2,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]]],[21782,[[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,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,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,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,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,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,1,0,2,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]]],[21836,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,-8,1,1,1,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,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,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,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,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,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,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,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,1,2,0,0,0,0]]],[21890,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,4,1,1,1,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0]]],[21944,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,-8,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,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,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,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,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,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,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,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,1,2,0,0]]],[21989,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,-8,1,1],[0,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,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,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,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,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,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,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,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,1,2,0,0]]],[21998,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,4,1,1],[0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,2,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,2,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,2,1,0,0]]],[22043,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,4,1,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,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,2,1,0,0]]],[22052,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,-8],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,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,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,1,2]]],[22106,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,4],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,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,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,2,1]]],[22151,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,4],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,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,2,1]]],[22786,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,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,-1],[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,0,0,0,0,0,1,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,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[22792,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,0,0,1,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,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,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22793,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,0,0,1,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,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,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22814,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,0,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,-6,1,1,1,1,1,1,1,1],[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,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,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,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,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,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,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,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,1,-1,0,0,0,0,0,0,0,0]]],[22822,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0],[0,1,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,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,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,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,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,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,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,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,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,1,-1,0,0]]],[22833,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,1,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,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,-1],[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,0,0,0,0,0,1,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,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[22839,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,0,0,1,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,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,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22840,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,0,0,1,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,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,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22869,[[1,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,0,0,0,0,2,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,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,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,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,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,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,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,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,1,-1,0,0]]],[22880,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,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,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,-1],[0,0,0,0,0,0,1,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,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[22886,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,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,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,-1],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22887,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,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,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,-1],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22908,[[1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,-6,1,1,1,1,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,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,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,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,1,-1,0,0,0,0,0,0,0,0]]],[22916,[[1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,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,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,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,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,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,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,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,1,-1,0,0]]],[22927,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,2],[0,0,0,0,1,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,0,0,0,0,-1],[0,0,0,0,0,0,1,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,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[22974,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,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,2],[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,0,0,0,0,0,1,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,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[22980,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,2],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22981,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,2],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[23010,[[1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,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,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,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,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,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,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,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,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,1,-1,0,0]]],[23021,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,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,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,1,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,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23027,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[23028,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[23068,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23115,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23162,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23168,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,1,-1]]],[23169,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,1,-1]]],[23209,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23245,[[1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,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,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,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0]]],[23256,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23303,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23309,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23310,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23350,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,0,0,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,1,-1]]],[23397,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,0,0,1,1,1,1,1,1,0,0,0,-5],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2],[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,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,1,-1]]],[23403,[[1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23404,[[1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23444,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,0,0,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2],[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,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,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,1,-1]]],[23491,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,0,0,1,1,1,1,0,0,0,-5],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,2],[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,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,1,-1]]],[23538,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,0,0,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2],[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,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,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,1,-1]]],[23585,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,0,0,1,1,0,0,0,-5],[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,0,0,0,0,0,1,0,0,0,0,0,2],[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,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,1,-1]]],[23632,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2],[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,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,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,1,-1]]],[23679,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[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,0,0,0,0,0,1,0,0,0,2],[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,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,1,-1]]],[23685,[[1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23686,[[1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23726,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[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,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,1,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23762,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,-6,1,1],[0,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,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,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,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,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,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,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,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,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,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,1,2,0,0]]],[23773,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[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,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,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,1,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23809,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,3,1,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,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,2,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0]]],[23820,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[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,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,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,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,1,2]]],[23867,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,0,0,0,0,0,5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[23873,[[1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,3],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,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,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[23874,[[1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,3],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,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,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[23895,[[1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,3],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,2,1]]],[23903,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,3],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,2,1]]],[24454,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-4],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,1,-1]]],[24466,[[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,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,2,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2]]],[24523,[[2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-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,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[24568,[[1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-4],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,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,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,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,1,-1]]],[24580,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-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,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[24694,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,1,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,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],[1,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-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,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[24751,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,0,0,0,0],[2,0,0,0,0,1,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,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],[1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-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,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[24922,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-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,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[25093,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[25207,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-1,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,-1,-1,0,0,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[25549,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-1,0,0,0,0,0],[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-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,-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,-1]]],[25765,[[1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,2],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[25777,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-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,-1,0],[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]]],[26467,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26509,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,-2],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,1,-1]]],[26526,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26585,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26627,[[1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,-2],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,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,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,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,1,-1]]],[26644,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26703,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26762,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26821,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26880,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26939,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26998,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27057,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27116,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27118,[[1,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,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,-1,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,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,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,1,0,0,0,0,0,0,0,2,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,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,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,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,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,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,1,-1,0,0,0,0]]],[27119,[[1,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,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,-1,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,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,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,1,0,0,0,0,0,0,0,2,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,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,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,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,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,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,1,-1,0,0,0,0]]],[27175,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27234,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27293,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27295,[[1,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,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,-1,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,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,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,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,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,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,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,1,0,0,0,0,2,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,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,1,-1,0,0,0,0]]],[27296,[[1,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,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,-1,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,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,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,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,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,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,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,1,0,0,0,0,2,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,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,1,-1,0,0,0,0]]],[27352,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27411,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27470,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27472,[[1,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,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,-1,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,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,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,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,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,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,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,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,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,1,0,2,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]]],[27473,[[1,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,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,-1,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,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,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,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,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,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,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,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,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,1,0,2,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]]],[27529,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27531,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,2,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,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0]]],[27532,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,2,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,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0]]],[27588,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2]]],[27590,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,2,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,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0]]],[27591,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,2,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,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0]]],[27647,[[1,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,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,-1,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,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],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,1,1,1,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,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,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,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,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,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,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,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,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,1,1,0,-1,1,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0]]],[27649,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0]]],[27650,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0]]],[27706,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,1,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0]]],[27765,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,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,-1],[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,0,0,0,0,0,1,1,1,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,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,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,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,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,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,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,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,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,1,1,1,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2]]],[27824,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,2,2,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[27826,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,2,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,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1]]],[27827,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,2,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,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1]]],[27866,[[1,1,1,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,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[28426,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28443,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,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,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[28471,[[1,2,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,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,2,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2]]],[28508,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28525,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,1,1,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,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[28590,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28607,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,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,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[28635,[[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,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,2,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,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,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2]]],[28672,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28689,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,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,0,0,0,0,2],[0,0,0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[28754,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28771,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,0,0,1,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,2],[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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[28836,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28853,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,0,0,1,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,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[28918,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28935,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[29000,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29017,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[29082,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29099,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[29164,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29181,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[29246,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29263,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[29328,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29345,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,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,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,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,1,-1]]],[29410,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29427,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,1,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,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,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,1,-1]]],[29492,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29509,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,1,0,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,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,1,-1]]],[29574,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29591,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,1,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,1,-1]]],[29656,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29673,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,1,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,1,-1]]],[29738,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29755,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,1,0,0,0,0,0,0,2],[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,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,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,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,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,1,-1]]],[29820,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29837,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,1,0,0,0,0,0,2],[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,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,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,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,1,-1]]],[29902,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29919,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,1,0,0,0,0,2],[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,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,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,1,-1]]],[29984,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2]]],[30001,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,0,0,0,2],[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,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,1,-1]]],[30066,[[1,1,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,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,-1,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],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,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,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,1,1,0,-1,1,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0]]],[30083,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[30148,[[2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,1,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0]]],[30165,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[30230,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,1,1,1,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2]]],[30247,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,2]]],[30312,[[2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,2,2,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[30329,[[2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[30357,[[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,-1,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],[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,1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,-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,-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,-1,0,0,0,0,0,0,0,0],[1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,-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,-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,-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,-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,-1,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]]]] diff --git a/research/coordinated-crossover-pr200-v2/baseline/frames/verify-bit-frames.py b/research/coordinated-crossover-pr200-v2/baseline/frames/verify-bit-frames.py new file mode 100644 index 0000000000..7093a3b805 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/frames/verify-bit-frames.py @@ -0,0 +1,37 @@ +import sys,json,gzip,hashlib,argparse,types,signal,contextlib,time +from pathlib import Path +from fractions import Fraction +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +ap=argparse.ArgumentParser();ap.add_argument('--package',required=True);ap.add_argument('--frames',required=True);ap.add_argument('--out',required=True);ap.add_argument('--full',action='store_true');a=ap.parse_args();P=Path(a.package).resolve();O=Path(a.out);O.mkdir(parents=True,exist_ok=True) +resource=types.ModuleType('resource');resource.RLIMIT_CPU=0;resource.RUSAGE_SELF=0;resource.setrlimit=lambda *xs:None;resource.getrusage=lambda *xs:types.SimpleNamespace(ru_maxrss=0);sys.modules.setdefault('resource',resource) +if not hasattr(signal,'alarm'):signal.alarm=lambda *xs:None +sys.path.insert(0,str(P/'bit'));sys.path.insert(0,str(P/'arithmetic')) +from word import Candidate +from terminal import prove +from prime_witnesses import certificate as primes +from prove import certify +W=Candidate();C=W.C;B=json.loads(Path(a.frames).read_text());pins={str(p):hashlib.sha256(p.read_bytes()).hexdigest() for p in W.input_paths+[Path(a.frames),P/'selected/bit/sinks.json',P/'bit/word.py',P/'bit/base_word.py',P/'bit/terminal.py',P/'bit/prime_witnesses.py',Path(W.module.__file__)]} +public=W.opframe[:] +for i,rows in B:W.opframe[i]=W.register(rows) +W.changed_frames=[i for i,(x,y) in enumerate(zip(W.original_opframe,W.opframe)) if x!=y];W.endframe={s:W.opframe[xs[-1]] for s,xs in W.role_ops.items()} +W.exact_frames();baseline=W.row();selection=json.loads((P/'selected/bit/sinks.json').read_text()) +print('PASS full exact rational value, geometry and alias checks; changes',len(B),flush=True) +if a.full: + with contextlib.redirect_stdout(sys.stderr):record=prove(W,selection) + record.pop('seconds');record.pop('maxrss');row=record['profile'];prime=primes(W) + (O/'prime-witnesses.json.gz').write_bytes(gzip.compress((json.dumps(prime,sort_keys=True,separators=(',',':'))+'\n').encode(),mtime=0));prime={k:v for k,v in prime.items() if k!='frame_witnesses'} + row['child_histogram']={int(k):v for k,v in row['child_histogram'].items()} + co=certify(row) +else: + # Exact integer terminal ledger follows the original cancellation once complete + # target trajectories and exact all-column replay are admitted by the full mode. + row=baseline;record=None;prime=None;co=None + +def js(x): + if isinstance(x,Fraction):return str(x) + if isinstance(x,dict):return {str(k):js(v) for k,v in x.items()} + if isinstance(x,(tuple,list)):return [js(v) for v in x] + return x +assert pins=={p:hashlib.sha256(Path(p).read_bytes()).hexdigest() for p in pins} +R=js(dict(status='FULL_FINITE_REPLAY_PASS' if a.full else 'EXACT_FRAME_ONLY_NOT_FULL_REPLAY',input_pins=pins,changed_public_ops=len(B),baseline_profile=baseline,profile=row,terminal=record,coarse=co,prime_witnesses=prime,word_scalar_ops_unchanged=True,gauge_endpoint_and_aliases_unchanged=True)) +(O/'verification.json').write_text(json.dumps(R,indent=1)+'\n');print('PASS',R['status'],R['coarse']['coarse_saving'] if co else '',flush=True) \ No newline at end of file diff --git a/research/coordinated-crossover-pr200-v2/baseline/geometry/BANK-PROOF-PR200.md b/research/coordinated-crossover-pr200-v2/baseline/geometry/BANK-PROOF-PR200.md new file mode 100644 index 0000000000..5f4075b8a2 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/geometry/BANK-PROOF-PR200.md @@ -0,0 +1,57 @@ +# Completed entrance banks on the PR200 physical bit word + +2026-10-09. A sufficient finite construction, retaining the upstream all-size interfaces. This is not an unconditional multiplication theorem and is not a new Lean certificate. + +## Exact unchanged input + +PR200 commit `a1175449f34d39ff933d9d8ab23ced1f32b290ec`, package `research/paired-cube-diagonal-bit-168`. Its graph, scalar word, fixed source-pair chronology, physical frame bases, compensated handoffs, terminal sinks and prime witnesses are unchanged. The source includes 18,908 logical auxiliary roles, 1,760 compensated aliases and 34 terminal sinks, leaving 17,114 physical auxiliary chains. There are 2,200 surviving genuine rank-20 entrance gauges. The 1,760 rank-21 recipient gauges are internal splices and receive no separate bank allocation. Deleted terminals are neither gauges nor alias endpoints. The remaining 14,914 physical chains are retained completely. + +The original data channels are 1,760 sources and 1,760 targets. The original complete paid profile is width72, stock20,634, rank mass1,483,712, deficit1,936, with2,200 rank60 exterior children. Source births are not treated as dirty entrance gauges. + +## Universal endpoint and explicit allocation + +Reuse our PR186 completed-core endpoint and paid group routing. For a coordinate projector P and arbitrary incoming addresses x,y over the eligible local ring, the literal map is + +`S_P(x,y) = (x - P*x + P*y, y - P*y + P*x)`. + +On an included coordinate this exchanges x and y; on every other coordinate it preserves both. Thus disjoint coordinate blocks partitioning all72 coordinates compose exactly to the full swap, including arbitrary correlated dirty contents and spectator fields. The reverse block schedule is the literal inverse. This is a ring-general identity; it does not replace the odd-prime address space with F2 just because the payload decoder is binary. + +The established common weighted chart conjugates every block by the same Q_A, so intermediate Q_A^-1 Q_A cancels. For each role, the inherited fixed normalizer sends its true residual projector to its assigned block. Group-indexed routing assigns a role invocation g to bank gH^-1, so each occurrence visits every bank exactly once. Normalizers inside a bank can be made distinct by the inherited finite scalar choice without changing conjugation. Replicas execute serially and stages own different banks. No uninitialized bank or unfinished core is reused. + +Use nine physical replicas of the full unchanged core. In each stage, allocate the9*2,200 selected role-copy occurrences into1,100 banks with18 four-coordinate blocks. Allocate the9*14,914 other occurrences into44,742 banks with three24-coordinate blocks. Both partitions fill every bank exactly; no positive-rank completion child remains. The generator in `pack-pr200.py` maps sorted actual surviving role IDs and replica IDs to explicit bank/block numbers and hashes every assignment. It checks all462,078 role-copy uses across three stages exactly once. Nine replicas are physical, whereas factor three merely clears the rational moment stock. + +There are45,842 banks per stage,137,526 across all stages, and31,680 data registers in nine replicas. The literal persistent stock is169,206, exactly9*(56,402/3). + +## Fully charged child inventory and exact price + +Retain every internal, source, target, center, compensating and terminal-substitution child. Remove exactly the2,200 rank60 exterior children from the original per-vertex histogram. No other child count changes. Then + +`W = 2*1760 + 3*(2200/18 +14914/3) =56402/3`, + +`rank =1483712 -2200*60 =1351712`, + +`72*W -rank =1936`. + +The largest retained child is22. On the integer normalization used by the moment verifier, stock is56,402, rank mass4,055,136, deficit5,808, and every child count is multiplied by three. This normalization removes6,600 rank60 exteriors, corresponding to the2,200 per-vertex children above; it must not be confused with the nine-replica literal realization. + +The original worst-case bad fraction10^-16 and fallback32*72^2 per actual retained child are charged. Independent outward interval calculations based on4/3 and2 certify + +`a0=683528191056257/10^18`. + +They reject the adjacent coarse grid point for this fixed profile and worst-case envelope. The established atom wrapper uses a_old=384599/10^10 and the first10^-24 atom above a0/(1+a0-a_old), giving the paid ordinary saving + +`A_B=170771888233960718836822306974273386891/(250*10^39)` + +`A_B≈0.0006830875529358429`. + +Both strict adapter/borrowed-row tolls remain charged. The parent must compose this bit saving with an admitted complex supplier, its full scalar/group/router/layout bills and the unchanged47-constraint balanced body. Component gains are never added. No final kappa is claimed in this lane until that assembly runs. + +## Other crossover ideas actually assessed + +The current new word still has exactly the4/24 residual families and both tile72 exactly. The rational heterogeneous configuration theorem instantiates the same volume-filling construction; there is no new LP improvement to add. It is ready for future genuinely different residual types. The optional nonorthogonal parity cover cannot be substituted into this odd-prime address model. Even in its proper binary-address model, its overlapping local cores must stay charged. The Parseval phase identity similarly repairs a binary Gaussian endpoint, but no unchanged PR200 local child is a new arbitrary Gram-resolving coding core. These identities are retained as design tools and are not hidden supplier oracles. + +## Verification and retained scope + +`python -B geometry/pack-pr200.py --full` executes the immutable PR200 bit admission, its exact rational frame/source/gauge/partner chronology, all original and terminal-modified F2 and defining integer columns, adverse controls and all24,401 frame prime witnesses. It then checks literal bank coordinate columns, inverse columns, omitted/duplicate blocks, exact assignments and both rational moment engines. On Windows the owned wrapper supplies only the removed ru_maxrss diagnostic when POSIX resource is unavailable; no mathematical checker changes. + +General Clifford/tensor realization, uniform weighted local-ring compilation, common chart selection, restored rows, paid routing/layout, prime supply, precision/recovery and all-size analytic transfer remain the original stated conditions. This construction changes a finite word's dirty-bank allocation under those same conditions. Credit PR186's original bank proof, Chafik Boukhalfa's PR200 physical word, eumemic's PR168 lineage, James Chang's terminal substitution, and every retained upstream attribution. \ No newline at end of file diff --git a/research/coordinated-crossover-pr200-v2/baseline/geometry/audit-gauge-charts.py b/research/coordinated-crossover-pr200-v2/baseline/geometry/audit-gauge-charts.py new file mode 100644 index 0000000000..d0b050bc99 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/geometry/audit-gauge-charts.py @@ -0,0 +1,51 @@ +"""Reuse PR197's exact gauge chart factors on unchanged PR200 entrances. +Checks both inverse matrix identities, literal elementary factor replay, +all factor/unit denominators, and a conservative fully charged routing bound. +""" +from pathlib import Path +from collections import Counter +from fractions import Fraction as Q +from math import gcd +import sys,json,hashlib,importlib.util +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +spec=importlib.util.spec_from_file_location('own_bank',HERE/'pack-pr200.py');G=importlib.util.module_from_spec(spec);spec.loader.exec_module(G) +packing=HERE/'retained-packing.py' +sp=importlib.util.spec_from_file_location('retained_exact_chart_factorizer',packing);P=importlib.util.module_from_spec(sp);sp.loader.exec_module(P) +word=G.proof.Candidate();C=word.C +selected={s:z for s,z in word.gauge.items() if s not in word.donor};inventory=Counter(z['frame'] for z in selected.values()) +G.need(len(selected)==2200 and len(inventory)==220,'actual unchanged220gauge frames') +records=[];maxops=maxnum=maxden=maxC=maxB=0 +for f,count in sorted(inventory.items()): + A=C.A[f];sigma=C.B[f];G.need(len(A)==4 and len(sigma)==20,'actual rank4 residual') + residual=[] + for a in A: + r=[15*x-sum(a) for x in a];d0=gcd(*r);residual.append([x//d0 for x in r]) + G.need(all(9*sum(x*y for x,y in zip(a,b))-sum(a)*sum(b)==0 for a in residual for b in sigma),'literal Gorthogonal residual basis') + B=list(map(list,zip(*(residual+sigma))));inv,d,ops=P.inverse_integer(B) + for left,right in [(B,inv),(inv,B)]: + G.need(all(sum(x*y for x,y in zip(row,col))==d*int(i==j) for i,row in enumerate(left) for j,col in enumerate(zip(*right))),'two exact inverse identities') + replay=[list(map(Q,r)) for r in B] + for op,i,j,n,den in ops: + if op=='swap':replay[i],replay[j]=replay[j],replay[i] + elif op=='scale':replay[i]=[Q(n,den)*x for x in replay[i]] + else: + G.need(op=='add','retained elementary factor type');replay[i]=[x+Q(n,den)*y for x,y in zip(replay[i],replay[j])] + G.need(all(x==int(i==j) for i,row in enumerate(replay) for j,x in enumerate(row)),'independent factor replay') + maxops=max(maxops,len(ops));maxnum=max(maxnum,max(abs(o[3]) for o in ops));maxden=max(maxden,d,max(o[4] for o in ops));maxC=max(maxC,max(abs(x) for r in inv for x in r));maxB=max(maxB,max(abs(x) for r in B for x in r)) + records.append(dict(frame=f,count=count,basis=B,inverse_numerators=inv,inverse_denominator=d,factors=ops)) +G.need(max(maxnum,maxden,maxC,maxB,18)<2**80,'all literal inverse and chart units below inherited prime bound') +# t in1..18 supplies18 distinct fixed scalar choices per selected bank. At most +# one scalar per earlier normalizer is forbidden; conjugation stays unchanged. +# Rational distinctness survives q>2^80 by this bound on cleared differences. +cleared_difference_bound=2*18*max(maxC,1)*max(maxden,1) +G.need(cleared_difference_bound<2**80,'distinct normalizers remain distinct modulo every allowed prime') +factor_bound=maxops+71+72 +physicalstock=169206;physicalchains=17114;full_core_stage_occurrences=27 +calls=2*full_core_stage_occurrences*((physicalstock-1)+physicalchains*72*factor_bound) +G.need(calls<2**40,'fully literal replicated extra selector bound') +raw=json.dumps(records,sort_keys=True,separators=(',',':')).encode() +import gzip +(HERE/'pr200-gauge-charts.json.gz').write_bytes(gzip.compress(raw,mtime=0)) +out=dict(status='PASS_ALL_ACTUAL_GAUGE_CHARTS_AND_ROUTING_BILL',source_pin='a1175449f34d39ff933d9d8ab23ced1f32b290ec',retained_factorizer_sha256=hashlib.sha256(packing.read_bytes()).hexdigest(),gauges=2200,distinct_gauge_frames=220,max_chart_factors=maxops,max_factor_numerator=maxnum,max_denominator_or_inverse_denominator=maxden,max_inverse_numerator=maxC,max_basis_numerator=maxB,chart_witness_sha256=hashlib.sha256((HERE/'pr200-gauge-charts.json.gz').read_bytes()).hexdigest(),greedy_distinct_scalars=list(range(1,19)),cleared_normalizer_difference_bound=cleared_difference_bound,permutation_transpositions_bound=71,extra_distinct_scalar_coordinate_scales_bound=72,combined_chart_factor_bound=factor_bound,nine_full_replicas=True,total_stage_core_occurrences=27,literal_persistent_stock=physicalstock,conservative_extra_selector_calls=calls,selector_calls_below_2pow40=True,prime_guard='Every nonzero factor/inverse denominator and fixed scalar is smaller than2^80; all actual changes are invertible for every inherited primeq>2^80. Distinct normalizers remain distinct by cleared entry bounds.',routing_payment='These finite extra calls use inherited completed old ordinary selector; they are O(K V w^(1-a_old)), absorbed by strict finite-leaf atom/row toll as in PR197 PROOF5. No extra positive-rank children and no new external row reserve.',scope='Exact finite address chart, inverse, unit and replicated routing bill on same220gauge frames; allsize weighted/restored selector guarantee stays inherited.') +(HERE/'PR200-GAUGE-CHART-AUDIT.json').write_text(json.dumps(out,indent=2,sort_keys=True));print(json.dumps(out,indent=2)) \ No newline at end of file diff --git a/research/coordinated-crossover-pr200-v2/baseline/geometry/base_two_moment.py b/research/coordinated-crossover-pr200-v2/baseline/geometry/base_two_moment.py new file mode 100644 index 0000000000..14a90fa0e7 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/geometry/base_two_moment.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +"""Maintainer arithmetic cross-check of the pinned PR39 certificate. + +Uses no producer/checker imports. Counts are inputs, not proved by this script. +80-term rational logarithms and 12-term exponentials independently enclose +the two moments. The accompanying written review addresses their realization. +""" +import argparse +from fractions import Fraction as Q +from hashlib import sha256 +import json +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +GRID = 10**30 + + +def require(condition, message): + if not condition: + raise ValueError(message) + + +def log_unit(x): + require(1 <= x <= 2, "logarithm range") + z = (x-1)/(x+1) + lo = 2*sum((z**(2*j+1)/(2*j+1) for j in range(80)), Q(0)) + return lo, lo+2*z**161/(161*(1-z*z)) + + +def log_bounds(x): + k = 0 + while x > 2: + x /= 2 + k += 1 + lo, hi = log_unit(x) + l2, u2 = log_unit(Q(2)) + lo, hi = lo+k*l2, hi+k*u2 + # Outward rational rounding keeps later certificates compact. + return Q((lo*GRID).__floor__(), GRID), Q((hi*GRID).__ceil__(), GRID) + + +def exp_bounds(x): + require(0 <= x < 1, "exponential range") + term = total = Q(1) + for j in range(1, 13): + term *= x/j + total += term + tail = term*x/13/(1-x/14) + return total, total+tail + + +def moment(m, W, entries, saving): + lo = hi = Q(0) + for t, count in entries: + t, count = int(t), int(count) + require(0 < t < m and count > 0, "improper child") + l, u = log_bounds(Q(m, t)) + lower = exp_bounds(saving*l)[0] + upper = exp_bounds(saving*u)[1] + lo += Q(t*count, m*W)*lower + hi += Q(t*count, m*W)*upper + return Q((lo*GRID).__floor__(), GRID), Q((hi*GRID).__ceil__(), GRID) + diff --git a/research/coordinated-crossover-pr200-v2/baseline/geometry/check-normalizer-routing.py b/research/coordinated-crossover-pr200-v2/baseline/geometry/check-normalizer-routing.py new file mode 100644 index 0000000000..2bbe2d3bcc --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/geometry/check-normalizer-routing.py @@ -0,0 +1,23 @@ +"""Literal fixed scalars distinguish all same-invocation bank normalizers. +No greedy unknown chart is assumed: H_b=(b+1)*Pi_b*diag(B^-1,I_48). +All gauges share the same unchanged24coordinate stage; outside-coordinate +unit columns distinguish H_b for b=0..17 at every primeq>2^80. +""" +from pathlib import Path +import json +H=Path(__file__).resolve().parent;records=[] +for stage in range(3): + local=set(range(24*stage,24*(stage+1)));j=next(i for i in range(72) if i not in local) + for width,blocks in [(4,18),(24,3)]: + original=list(range(24*stage,24*stage+width));witness=[] + for block in range(blocks): + desired=list(range(block*width,(block+1)*width));src=original+[i for i in range(72) if i not in original];dst=desired+[i for i in range(72) if i not in desired] + pi=dict(zip(src,dst));assert set(pi)==set(pi.values())==set(range(72)) + assert [pi[k] for k in original]==desired + # Embedded B^-1 fixes e_j exactly, so H_b e_j is this literal unit column. + witness.append(dict(block=block,scalar=block+1,unit_column=j,result_row=pi[j],result_coefficient=block+1)) + for a,left in enumerate(witness): + for right in witness[a+1:]:assert (left['result_row'],left['result_coefficient'])!=(right['result_row'],right['result_coefficient']) + records.append(dict(stage=stage,width=width,blocks=blocks,outside_stage_column=j,witnesses=witness)) +out=dict(status='PASS_LITERAL_DISTINCT_NORMALIZERS',records=records,prime_guard='All1..18 are different nonzero units at every primeq>2^80, and remain units/distinct in Z/q^w. Each normalizer scales a literal outside-stage unit column differently. Scaling doesnotchange projectorconjugation.',per_role_scalar_coordinate_factors=72,already_charged_in_chart_bound329=True,no_same_invocation_bank_alias=True) +(H/'LITERAL-NORMALIZER-ROUTING.json').write_text(json.dumps(out,indent=2,sort_keys=True));print(out['status']) \ No newline at end of file diff --git a/research/coordinated-crossover-pr200-v2/baseline/geometry/pack-admitted-frames.py b/research/coordinated-crossover-pr200-v2/baseline/geometry/pack-admitted-frames.py new file mode 100644 index 0000000000..c4e8ffe01f --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/geometry/pack-admitted-frames.py @@ -0,0 +1,38 @@ +"""Compose admitted frame-only changes with concrete stage-private entrance banks. +Reconstructs every modified frame/physical paid chain, audits all actual prime +witnesses, and independently recomputes two exact paid bank moment engines. +The referenced frame receipt provides the full dirty-column terminal replay. +""" +from pathlib import Path +from fractions import Fraction as Q +from collections import Counter +import sys,json,gzip,hashlib,argparse,importlib.util +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +spec=importlib.util.spec_from_file_location('geometry_bank_pr200',HERE/'pack-pr200.py');G=importlib.util.module_from_spec(spec);spec.loader.exec_module(G) +need=G.need +ap=argparse.ArgumentParser();ap.add_argument('--candidate',required=True);a=ap.parse_args() +D=Path(a.candidate);record=json.loads((D/'checked/verification.json').read_text());frames=D/'opframe-bases.json';primefile=D/'checked/prime-witnesses.json.gz' +need(record['status']=='FULL_FINITE_REPLAY_PASS','complete independent frame dirty-word admission') +for path,want in record['input_pins'].items():need(hashlib.sha256(Path(path).read_bytes()).hexdigest()==want,'actual immutable input pin '+path) +need(record['word_scalar_ops_unchanged'] and record['gauge_endpoint_and_aliases_unchanged'],'unchanged whole-word endpoint classes') +word=G.proof.Candidate();before={k:word.w[k] for k in ['gauges','pairs','rootroles','root_frame','source_frame','sources','reads']};changes=json.loads(frames.read_text()) +for index,B in changes:word.opframe[index]=word.register(B) +word.changed_frames=[i for i,(x,y) in enumerate(zip(word.original_opframe,word.opframe)) if x!=y];word.endframe={s:word.opframe[xs[-1]] for s,xs in word.role_ops.items()} +word.exact_frames();row=word.row() +need(G.encode(row)==record['baseline_profile'],'independent complete modified physical baseline ledger') +need(before=={k:word.w[k] for k in before},'bank source/gauge/endpoints truly unchanged') +need(Counter({int(k):v for k,v in record['terminal']['child_delta'].items()})==Counter({3:-102,21:-102}),'paid34terminal child substitution unchanged') +H={int(k):v for k,v in row['child_histogram'].items()};H[3]-=102;H[21]-=102 +need(H=={int(k):v for k,v in record['profile']['child_histogram'].items()},'independent terminal-paid complete histogram') +prime=G.raw_prime_certificate(word);need(prime==json.loads(gzip.decompress(primefile.read_bytes())),'independent allused modifiedframe prime witness audit') +packed=G.packed(record['profile'],word.w);coarse=G.proof.certify(packed['scaled_moment_profile']) +from base_two_moment import moment as alternate +q=packed['scaled_moment_profile'];hist=list(q['child_histogram'].items());W=q['W_per_vertex'];a0=coarse['coarse_saving'];fallback=32*72**2*sum(n for r,n in hist) +_,upper=alternate(72,W,hist,a0);_,bad=alternate(72,W,[(1,fallback)],a0);need(upper+Q(1,10**16)*bad<1,'independent paid moment accepted') +lower,_=alternate(72,W,hist,a0+Q(1,10**18));badlower,_=alternate(72,W,[(1,fallback)],a0+Q(1,10**18));need(lower+Q(1,10**16)*badlower>1,'independent adjacent paid moment rejected') +allocation=G.literal_allocation(word.w);endpoints=G.endpoint_checks() +for path,want in record['input_pins'].items():need(hashlib.sha256(Path(path).read_bytes()).hexdigest()==want,'inputs remain identical') +out=dict(status='PASS_ADMITTED_FRAME_BANK_COMPOSITION',frame_receipt_sha256=hashlib.sha256((D/'checked/verification.json').read_bytes()).hexdigest(),opframe_override_sha256=hashlib.sha256(frames.read_bytes()).hexdigest(),opframe_changes=len(changes),profile=packed,coarse=coarse,literal_allocation=allocation,endpoints=endpoints,prime_witness_sha256=hashlib.sha256(primefile.read_bytes()).hexdigest(),all_used_frame_prime_audit={k:v for k,v in prime.items() if k!='frame_witnesses'},whole_word_receipt=record['status'],unchanged_entrance_alias_and_terminal_classes=True,scope='Sufficient finite dirty-bank composition of independently admitted full frame word. Original allsize supplier interfaces retained; parent owns finalbalanced assembly.') +name='packed-'+D.name+'.json';(HERE/name).write_text(json.dumps(G.encode(out),indent=2,sort_keys=True)) +print(json.dumps(G.encode(dict(status=out['status'],output=str(HERE/name),changed_ops=len(changes),stock=packed['W_per_vertex'],rank=packed['rank_per_vertex'],coarse=coarse['coarse_saving'],ordinary=coarse['ordinary_saving'],ordinary_float=float(coarse['ordinary_saving']),frames=prime['total_used_frames'])),indent=2)) \ No newline at end of file diff --git a/research/coordinated-crossover-pr200-v2/baseline/geometry/pack-pr200.py b/research/coordinated-crossover-pr200-v2/baseline/geometry/pack-pr200.py new file mode 100644 index 0000000000..1407b17750 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/geometry/pack-pr200.py @@ -0,0 +1,121 @@ +"""Apply established completed entrance banks to the immutable PR200 physical word. +Light mode is candidate pricing, never complete word admission. --full replays all +source/target/dirty columns and exact frame/prime/terminal checks through PR200. +""" +from pathlib import Path +from fractions import Fraction as Q +from collections import Counter +import json,sys,importlib.util,hashlib,contextlib,types +# Windows shim supplies only the removed resource diagnostic, never proof data. +try: import resource +except ImportError: + resource=types.ModuleType("resource");resource.RUSAGE_SELF=0 + resource.getrusage=lambda _:types.SimpleNamespace(ru_maxrss=0) + sys.modules["resource"]=resource +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +PKG=HERE.parents[2]/'research/paired-cube-diagonal-bit-168' +sys.path.insert(0,str(PKG/'bit'));sys.path.insert(0,str(PKG/'arithmetic')) +spec=importlib.util.spec_from_file_location('pr200_paid_proof',PKG/'bit/prove.py') +proof=importlib.util.module_from_spec(spec);spec.loader.exec_module(proof) +# Match Linux provenance spelling only; determinants and factor identities untouched. +raw_prime_certificate=proof.prime_certificate +def portable_prime_certificate(word): + record=raw_prime_certificate(word) + record['input_sha256']={k.replace(chr(92),'/'):v for k,v in record['input_sha256'].items()} + return record +proof.prime_certificate=portable_prime_certificate +def need(ok,why): + if not ok:raise ValueError(why) +def encode(z): + if isinstance(z,Q):return str(z) + if isinstance(z,dict):return {str(k):encode(v) for k,v in z.items()} + if isinstance(z,(tuple,list)):return [encode(v) for v in z] + return z + +def endpoint_checks(): + records=[] + for width,copies in [(4,18),(24,3)]: + for ring in [0,2,3,5]: + def run(column,blocks): + x=[int(j==column) for j in range(72)];y=[int(72+j==column) for j in range(72)] + for block in blocks: + for j in range(block*width,(block+1)*width):x[j],y[j]=y[j],x[j] + return x+y + for column in range(144): + want=[int(j==(column+72)%144) for j in range(144)] + need(run(column,range(copies))==want,'all dirty address columns full swap') + need(run(column,list(range(copies))+list(reversed(range(copies))))==[int(j==column) for j in range(144)],'all inverse columns') + for blocks in [list(range(copies-1)),list(range(copies))+[copies-1]]: + need(run(72-width,blocks)!=[int(j==144-width) for j in range(144)],'adverse omitted/duplicate block') + records.append(dict(width=width,blocks=copies,address_ring=ring,forward_columns=144,inverse_columns=144,negative_controls=2)) + return records + +def literal_allocation(word_data): + pairs=word_data['pairs'];donor={b:a for a,b in pairs} + selected=sorted(z['role'] for z in word_data['gauges'] if z['role'] not in donor) + sinks=json.loads((PKG/'selected/bit/sinks.json').read_text()) + removed={word_data['rootroles'][e['root']] for e in sinks} + need(len(removed)==34 and not removed.intersection(selected),'terminal roles excluded from selected entrance banks') + need(not set(selected).intersection(word_data['sources'].values()),'source births are not entrance gauges') + allroles={donor.get(s,s) for s in range(18908)}-removed + rest=sorted(allroles-set(selected)) + need(len(allroles)==17114 and len(selected)==2200 and len(rest)==14914,'every actual retained physical chain exactly once') + records=[] + for stage in range(3): + totalbanks=0;assigned=set();digest=hashlib.sha256() + for family,(roles,width,blocks) in enumerate([(selected,4,18),(rest,24,3)]): + occurrences=[(replica,role) for replica in range(9) for role in roles] + need(len(occurrences)%blocks==0,'exact full banks, no omitted residual child') + for offset in range(0,len(occurrences),blocks): + group=occurrences[offset:offset+blocks] + need(len(group)==blocks and blocks*width==72,'each literal bank fills 72 coordinates') + for block,label in enumerate(group): + need(label not in assigned,'each role-copy receives one bank slot per stage');assigned.add(label) + digest.update(f'{stage}:{family}:{offset//blocks}:{block}:{label[0]}:{label[1]}\n'.encode()) + totalbanks+=len(occurrences)//blocks + need(len(assigned)==9*17114 and totalbanks==45842,'complete stage-private physical stock') + records.append(dict(stage=stage,assigned_role_copies=len(assigned),selected_banks=1100,undeferred_banks=44742,total_banks=totalbanks,allocation_sha256=digest.hexdigest())) + return dict(stages=records,data_registers=2*9*1760,total_persistent_registers=3*45842+2*9*1760,arbitrary_dirty_contents=True,normalization='Common ancestor weighted chart; literal disjoint coordinate partialSwap blocks; role normalizers chosen distinctly inside each bank by inherited fixed conjugation/routing construction.') + +def packed(row,word_data): + pairs=word_data['pairs'];recipients={b for a,b in pairs};gauges=word_data['gauges'] + starts={z['role']:z['dim'] for z in gauges if z['role'] not in recipients} + need(Counter(starts.values())=={20:2200},'genuine surviving entrance gauges') + need(not set(starts).intersection(word_data['sources'].values()),'source births are not bank entrance gauges') + touched={s for i in word_data['phase1'] for s in word_data['ops'][i][:2]} + need(not set(starts).intersection(touched),'entrance gauges untouched throughout centre phase') + need(Counter(z['dim'] for z in gauges if z['role'] in recipients)=={21:1760},'spliced recipients not bank roles') + need(row['R']==17114 and row['terminal_sinks']==34,'retained exact physical terminals') + rest=row['R']-len(starts) + H={int(k):v for k,v in row['child_histogram'].items()};need(H.pop(60)==2200,'remove exactly actual entrance exteriors') + W=Q(2*row['v'])+3*(Q(len(starts),18)+Q(rest,3)) + mass=sum(k*v for k,v in H.items());need(72*W-mass==1936,'full telescoping deficit') + t=9 + need(t*2200%18==0 and t*rest%3==0,'integral stage-private configuration') + scaled=dict(row,W_per_vertex=int(3*W),rank_per_vertex=3*mass,deficit_per_vertex=3*1936,maxchild=max(H),child_histogram={k:3*v for k,v in H.items()}) + return dict(m=72,W_per_vertex=W,rank_per_vertex=mass,deficit_per_vertex=1936,maxchild=max(H),child_histogram=H,selected_entrances=2200,undeferred_physical_chains=rest,physical_replicas=t,selected_banks_per_stage=t*2200//18,undeferred_banks_per_stage=t*rest//3,scaled_moment_profile=scaled) + +def main(): + import gzip + cert=json.loads((PKG/'certificate.json').read_text());row=cert['bit']['profile'] + data=json.loads(gzip.decompress((PKG/'selected/bit/word_p12.json.gz').read_bytes())) + full='--full' in sys.argv + if full: + import io + sink=io.StringIO() + with contextlib.redirect_stdout(sink):proof.main() + actual=json.loads(sink.getvalue());need(actual==cert['bit'],'complete word admission reproduces frozen bit certificate') + row=actual['profile'] + p=packed(row,data) + coarse=proof.certify(p['scaled_moment_profile']) + from base_two_moment import moment as alternate_moment + q=p['scaled_moment_profile'];H=list(q['child_histogram'].items());a=coarse['coarse_saving'];W=q['W_per_vertex'];edgecount=sum(n for r,n in H) + _,upper=alternate_moment(72,W,H,a);_,bad=alternate_moment(72,W,[(1,32*72**2*edgecount)],a) + need(upper+Q(1,10**16)*bad<1,'independent base-two paid acceptance') + lower,_=alternate_moment(72,W,H,a+Q(1,10**18));badlow,_=alternate_moment(72,W,[(1,32*72**2*edgecount)],a+Q(1,10**18)) + need(lower+Q(1,10**16)*badlow>1,'independent adjacent paid exclusion') + out=dict(status='PASS_FULL_BIT_ADMISSION' if full else 'PRICED_CANDIDATE_NOT_ADMITTED',base_pin='a1175449f34d39ff933d9d8ab23ced1f32b290ec',base_certificate_sha256=hashlib.sha256((PKG/'certificate.json').read_bytes()).hexdigest(),profile=p,coarse=coarse,endpoints=endpoint_checks(),literal_allocation=literal_allocation(data),universal_proof='Established ring-general disjoint partialSwap endpoint, arbitrary dirty contents, nine physical replicas, same weighted chart and charged routing. No source-birth bank gauge or characteristic-two odd-field substitution.',scope='Bit endpoint, complete paid child profile and exact moments only. Full root balanced assembly remains primary-owned.') + (HERE/('packed-pr200-full.json' if full else 'packed-pr200-priced.json')).write_text(json.dumps(encode(out),sort_keys=True,indent=2)) + print(json.dumps(encode(dict(status=out['status'],W=p['W_per_vertex'],rank=p['rank_per_vertex'],coarse=coarse['coarse_saving'],effective=coarse['ordinary_saving'],effective_float=float(coarse['ordinary_saving']),selected=2200,rest=p['undeferred_physical_chains'])),indent=2)) +if __name__=='__main__':main() \ No newline at end of file diff --git a/research/coordinated-crossover-pr200-v2/baseline/geometry/retained-packing.py b/research/coordinated-crossover-pr200-v2/baseline/geometry/retained-packing.py new file mode 100644 index 0000000000..b7e31dc08a --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/geometry/retained-packing.py @@ -0,0 +1,186 @@ +"""Exact gauge charts and completed-residual bank allocation. + +Apache-2.0. Prepared with substantial OpenAI Codex assistance. +""" +from array import array +from collections import Counter +from fractions import Fraction as Q +from math import gcd +from pathlib import Path +import hashlib,json,sys + +def inverse_integer(a): + """Fraction-free Gauss-Jordan; return integral C,d with a C = d I.""" + n=len(a) + m=[list(row)+[int(i==j) for j in range(n)] for i,row in enumerate(a)] + previous=1 + factors=[] + for k in range(n): + pivot=next((i for i in range(k,n) if m[i][k]),None) + if pivot is None: + raise ValueError('Singular basis') + m[k],m[pivot]=m[pivot],m[k] + if pivot != k:factors.append(('swap',k,pivot,1,1)) + p=m[k][k] + if p != previous: + ratio=Q(previous,p) + factors.append(('scale',k,k,ratio.numerator,ratio.denominator)) + for i in range(n): + if i==k:continue + u=m[i][k] + if u: + ratio=Q(-u,previous) + factors.append(('add',i,k,ratio.numerator,ratio.denominator)) + for j in range(2*n): + if j==k:continue + value=p*m[i][j]-u*m[k][j] + assert value % previous==0 + m[i][j]=value//previous + m[i][k]=0 + previous=p + d=m[0][0] + assert d and all(m[i][j]==d*int(i==j) for i in range(n) for j in range(n)) + c=[row[n:] for row in m] + common=abs(d) + for row in c: + for x in row:common=gcd(common,x) + d//=common + c=[[x//common for x in row] for row in c] + if d<0:d=-d;c=[[-x for x in row] for row in c] + return c,d,factors + +def color_incidence(left,right,nleft,nright,colors): + """Incremental two-color swaps; parallel edges are identified separately.""" + assert len(left)==len(right) + full=(1<22 for r in H) + W=2*w['v']*copies+bank;mass=sum(r*n for r,n in H.items()) + assert 72*W-mass==copies*receipt['deficit_per_vertex']==5808 + K=18*((W-1)+len(physical)*72*(maxops+71)) + record=dict(status='PASS exact actual-chain chart and incidence checks',source_commit='201737a1ec4f936e166e2481fb9e88104cb2ccc7', + word_sha256=receipt['word_sha256'],physical_roles=len(physical),interior_splices=len(recipients),gauge_roles=len(selected), + distinct_gauges=len(inventory),copies=copies,banks=bank,patterns=[dict(rank4=6,rank24=2,count=small),dict(rank4=0,rank24=3,count=large)], + incidences=len(left),W=W,m=72,rank_mass=mass,deficit=5808,maxchild=max(H),child_histogram=dict(sorted(H.items())), + chart_sha256=digest.hexdigest(),incidence_sha256=incidence.hexdigest(),max_chart_factors=maxops,max_num=maxnum,max_den=maxden, + conservative_selector_calls=K,color_stats=stats,conflicting_assignment_rejected=rejected) + + return record diff --git a/research/coordinated-crossover-pr200-v2/baseline/requirements.txt b/research/coordinated-crossover-pr200-v2/baseline/requirements.txt new file mode 100644 index 0000000000..784141bdc2 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/requirements.txt @@ -0,0 +1,2 @@ +numpy==2.3.5 +scipy==1.17.0 diff --git a/research/coordinated-crossover-pr200-v2/baseline/verify.py b/research/coordinated-crossover-pr200-v2/baseline/verify.py new file mode 100644 index 0000000000..56885a8401 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/verify.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +"""Offline finite certificate replay. Python3.11+, numpy2.3.5, scipy1.17.0.""" +from pathlib import Path +import argparse,hashlib,json,io,zipfile,tempfile,subprocess,shutil,sys +HERE=Path(__file__).resolve().parent +sys.dont_write_bytecode=True +if hasattr(sys,'set_int_max_str_digits'):sys.set_int_max_str_digits(0) +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +def pins(): + m=json.loads((HERE/'FILES.json').read_text())['files'];actual={p.relative_to(HERE).as_posix():sha(p) for p in HERE.rglob('*') if p.is_file() and p.name!='FILES.json'};assert actual==m,'Missing, changed, or unpinned upload file';return actual +assert not sys.flags.optimize +ap=argparse.ArgumentParser(description=__doc__);ap.add_argument('--temp-root',type=Path,help='Optional spacious scratch drive for extraction');args=ap.parse_args();before=pins();baseline=json.loads((HERE/'BASELINE.json').read_text());parts=[] +for entry in baseline['parts']: + p=HERE/entry['file'];assert p.stat().st_size==entry['bytes'] and sha(p)==entry['sha256'];parts.append(p.read_bytes()) +blob=b''.join(parts);assert hashlib.sha256(blob).hexdigest()==baseline['archive_sha256'] +with tempfile.TemporaryDirectory(prefix='crossover-pr200-',dir=args.temp_root) as tmp: + root=Path(tmp)/'source';root.mkdir() + with zipfile.ZipFile(io.BytesIO(blob)) as z: + for entry in z.infolist():assert (root/entry.filename).resolve().is_relative_to(root.resolve()),'Unsafe archive entry' + z.extractall(root) + package=root/'research/coordinated-crossover-pr200';package.mkdir() + skip={x['file'] for x in baseline['parts']} + for p in HERE.rglob('*'): + if p.is_file() and p.name not in skip: + target=package/p.relative_to(HERE);target.parent.mkdir(parents=True,exist_ok=True);shutil.copyfile(p,target) + result=subprocess.run([sys.executable,'-B',str(package/'verify_inner.py')],text=True) + assert result.returncode==0,'Full finite replay failed' +assert pins()==before,'Upload files changed during replay' +print('PASS immutable manual-upload package; no network, git, or publication required') \ No newline at end of file diff --git a/research/coordinated-crossover-pr200-v2/baseline/verify_inner.py b/research/coordinated-crossover-pr200-v2/baseline/verify_inner.py new file mode 100644 index 0000000000..ce3a8630e1 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/baseline/verify_inner.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 +"""Full finite replay; all-size compiler/selector and analytic conditions are inherited.""" +from pathlib import Path +import subprocess,sys,json,importlib.util,hashlib,gzip +from fractions import Fraction as Q +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent;ROOT=HERE.parents[1];SA=ROOT/'research/source-assisted';CP=ROOT/'research/source-assisted-v4';WORK=CP/'.work' +def run(*args): + r=subprocess.run([sys.executable,'-B',*map(str,args)],cwd=ROOT,capture_output=True,text=True) + if r.returncode:raise RuntimeError('Replay rejected: '+str(args)+'\n'+r.stdout[-6000:]+'\n'+r.stderr[-6000:]) + print(r.stdout[-2000:],end='',flush=True) +def load(n,p): + s=importlib.util.spec_from_file_location(n,p);m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +def read(p):return json.loads(p.read_text()) +assert not sys.flags.optimize +before={p.relative_to(ROOT).as_posix():hashlib.sha256(p.read_bytes()).hexdigest() for p in [ROOT/'scripts/paired_cube_assembly.py',SA/'decision/exact_complex_flow_lift.py',CP/'contract_v4.py']} +# Every source, target and dirty-register formal column, exact frames and all primes. +run(HERE/'frames/verify-bit-frames.py','--package',ROOT/'research/paired-cube-diagonal-bit-168','--frames',HERE/'frames/opframe-bases.json','--out',HERE/'frames/checked','--full') +run(HERE/'geometry/pack-admitted-frames.py','--candidate',HERE/'frames') +run(HERE/'geometry/audit-gauge-charts.py');run(HERE/'geometry/check-normalizer-routing.py') +# The portable witness is checked again; original numerical search need not be repeated. +run(SA/'decision/exact_complex_flow_lift.py','--witness',WORK/'flow.witness.json','--profile',WORK/'flow.json','--out',WORK/'lift.json') +lift=read(WORK/'lift.json');expected=read(CP/'certificate.json');assert lift['exact_scalar_program_sha256']==expected['lift']['exact_scalar_program_sha256'] +for key,name in [('certificate_path','lift.certificate.json.gz'),('witness_path','flow.witness.json')]:lift[key]=(WORK/name).relative_to(ROOT).as_posix() +lift['checker_path']=(SA/'decision/exact_complex_flow_lift.py').relative_to(ROOT).as_posix() +(WORK/'lift.json').write_text(json.dumps(lift,indent=2)+'\n',newline='\n') +run(CP/'contract_v4.py','--tree',WORK/'aligned','--cache',WORK/'aligned/cache','--witness',WORK/'flow.witness.json','--flow-profile',WORK/'flow.json','--lift-profile',WORK/'lift.json','--out',HERE/'complex-profile-replayed.json') +actual=read(HERE/'complex-profile-replayed.json') +for key in ['m','W_per_vertex','rank_per_vertex','deficit_per_vertex','child_histogram','contract_checks','exact_scalar_program_sha256']: + assert actual[key]==expected['complex_profile'][key],('Complex mathematical output changed',key) +# Paid two-supplier moments, three finite leaf levels, and unchanged 47 constraints. +run(HERE/'arithmetic.py');assert read(HERE/'assembly.json')==read(HERE/'certificate.json'),'Derived final certificate differs' +cert=read(HERE/'assembly.json');assert all(Q(x)>0 for x in cert['assembly']['strict_constraints'].values());assert len(cert['assembly']['strict_constraints'])==47 +# Independent base-two enclosure, no imports from the public moment implementation. +im=load('independent_base_two',HERE/'geometry/base_two_moment.py') +for side in ['bit','complex']: + row=cert[side+'_profile'];a=Q(cert[side]['saving']);hist=[(int(t),n) for t,n in row['child_multiplicities'].items()] + lo,hi=im.moment(row['m'],row['W'],hist,a);nl,nu=im.moment(row['m'],row['W'],hist,a+Q(1,10**18)) + if side=='bit': + fallback=[(1,32*row['m']**2*sum(n for _,n in hist))];bl,bu=im.moment(row['m'],row['W'],fallback,a);bnl,bnu=im.moment(row['m'],row['W'],fallback,a+Q(1,10**18));hi+=Q(1,10**16)*bu;nl+=Q(1,10**16)*bnl + assert hi<1 +#include "json.hpp" +#include +#include +#include +#include +#include +#include +#include +using Z=boost::multiprecision::cpp_int;using J=nlohmann::json; +void need(bool b,const char*s){if(!b)throw std::runtime_error(s);}J load(const std::string&p){std::ifstream f(p);need(bool(f),"input");J j;f>>j;return j;} +struct Op{int a,b,n;};struct Root{int role,node;bool center;std::vectortargets;};struct Sink{int root,role,pivot;std::vectortargets,writes;};struct Pair{int a,b;std::vectortargets;}; +int main(int argc,char**argv){try{ + auto started=std::chrono::steady_clock::now();need(argc==3,"usage bit-columns INPUT_FOLDER OUTPUT"); + std::string D=argv[1];J w=load(D+"/word_p12.json"),g=load(D+"/graph_p12.json"),k=load(D+"/kchron_p12.json"),sj=load(D+"/sinks.json"); + int v=g["v"],R=18908;std::vectorops;for(auto&o:w["ops"])ops.push_back({o[0],o[1],o[2]});int N=ops.size();std::vectorphase,rest;std::setps;for(auto i:w["phase1"]){phase.push_back(i);ps.insert(i.get());}for(int i=0;isource;for(auto&[n,s]:w["sources"].items())source[std::stoi(n)]=s; + std::vectorphys(R);for(int i=0;igauges,virtualOnly;for(auto z:w["gauges"])gauges.insert(z["role"].get()); + for(auto p:w["pairs"]){phys[p[1].get()]=p[0];virtualOnly.insert(p[1].get());} + std::vectorroots;for(int i=0;i<(int)g["roots"].size();i++){auto r=g["roots"][i];roots.push_back({w["rootroles"][i],r["node"],r["kind"]=="center",r["targets"].get>()});} + std::vectorsinks;std::setremoved,deletedRoots;std::mapbywrite,after; + for(auto e:sj){int ri=e["root"],p=e["pivot"],s=roots[ri].role;Sink q{ri,s,p,roots[ri].targets,{}};for(int i=0;ilive,index(R,-1);for(int r=0;r>at(rest.size()+1);for(auto it=w["gauges"].rbegin();it!=w["gauges"].rend();++it){int s=(*it)["role"];std::string key=std::to_string(s);int t=(w["reads"].contains(key)?w["reads"][key].get():phase.size())-phase.size();need(t>=0&&t<=(int)rest.size(),"gauge read time");at[t].push_back(s);} + std::map>pairs;for(auto e:k["entries"])pairs[e["deliver_after_root"].get()].push_back({e["carrier"],e["passive"],e["receivers"].get>()}); + std::vector>adj(R,std::vector(v)),bad(R,std::vector(v)); + for(int ri=0;ri<(int)roots.size();ri++)for(int t:roots[ri].targets){adj[roots[ri].role][t]++;if(!deletedRoots.count(ri))bad[roots[ri].role][t]++;} + for(int i=N-1;i>=0;i--){auto o=ops[i];for(int t=0;t>>responses(R),badresponses(R);for(int s=0;ssup(g["args"].size());std::vectorsc(sup.size());for(int n=0;nZ{ + bool major=mode==0,binary=mode==1;auto unit=[&](int i)->Z{return major?Z(1):Z(1)<<(binary?i:bits*i);}; + std::vectorx(v),y(v),z(R);for(int i=0;itop)top=dst;}; + const auto&resp=mutation=="omit-ancestor-response"?badresponses:responses; + auto read=[&](int s){int p=phys[s];need(index[p]>=0,"dirty read of nonexistent physical row");for(auto[t,c]:resp[s])add(y[t],-direction*c,z[p]);}; + auto gate=[&](int i,int sign){auto o=ops[i];int a=phys[o.a],b=phys[o.b];need(index[a]>=0&&index[b]>=0,"gate missing physical row");add(z[a],sign,z[b]);}; + for(int s=0;sdone;for(int i:phase){gate(i,1);done.push_back(i);} + for(auto&r:roots)if(r.center)for(int t:r.targets)add(y[t],direction,z[phys[r.role]]); + for(int si=0;si<(int)sinks.size();si++){auto&s=sinks[si];if(mutation=="omit-pre-target"&&si==0)continue;for(int t:s.targets)if(t!=s.pivot)add(y[t],-1,y[s.pivot]);} + bool omitted=false;for(int p=0;p<(int)rest.size();p++){for(int s:at[p])read(s);int i=rest[p];if(bywrite.count(i)){auto&s=sinks[bywrite[i]];if(mutation=="omit-write"&&!omitted)omitted=true;else add(y[s.pivot],direction,z[phys[ops[i].b]]);}else{gate(i,1);done.push_back(i);}if(after.count(i)){auto&s=sinks[after[i]];for(int t:s.targets)if(t!=s.pivot)add(y[t],1,y[s.pivot]);}} + for(int s:at[rest.size()])read(s); + for(int ri=0;ri<(int)roots.size();ri++){auto&r=roots[ri];if(!r.center&&!deletedRoots.count(ri))for(int t:r.targets)add(y[t],direction,z[phys[r.role]]);for(auto&p:pairs[ri]){add(x[p.a],1,x[p.b]);for(int t:p.targets)add(y[t],direction,x[p.a]);}} + for(auto&[ri,pp]:pairs)for(auto&p:pp)add(x[p.a],-1,x[p.b]); + for(auto it=done.rbegin();it!=done.rend();++it)gate(*it,-1); + for(auto[n,s]:source)add(z[phys[s]],-1,x[n]); + std::vectorwant(v);for(int t=0;tvalues;for(auto&r:roots){if(!values.count(r.node)){Z val=0;if(major)val=sc[r.node];else{Z mask=sup[r.node];while(mask!=0){int s=boost::multiprecision::lsb(mask);mask&=mask-1;val+=unit(s);}}values[r.node]=val;}for(int t:r.targets)add(want[t],direction,values[r.node]);}for(auto&[ri,pp]:pairs)for(auto&p:pp){Z val=unit(p.a);add(val,1,unit(p.b));for(int t:p.targets)add(want[t],direction,val);}} + if(major){for(int t=0;ttop)top=y[t]+want[t];for(int r:live)if(z[r]+1>top)top=z[r]+1;for(int i=0;itop)top=x[i]+1;return top;} + for(int t=0;t2*bound,"packed coefficient injectivity"); + std::cout<<"bound "<()},{"packed_digit_bits",bits},{"literal_inverse",true},{"source_and_dirty_restoration",true},{"integer_defining_decoder",true},{"F2_identity",true},{"controls",controls},{"scope","Pinned PR200 scalar word with terminal/gauge/alias/partner inventory; operation frame changes preserve this exact scalar execution."},{"milliseconds",std::chrono::duration_cast(std::chrono::steady_clock::now()-started).count()}}; + std::ofstream(argv[2])< +#include "json.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using nlohmann::json;using I=boost::multiprecision::cpp_int;using Row=std::array;using Mat=std::vector; +I absI(I x){return x<0?-x:x;} I gcdI(I a,I b){a=absI(a);b=absI(b);while(b){I t=a%b;a=b;b=t;}return a;}I mul(I a,I b){return a*b;}I subI(I a,I b){return a-b;}std::string si(I x){return x.convert_to();} +void prim(Row&r){I g=0;for(I x:r)g=gcdI(g,x);if(g>1)for(I&x:r)x/=g;for(I x:r)if(x){if(x<0)for(I&y:r)y=-y;break;}} +Mat red(Mat in,int h=24){Mat out;std::vector piv;for(Row r:in){for(int k=0;k<(int)out.size();k++)if(r[piv[k]]){I a=out[k][piv[k]],b=r[piv[k]];for(int c=0;cp;for(Row&r:A){int c=0;while(c();M.push_back(a);}return M;} +struct Frame{Mat A,B;};std::vector fr;std::mapinterned;std::maporig;std::map,int>cacheMeet;std::map,bool>cacheSub; +std::string key(const Mat&M){std::string s;for(const Row&r:M){for(I x:r){s+=si(x);s+=',';}s+=';';}return s;} +int addB(Mat B){B=red(B);std::string k=key(B);auto it=interned.find(k);if(it!=interned.end())return it->second;int id=fr.size();fr.push_back({ker(B),B});interned[k]=id;return id;} +int addA(Mat A){return addB(ker(A));}bool sub(int a,int b){if(a==b)return true;auto k=std::make_pair(a,b);if(cacheSub.count(k))return cacheSub[k];bool ok=fr[a].B.size()<=fr[b].B.size();if(ok)for(auto&u:fr[a].B)for(auto&v:fr[b].A)if(dot(u,v)){ok=false;break;}cacheSub[k]=ok;return ok;} +int meet(int a,int b){if(sub(a,b))return a;if(sub(b,a))return b;auto k=std::minmax(a,b);if(cacheMeet.count(k))return cacheMeet[k];Mat A=fr[a].A;A.insert(A.end(),fr[b].A.begin(),fr[b].A.end());return cacheMeet[k]=addA(A);} +int joinF(int a,int b){if(sub(a,b))return b;if(sub(b,a))return a;Mat B=fr[a].B;B.insert(B.end(),fr[b].B.begin(),fr[b].B.end());return addB(B);} +bool nondeg(int f){Mat B=fr[f].B,A=fr[f].A;int n=B.size();if(!n||n==24)return true;Mat U=n<=12?B:A;int d=U.size();std::vectors(d);for(int i=0;i>j;return j;} +struct End{int i,f;};struct Edge{End a,b;};std::vectoredges;std::vector>outgoing,incoming; +void edge(End a,End b){edges.push_back({a,b});if(a.i>=0)outgoing[a.i].push_back(b);if(b.i>=0)incoming[b.i].push_back(a);if(a.i>=0&&b.i>=0&&a.i>=b.i)throw std::runtime_error("edge order");} +json histogram(const std::vector&X){std::mapH;long long mass=0;for(auto&e:edges){int a=e.a.i<0?e.a.f:X[e.a.i],b=e.b.i<0?e.b.f:X[e.b.i];if(!sub(a,b))throw std::runtime_error("nesting failure");int r=fr[b].B.size()-fr[a].B.size();H[r]++;mass+=r;}json z;z["mass"]=mass;for(auto[r,n]:H)z["histogram"][std::to_string(r)]=n;double E=0;for(auto[r,n]:H)if(r)E+=n*r*log(72.0/r);z["entropy"]=E;return z;} +struct Flow{struct Arc{int to,rev;double cap;};int n;std::vector>g;std::vectorlev,ptr;Flow(int n):n(n),g(n),lev(n),ptr(n){}void add(int u,int v,double c){if(c<=1e-12||u==v)return;g[u].push_back({v,(int)g[v].size(),c});g[v].push_back({u,(int)g[u].size()-1,0});}double dfs(int u,int t,double f){if(u==t)return f;for(int&i=ptr[u];i<(int)g[u].size();i++){auto&e=g[u][i];if(e.cap>1e-10&&lev[e.to]==lev[u]+1){double z=dfs(e.to,t,std::min(f,e.cap));if(z>1e-10){e.cap-=z;g[e.to][e.rev].cap+=z;return z;}}}return 0;}void run(int s,int t){while(true){std::fill(lev.begin(),lev.end(),-1);std::vectorq{s};lev[s]=0;for(int k=0;k<(int)q.size();k++)for(auto&e:g[q[k]])if(e.cap>1e-10&&lev[e.to]<0){lev[e.to]=lev[q[k]]+1;q.push_back(e.to);}if(lev[t]<0)break;std::fill(ptr.begin(),ptr.end(),0);while(dfs(s,t,1e12)>1e-10){}}}std::vectorsource(int s){std::vectorseen(n,false);seen[s]=true;std::vectorq{s};for(int k=0;k<(int)q.size();k++)for(auto&e:g[q[k]])if(e.cap>1e-10&&!seen[e.to]){seen[e.to]=true;q.push_back(e.to);}return seen;}}; +double ent(int r){return r?r*log(72.0/r):0;} +std::vector majorantCut(const std::vector&F,const std::vector&M,json&receipt){int N=F.size();Flow flow(N+2);std::vectoru(N,0);int hard=0,allowed=0;double total=0;std::vector>arcs;for(auto&e:edges){int i=e.a.i,j=e.b.i;int a=i<0?e.a.f:F[i],b=j<0?e.b.f:F[j];bool ai=i>=0&&F[i]!=M[i],bj=j>=0&&F[j]!=M[j];int da=fr[a].B.size(),db=fr[b].B.size();double E00=ent(db-da);if(!ai&&!bj)continue;if(ai&&!bj){u[i]+=ent(db-fr[M[i]].B.size())-E00;continue;}if(!ai&&bj){u[j]+=ent(fr[M[j]].B.size()-da)-E00;continue;}int DMA=fr[M[i]].B.size(),DMB=fr[M[j]].B.size();double E01=ent(DMB-da),E11=ent(DMB-DMA);u[j]+=E01-E00;u[i]+=E11-E01;if(!sub(M[i],F[j])){arcs.push_back({i,j});hard++;}else{double E10=ent(db-DMA);double defect=E00+E11-E01-E10;if(defect<-1e-8)throw std::runtime_error("concavity defect sign");allowed++;total+=std::max(0.0,defect);}} +double cap=1;for(double z:u)cap+=fabs(z);for(auto[i,j]:arcs)flow.add(i,j,cap);for(int i=0;i0)flow.add(i,N+1,u[i]);if(u[i]<0)flow.add(N,i,-u[i]);}flow.run(N,N+1);auto selected=flow.source(N);auto X=F;double proxy=0;int n=0;for(int i=0;i>a){int n=a.size();if(!n)return 1;I prev=1;int sign=1;for(int k=0;ks(d);for(int i=0;i>a(d,std::vector(d));for(int i=0;i())throw std::runtime_error("rank input");orig[old]=id;} +int N=w["ops"].size(),v=g["v"],R=18908,full=orig[w["full_frame"]];int empty=addB({});std::vectorF;for(auto z:w["op_frame"])F.push_back(orig[z.get()]);for(auto&z:load(D+"/current-bases.json"))F[z[0].get()]=addB(parseMat(z[1]));auto oldF=F;json newbases=load(argv[3]);std::setchanged,newids; +for(auto&z:newbases){int i=z[0];if(i<0||i>=N||!changed.insert(i).second)throw std::runtime_error("override index");F[i]=addB(parseMat(z[1]));newids.insert(F[i]);} +json receipt;int primeCount=0;for(int f:newids){for(const Row& row:fr[f].B){int pivot=0;while(pivot<24&&!row[pivot])pivot++;if(pivot==24||absI(row[pivot])>=((I)1<<80))throw std::runtime_error("unproved new literal basis rank modulo retained primes");}if(!nondeg(f))throw std::runtime_error("degenerate newframe");I d=primeWitness(f);if(!d)throw std::runtime_error("zero determinant");I rem=d;for(int p=2;p<1000;p++)while(rem%p==0)rem/=p;if(rem>=((I)1<<80))throw std::runtime_error("unproved large exceptional prime factor");receipt["prime_witnesses"].push_back({{"frame",f},{"determinant_abs",si(d)},{"after_small_factor_removal",si(rem)}});primeCount++;} +using Bits=std::array;std::vectorsupport(g["args"].size());for(int i=0;ichi(v);for(int t=0;t()]=1; +long long values=0;for(int i:changed){int node=w["ops"][i][2],f=F[i];for(int b=0;b<28;b++){auto bits=support[node][b];while(bits){int t=64*b+__builtin_ctzll(bits);bits&=bits-1;for(auto&a:fr[f].A)if(dot(a,chi[t]))throw std::runtime_error("required value not in frame");values++;}}} +outgoing.resize(N);incoming.resize(N);std::vector>role(R);std::mapstart,root;std::mapgauge;std::setphase,deleted,donor;std::maprecipient,readtime; +for(auto&[n,s]:w["sources"].items())start[s.get()]=orig[w["source_frame"][std::stoi(n)].get()]; +for(auto&z:w["gauges"]){int s=z["role"];gauge[s]=z;start[s]=orig[z["frame"].get()];} +for(int j=0;j<(int)w["rootroles"].size();j++)root[w["rootroles"][j].get()]=orig[w["root_frame"][j].get()]; +for(auto&e:sn)deleted.insert(w["rootroles"][e["root"].get()].get()); +for(auto&p:w["pairs"]){int d=p[0],b=p[1];donor.insert(b);recipient[d]=b;}for(auto x:w["phase1"])phase.insert(x.get()); +std::vectorrest;for(int i=0;i()].push_back(i);if(!phase.count(i))rest.push_back(i);} +for(auto&[s,z]:gauge){std::string q=std::to_string(s);readtime[s]=(w["reads"].contains(q)?w["reads"][q].get():phase.size())-phase.size();} +auto path=[&](int s){std::vectorp{{-1,start.count(s)?start[s]:empty}};for(int i:role[s])p.push_back({i,F[i]});if(root.count(s))p.push_back({-1,root[s]});return p;}; +for(int s=0;s()]});auto q=path(b);p.insert(p.end(),q.begin()+1,q.end());}p.push_back({-1,full});for(int j=1;j<(int)p.size();j++)edge(p[j-1],p[j]);} +std::map>at;for(auto it=w["gauges"].rbegin();it!=w["gauges"].rend();++it){int s=(*it)["role"];at[readtime[s]].push_back(s);} +std::mapbywrite,after;for(auto&e:sn){int s=w["rootroles"][e["root"].get()];std::vectorwrites;for(int i:role[s])if(w["ops"][i][0].get()==s)writes.push_back(i);for(int i:writes)bywrite[i]=e;after[writes.back()]=e;} +std::vectorcur(v,{-1,empty});auto move=[&](int t,End p){edge(cur[t],p);cur[t]=p;}; +for(int p=0;p<(int)rest.size();p++){for(int s:at[p])for(auto t:gauge[s]["targets"])move(t.get(),{-1,orig[gauge[s]["frame"].get()]});int i=rest[p];if(bywrite.count(i))move(bywrite[i]["pivot"].get(),{i,F[i]});if(after.count(i)){auto&e=after[i];for(auto t:g["roots"][e["root"].get()]["targets"])move(t.get(),{-1,orig[w["root_frame"][e["root"].get()].get()]});}} +for(int s:at[rest.size()])for(auto t:gauge[s]["targets"])move(t.get(),{-1,orig[gauge[s]["frame"].get()]}); +std::map>delivery;for(auto&e:k["entries"])delivery[e["deliver_after_root"].get()].push_back(e); +for(int j=0;j<(int)g["roots"].size();j++){auto&r=g["roots"][j];int s=w["rootroles"][j];if(r["kind"]=="side"&&!deleted.count(s))for(auto t:r["targets"])move(t.get(),{-1,orig[w["root_frame"][j].get()]});for(auto&e:delivery[j])for(auto t:e["receivers"])move(t.get(),{-1,orig[e["deliver_frame"].get()]});} +for(int t=0;t()]+=3;move(t,{-1,addA({cov})});} +receipt["old_graph"]=histogram(oldF);receipt["new_graph"]=histogram(F); +json packed=load(argv[4]);json bp=packed["profile"]["scaled_moment_profile"];std::maph;for(auto&[r,n]:bp["child_histogram"].items())h[std::stoi(r)]=n.get(); +for(auto&[r,n]:receipt["new_graph"]["histogram"].items())if(std::stoi(r)>0)h[std::stoi(r)]+=9*n.get(); +for(auto&[r,n]:receipt["old_graph"]["histogram"].items())if(std::stoi(r)>0)h[std::stoi(r)]-=9*n.get(); +long long mass=0;json hist=json::object();for(auto[r,n]:h){if(n<0)throw std::runtime_error("negative profile bin");if(n){hist[std::to_string(r)]=n;mass+=r*n;}} +if(mass!=bp["rank_per_vertex"].get())throw std::runtime_error("changed telescoping mass"); +bp["child_histogram"]=hist;int netAdditional=0;for(int i=0;i()];if(!sub(F[i],originalFrame)||!sub(originalFrame,F[i]))actualChanged++;}bp["changed_operation_frames"]=actualChanged;receipt["profile"]=bp;receipt["changed_operations"]=netAdditional;receipt["replacement_entries_checked"]=changed.size();receipt["required_value_checks"]=values;receipt["prime_frames"]=primeCount;receipt["status"]="PASS_NATIVE_EXACT_FRAME_PATH_AND_PRIME_ADMISSION";receipt["scope"]="Scalar word/source-gauge-root/alias/terminal identities retained; existing full integer/F2 semantic proof transfers unchanged."; +json merged=json::array();std::vectororiginal;for(auto z:w["op_frame"])original.push_back(orig[z.get()]);for(int i=0;iLLONG_MAX)throw std::runtime_error("witness overflow");row.push_back((long long)x);}rows.push_back(row);}merged.push_back({i,rows});} +receipt["public_relative_changed_operations"]=merged.size();std::ofstream(O+"/FRAME-ADMISSION.json")< +#include "json.hpp" +#include +#include +#include +#include +#include +#include +using Z=boost::multiprecision::cpp_int; using J=nlohmann::json; +void need(bool b,const std::string&s){if(!b)throw std::runtime_error(s);} +Z absz(Z a){return a<0?-a:a;} Z gcdz(Z a,Z b){a=absz(a);b=absz(b);while(b!=0){Z r=a%b;a=b;b=r;}return a;} +Z ten(int n){Z v=1;while(n--)v*=10;return v;} +struct Q{Z n,d;Q(long long x=0):n(x),d(1){}Q(Z x,Z y):n(x),d(y){norm();}explicit Q(const std::string&s){auto p=s.find('/');n=Z(s.substr(0,p));d=p==s.npos?Z(1):Z(s.substr(p+1));norm();}void norm(){need(d!=0,"zero denominator");if(d<0){n=-n;d=-d;}Z g=gcdz(n,d);n/=g;d/=g;}std::string str()const{return n.convert_to()+(d==1?"":"/"+d.convert_to());}}; +Q operator-(const Q&a){return Q(-a.n,a.d);}Q operator+(const Q&a,const Q&b){Z g=gcdz(a.d,b.d);return Q(a.n*(b.d/g)+b.n*(a.d/g),(a.d/g)*b.d);}Q operator-(const Q&a,const Q&b){return a+(-b);}Q operator*(const Q&a,const Q&b){Z g=gcdz(a.n,b.d),h=gcdz(b.n,a.d);return Q((a.n/g)*(b.n/h),(a.d/h)*(b.d/g));}Q operator/(const Q&a,const Q&b){need(b.n!=0,"zero divisor");return a*Q(b.d,b.n);}bool operator<(const Q&a,const Q&b){return a.n*b.d(const Q&a,const Q&b){return b=(const Q&a,const Q&b){return !(ab?a:b;}Q powq(Q a,int n){Q r(1);while(n){if(n&1)r=r*a;a=a*a;n>>=1;}return r;} +Z floorz(const Q&a){Z q=a.n/a.d;if(a.n<0&&a.n%a.d!=0)--q;return q;}Z ceilz(const Q&a){return -floorz(-a);}Q lower(const Q&a){Z g=ten(45);return Q(floorz(a*Q(g,1)),g);}Q upper(const Q&a){Z g=ten(45);return Q(ceilz(a*Q(g,1)),g);} +Q jq(const J&j){return j.is_string()?Q(j.get()):Q(j.dump());}J read(const std::string&s){std::ifstream f(s);need(bool(f),"cannot open "+s);J j;f>>j;return j;} +struct IV{Q lo,hi;};std::maplogcache; +IV shortlog(Q x){Q z=(x-Q(1))/(x+Q(1)),zz=z*z,p=z,s;for(int j=0;j<80;j++){s=s+p/Q(2*j+1);p=p*zz;}Q lo=Q(2)*s,tail=Q(2)*p/(Q(161)*(Q(1)-zz));return {lo,lo+tail};} +IV logiv(Q x){need(x>=Q(1),"log domain");auto key=x.str();if(logcache.count(key))return logcache[key];Q base(4,3);int k=0;while(x>base){x=x/base;++k;}IV v=shortlog(x),b=shortlog(base);return logcache[key]={lower(Q(k)*b.lo+v.lo),upper(Q(k)*b.hi+v.hi)};} +IV expiv(Q lo,Q hi){need(Q(0)<=lo&&lo<=hi&&hirows;}; +P prepare(J j){if(j.contains("profile"))j=j["profile"];if(j.contains("scaled_moment_profile"))j=j["scaled_moment_profile"];P p;need(j.at("m").is_number_integer(),"integer m");p.m=j.at("m");p.W=j.contains("W")?j.at("W").get():j.at("W_per_vertex").get();p.N=j.contains("N")?j.at("N").get():j.at("deficit_per_vertex").get();p.L=j.value("L",0LL);p.rank=j.contains("total_rank")?j.at("total_rank").get():j.at("rank_per_vertex").get();p.maxchild=j.at("maxchild");auto h=j.contains("child_multiplicities")?j["child_multiplicities"]:j["child_histogram"];std::maphist;for(auto it=h.begin();it!=h.end();++it){need(it.value().is_number_integer(),"integer multiplicity");long long t=std::stoll(it.key()),n=std::stoll(it.value().dump());need(std::to_string(t)==it.key(),"aliased histogram key");need(t>0&&t0,"invalid histogram");hist[t]=n;}need(!hist.empty(),"empty histogram");Z mass=0;for(auto [t,n]:hist){mass+=Z(t)*n;p.count+=n;p.rows.push_back({t,n,logiv(Q(p.m,t))});}need(p.m>1&&p.W>0&&mass==p.rank&&mass==Z(p.W)*p.m-p.N+p.L,"rank mass");need(hist.rbegin()->first==p.maxchild&&mass>0&&mass=Q(0),"negative saving");M o;for(auto&r:p.rows){IV e=expiv(a*r.log.lo,a*r.log.hi);Q w(Z(r.t)*r.n,Z(p.m)*p.W);o.rawlo=o.rawlo+w*e.lo;o.rawhi=o.rawhi+w*e.hi;if(detail)o.terms.push_back(J{{"child",r.t},{"multiplicity",r.n},{"log_lower",r.log.lo.str()},{"log_upper",r.log.hi.str()},{"exp_lower",e.lo.str()},{"exp_upper",e.hi.str()},{"contribution_lower",(w*e.lo).str()},{"contribution_upper",(w*e.hi).str()}});}if(paid){IV l=logiv(Q(p.m)),e=expiv(a*l.lo,a*l.hi);Q weight(Z(32)*p.m*p.count,Z(p.W)*ten(16));o.flo=weight*e.lo;o.fhi=weight*e.hi;}o.lo=o.rawlo+o.flo;o.hi=o.rawhi+o.fhi;return o;} +J mj(const P&p,Q a,const M&o,bool paid){J j={{"saving",a.str()},{"lower",o.lo.str()},{"upper",o.hi.str()},{"strict_gap_lower",(Q(1)-o.hi).str()}};if(paid){j["raw"]=J{{"saving",a.str()},{"lower",o.rawlo.str()},{"upper",o.rawhi.str()},{"strict_gap_lower",(Q(1)-o.rawhi).str()}};if(!o.terms.is_null())j["raw"]["terms"]=o.terms;j["fallback_lower"]=o.flo.str();j["fallback_upper"]=o.fhi.str();j["bad_fraction"]=Q(1,ten(16)).str();j["edge_count"]=p.count;j["fallback_children_per_edge"]=32*p.m*p.m;}else if(!o.terms.is_null())j["terms"]=o.terms;return j;} +struct Saved{Q a,atom,ordinary;J j;}; +Saved certify(const P&p,bool paid){Z den=ten(18),lo=0,hi=den/(paid?100:32);need(moment(p,Q(lo,den),paid).hiQ(1),"upper bracket");int it=0;while(hi-lo>1){Z mid=(hi+lo)/2;M r=moment(p,Q(mid,den),paid);if(r.hiQ(1))hi=mid;else throw std::runtime_error("interval overlaps one");++it;}need(moment(p,Q(lo,den),paid).hiQ(1),"adjacent saving enclosure");Saved s;s.a=Q(lo,den);s.j={{"saving",s.a.str()},{"accepted",mj(p,s.a,moment(p,s.a,paid,true),paid)},{"rejected",mj(p,Q(hi,den),moment(p,Q(hi,den),paid,true),paid)},{"denominator",den.convert_to()},{"iterations",it}};if(paid){Q old(384599,ten(10)),thr=s.a/(Q(1)+s.a-old);Z ag=ten(24);s.atom=Q(floorz(thr*Q(ag,1))+1,ag);s.ordinary=(Q(1)-s.atom)*s.a+s.atom*old;need(s.ordinarym={{"balanced_prefix",Q(1)-eps},{"coordinate_movement",a},{"compact_phase_layer",minimum},{"bulk_exposure",a},{"Gaussian_arithmetic",mn(Q(1)-eps-delta,r-delta)},{"scalar_work",Q(1)-eps-delta},{"dimension",eps}}; +std::maps={{"bit_positive",a},{"complex_above_bit",b-a},{"complex_below_one_over32",Q(1,32)-b},{"beta_positive",beta},{"beta_below_one",Q(1)-beta},{"leaf_saving_above_bit",(Q(1)-beta)*b-a},{"q_positive",q},{"q_below_internal",Q(1)-internal-q},{"q_below_leaf",Q(1)-leaf-q},{"c_positive",c},{"c_below_one",Q(1)-c},{"q_below_reservations",c-q},{"lambda_above_tau",lam-tau},{"lambda_above_sigma",lam-sigma},{"lambda_above_internal",lam-internal},{"lambda_prime_above_lambda",lp-lam},{"compact_leaf",lp-leaf},{"compact_reservations",lp-(Q(1)-c)},{"lambda_prime_below_one",q},{"epsilon_positive",eps},{"epsilon_below_one",Q(1)-eps},{"guard_width",Q(1)-eps},{"K_geometry",Q(1)-eps*(Q(1)+c)},{"K_dominates_log",eps*c},{"record_suffix",Q(1)-eps},{"phase_local",Q(1)-eps-delta},{"phase_boundary",r-delta},{"gamma_sublinear",Q(1)-eps-r},{"cell_above_band",eps-(Q(1)-r)/Q(2)},{"prime_interval_packing",Q(1)-eps},{"alpha_positive",r},{"alpha_below_one",Q(1)-r},{"alpha_below_one_fourth",Q(1,4)-r},{"delta_positive",delta},{"delta_below_one_eighth",Q(1,8)-delta},{"short_record_fallback",eps-a},{"small_field_exposure",Q(1)-eps-minimum},{"artificial_boundary",Q(8)-eps+r-delta-minimum},{"literal_scalar_guard",literal},{"row_product_gap",rowgap}}; +Q mm(100);J margins,slacks;for(auto [name,v]:m){mm=mn(mm,v);margins[name]=v.str();s[name+"_above_kappa"]=v-k;}need(mm==minimum&&Q(1)-eps-minimum==eta&&Q(1)-eps-r==eta/Q(2)&&Q(1)-eps*(Q(1)+c)==eta-eps*eta/Q(4),"assembly identities");need(s.size()==47,"47 constraints");for(auto [name,v]:s){need(v>Q(0),"nonpositive constraint "+name);slacks[name]=v.str();}return J{{"parameters",{{"a_bit",a.str()},{"a_complex",b.str()},{"beta",beta.str()},{"eta",eta.str()},{"kappa",k.str()},{"tau",tau.str()},{"sigma",sigma.str()},{"q",q.str()},{"lambda_",lam.str()},{"lambda_prime",lp.str()},{"c",c.str()},{"epsilon",eps.str()},{"alpha_squared_power",r.str()},{"delta",delta.str()}}},{"recurrence",{{"internal",internal.str()},{"leaf",leaf.str()},{"reservations",(Q(1)-c).str()}}},{"margins",margins},{"minimum_margin",minimum.str()},{"absorption_gap",(minimum-k).str()},{"strict_constraints",slacks}};} +J malformedControls(J valid){J names=J::array();auto test=[&](J bad,const std::string&name){bool rejected=false;try{prepare(bad);}catch(const std::exception&){rejected=true;}need(rejected,"malformed control accepted "+name);names.push_back(name);};J b=valid;b["total_rank"]=b["total_rank"].get()+1;test(b,"incorrect total rank");b=valid;b["child_multiplicities"]["01"]=1;test(b,"aliased histogram key");b=valid;b["child_multiplicities"]["1"]=0;test(b,"zero multiplicity");b=valid;b["child_multiplicities"][std::to_string(b["m"].get())]=1;test(b,"uncontracted child");b=valid;b["child_multiplicities"]["1"]=1.5;test(b,"fractional multiplicity");b=valid;b["child_multiplicities"]=J::object();test(b,"empty histogram");return names;} +void compareQ(const J&got,const J&expected,const std::string&path){need(jq(got)==jq(expected),"replay mismatch "+path);} +void compareMoment(const J&got,const J&want,const std::string&path){for(std::string k:{"saving","lower","upper","strict_gap_lower","fallback_lower","fallback_upper"})if(want.contains(k))compareQ(got.at(k),want.at(k),path+"."+k);if(want.contains("raw"))compareMoment(got.at("raw"),want.at("raw"),path+".raw");if(want.contains("terms")){need(got.at("terms").size()==want.at("terms").size(),"terms count");for(size_t i=0;i=4,"usage: native-pricing replay assembly.json packed.json output.json | price bit-profile.json complex-profile.json output.json [bootstrap=3]");J result,initialProfile,initialBase;std::string mode=argv[1];if(mode=="replay"){need(argc==5||argc==6,"replay args");J frozen=read(argv[2]),packed=read(argv[3]);J pc=packed.contains("coarse")?packed["coarse"]:packed["bit"];P bit=prepare(frozen["bit_profile"]),complex=prepare(frozen["complex_profile"]);Q ca=jq(frozen["bit"]["saving"]);if(frozen.contains("bit")&&!frozen["bit"].contains("saving"))ca=jq(packed["coarse"]["coarse_saving"]);J accepted=mj(bit,ca,moment(bit,ca,true,true),true),rejected=mj(bit,ca+Q(1,ten(18)),moment(bit,ca+Q(1,ten(18)),true,true),true);compareMoment(accepted,pc["accepted"],"paid.accepted");compareMoment(rejected,pc.contains("rejected")?pc["rejected"]:pc["next_excluded"],"paid.rejected");need(moment(bit,ca,true).hiQ(1),"paid adjacent proof");Q old(384599,ten(10)),thr=ca/(Q(1)+ca-old),atom(floorz(thr*Q(ten(24),1))+1,ten(24)),a=(Q(1)-atom)*ca+atom*old;compareQ(a.str(),pc["ordinary_saving"],"ordinary");if(frozen.contains("initial_profile")){P ip=prepare(frozen["initial_profile"]);Q ic=jq(frozen["initial_base"]["saving"]);compareMoment(mj(ip,ic,moment(ip,ic,true,true),true),frozen["initial_base"]["accepted"],"initial.accepted");compareMoment(mj(ip,ic+Q(1,ten(18)),moment(ip,ic+Q(1,ten(18)),true,true),true),frozen["initial_base"]["rejected"],"initial.rejected");Q ithr=ic/(Q(1)+ic-old),iatom(floorz(ithr*Q(ten(24),1))+1,ten(24));a=(Q(1)-iatom)*ic+iatom*old;compareQ(a.str(),frozen["initial_base"]["ordinary_saving"],"initial ordinary");}J chain=J::array();chain.push_back(a.str());for(size_t j=1;j5?std::stoi(argv[5]):3;for(int j=0;j()},{"kappa",k.str()},{"kappa_decimal_numerator_grid_1e18",(k*Q(grid,1)).str()},{"assembly",root},{"scope","Arithmetic replay only; physical admission and retained analytic interfaces require separate evidence"}};}if(mode=="price"&&argc==8){result["initial_profile"]=initialProfile;result["initial_base"]=initialBase;}if(mode=="replay")result["malformed_controls_rejected"]=malformedControls(read(argv[2])["bit_profile"]);else result["malformed_controls_rejected"]=malformedControls(result["bit_profile"]);result["method"]={{"backend","Boost cpp_int exact rationals"},{"log_terms",80},{"exp_degree",12},{"outward_grid",ten(45).convert_to()},{"python_execution",false},{"floating_point_decisions",false}};result["elapsed_milliseconds"]=std::chrono::duration_cast(std::chrono::steady_clock::now()-start).count();std::ofstream out(argv[4]);out< C -> owncap -> full24, not an inference from dimensions alone. + +Every source whose support meets BOTH receiver labels in exactly one point lies in C, since its two read-covector pairings vanish. Every source meeting only its selected receiver once lies in that receiver's individual cap. Therefore the following concrete query partition is sufficient: + +- At C, read all shared responses and the new mixed-source partner delivery. +- Then raise each target to its own23-cap and read its selector-specific responses. +- Raise to the full24-frame for final completion. + +Place every zero-gauge arbitrary-dirty old-value correction before these target-frame increases. Actual nonzero gauges, if any, require separate checked inclusion and chronology. This note does not hide them behind rank inequalities. + +For bad-to-bad responses into t_e=z(k,j,e), U_j excluding k and V_(k,0/1) excluding j are shared-C terms. V_(j,e) excluding k is selector-specific and must be read only at owncap. The132-pair residual removes source entries from these sets; taking subsets preserves their same cap membership. + +For good-to-bad responses: all good cube totals containing pair k and excluding pair j are shared-C terms. Good stars at endpoint(j,e) excluding pair k are owncap terms. Good sources containing pair k and the opposite endpoint(j,1-e) are likewise owncap terms; they fail the opposite receiver's cap and must not be forced into C. + +This partition eliminates the apparent incomparable-rank21 common-V/W target obstruction by retaining the correct22 common stage and23 individual stage. It is a sufficient target assignment for the exact stated partitions. Its stock/path/rank cost must still come from the actual host word. + +## New132-pair source macro is algebraically and geometrically sufficient + +The structural pairing partitions every new source exactly once. Each pair(a,b) has G-Gram2I_2 and therefore nondegenerate mix span dimension2. Its two receivers have GramI_2+J_2 and common cap dimension22. Both source labels meet BOTH receivers exactly once, so the mix span is contained in that actual common cap. + +The literal source macro is a <- a+b; y_c <- y_c+a; y_d <- y_d+a; a <- a-b. It preserves arbitrary original sources exactly and delivers a+b to each target over every commutative ring. No initialized temporary or original-source replacement is assumed. Its fresh edge contribution restores the four H entries per pair removed from the residual query decoder. + +With inherited source frame lines of dimension1, the complete carrier chain is line_a -> mix2 -> commoncap22 -> full24, increments[1,20,2]. The passive chain is line_b -> mix2 -> full24, increments[1,22]. This matches the actual existing PR200 base_chains convention, which counts successive differences from the line rather than charging a fictional extra rank1 birth. The relevant exact source is the frozen PR200 package bit/word.py lines87 onward, not a scalar path-length guess. + +Consume every original-source control needed by the newly inserted query words BEFORE these source mixes. The source-copy rows can then traverse their own paid frames without changing original source frames. Perform the new source mixes at the common target C stage. New centre stars must likewise be built from their original source controls before mixing. This makes literal source restoration compatible with allquery controls; it is a concrete chronological requirement, not a claim that the host already satisfies it. + +## Reuse and remaining exact host interface + +The exact old PR200 public Candidate.base_chains constructs source partner chains, phase-one centre closure, actual dirty response supports, gauge exclusions, carrier aliases and read deadlines. Those same finite predicates should be used on the new hybrid transcript. Existing old target chains are retained only after each new cube response is prepended in the verified rank20 cube common cap. Terminal pivots with earlier redirected writes are separate: restoring all34 terminal rows is a sufficient conservative fallback, charged literally rather than ignoring their timeline. + +No new exponent is justified by these local certifications alone. Complete host role/source/target maps, literal adjoint compensation, actual physical-frame chains, centre increase, prime witnesses, bank allocation, complete child histogram, paid bad-class moment, ordinary leaf bootstrap and47 root constraints still must be replayed together. Parent owns exact pricing and packaging; hybrid-compiler owns the host transcript; structural owns the new residue/query counts. This lane has no ongoing subprocess or numerical engine. diff --git a/research/coordinated-crossover-pr200-v2/research/FIFTH-BOOTSTRAP-COMPARISON.json b/research/coordinated-crossover-pr200-v2/research/FIFTH-BOOTSTRAP-COMPARISON.json new file mode 100644 index 0000000000..6a5c49c867 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/research/FIFTH-BOOTSTRAP-COMPARISON.json @@ -0,0 +1,1094 @@ +{ + "a_bit": "43797267429014079995757239262391962117434390640040309258248209746097446561494013805623607295240161391846164137827699981079231/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "a_complex": "700918443859411/1000000000000000000", + "adjacent_kappa_grid": "1000000000000000000", + "adjacent_kappa_rejected": true, + "assembly": { + "absorption_gap": "5583612541670957013831409120850543490391570270111692411476778944455185929515833489881433970657127408403760461090738858003490426029280432995972544295193693077/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923000000000000000000000000", + "margins": { + "Gaussian_arithmetic": "11679271314403754665541633145217322921459840473957864550302378421551123467936053561791951140731463428435395903477645809028651978953644723041759965002248721379275899993693077/17078345937981070421332201907111428561090473173100149809193153059967284311061566799282454430693425876907684947437496829200201719282045793158560010091076800000000000000000000000", + "balanced_prefix": "7299544571502346665970191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923", + "bulk_exposure": "43797267429014079995757239262391962117434390640040309258248209746097446561494013805623607295240161391846164137827699981079231/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_phase_layer": "7299544571502346665959517978431612512532400561401686102869980933819506819848503830871539630696759588053540614416334858953007248186472288581756180848448721379275899993693077/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923000000000000000000000000", + "coordinate_movement": "43797267429014079995757239262391962117434390640040309258248209746097446561494013805623607295240161391846164137827699981079231/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "dimension": "10666666666666666666666656000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923", + "scalar_work": "58396356572018773327750861590931567283352532874557101322914618290688367714203250691609673914434971059175185653464962609835529107136817357281800329309448721379275899993693077/85391729689905352106661009535557142805452365865500749045965765299836421555307833996412272153467129384538424737187484146001008596410228965792800050455384000000000000000000000000" + }, + "minimum_margin": "7299544571502346665959517978431612512532400561401686102869980933819506819848503830871539630696759588053540614416334858953007248186472288581756180848448721379275899993693077/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923000000000000000000000000", + "parameters": { + "a_bit": "43797267429014079995757239262391962117434390640040309258248209746097446561494013805623607295240161391846164137827699981079231/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "a_complex": "700918443859411/1000000000000000000", + "alpha_squared_power": "14599089143004693331929709923074463194078133748995316848590643413372201233327753382405558814087932655356632762851853109079081799465093012681762487771448721379275899993693077/21347932422476338026665252383889285701363091466375187261491441324959105388826958499103068038366782346134606184296871036500252149102557241448200012613846000000000000000000000000", + "beta": "1/1000000000000000000000000", + "c": "21898633714507039997886575833928552044637199562780892237161987438658083240437748654602057550173519201909276445306554750378223653835862172300018920769/32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "delta": "1/8000000000000000000000000", + "epsilon": "10666666666666666666666656000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923", + "eta": "1/1000000000000000000000000", + "kappa": "427415195711/625000000000000", + "lambda_": "63956202732570985920004242804534875466896645605117198953133713907688293193478815244442586138802206400102167641485779595259082160846164137827699981079231/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime": "31978101366285492960002121424166071447955362800437219107762838012561341916759562251345397942449826480798090723554693445249621776346164137827699981079231/32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q": "21898633714507039997878575833928552044637199562780892237161987438658083240437748654602057550173519201909276445306554750378223653835862172300018920769/32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "sigma": "999299081556140589/1000000000000000000", + "tau": "63956202732570985920004242760737608037882565609359959690741751790253902553438505986194376392704759838608153835862172300018920769/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "recurrence": { + "internal": "63956202732570985920004242760737608037882565609359959690741751790253902553438505986194376392704759838608153835862172300018920769/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "leaf": "999299081556140589000000000700918443859411/1000000000000000000000000000000000000000000", + "reservations": "31978101366285492960002113424166071447955362800437219107762838012561341916759562251345397942449826480798090723554693445249621776346164137827699981079231/32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "strict_constraints": { + "Gaussian_arithmetic_above_kappa": "8933786471053257965031662592936584751412222841106147770919024758560694974956950231897844083971815363480720578127037461866895631722493423560728505332313693077/17078345937981070421332201907111428561090473173100149809193153059967284311061566799282454430693425876907684947437496829200201719282045793158560010091076800000000000000000000000", + "K_dominates_log": "7299544571502346665962184645098279179199067225401686102869980933819506819848503830871539630696759588053540614416334858953007248186472288581756180848448721379275899993693077/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923000000000000000000000000", + "K_geometry": "8007299544571502346665962191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923000000000000000000000000", + "alpha_below_one": "21333333333333333333333322673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923/21347932422476338026665252383889285701363091466375187261491441324959105388826958499103068038366782346134606184296871036500252149102557241448200012613846000000000000000000000000", + "alpha_below_one_fourth": "5322384016476079813334383386049246962146694732844801498524269687826404145973411871393361450777607653878294913311365906015983955476174217349368240665690051278620724100006306923/21347932422476338026665252383889285701363091466375187261491441324959105388826958499103068038366782346134606184296871036500252149102557241448200012613846000000000000000000000000", + "alpha_positive": "14599089143004693331929709923074463194078133748995316848590643413372201233327753382405558814087932655356632762851853109079081799465093012681762487771448721379275899993693077/21347932422476338026665252383889285701363091466375187261491441324959105388826958499103068038366782346134606184296871036500252149102557241448200012613846000000000000000000000000", + "artificial_boundary": "597800504185909483519954860306355776158125966921884568201654674443328572005243564208460164666395118316745146552101930718181587973191108171648955154021295653835862172300018920769/85391729689905352106661009535557142805452365865500749045965765299836421555307833996412272153467129384538424737187484146001008596410228965792800050455384000000000000000000000000", + "balanced_prefix_above_kappa": "3489764509773230157500264033422959646896513094785890999419006056359905255667829939600427201369466619871833455246144379024380422597096865171620792747/6671228882023855633332891369965401781675966083242246019216075414049720434008424530969708761989619483167064432592772198906328796594549137952562503941826875000000000000", + "beta_below_one": "999999999999999999999999/1000000000000000000000000", + "beta_positive": "1/1000000000000000000000000", + "bit_positive": "43797267429014079995757239262391962117434390640040309258248209746097446561494013805623607295240161391846164137827699981079231/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "bulk_exposure_above_kappa": "29951388207679995757239262391962117434390640040309258248209746097446561494013805623607295240161391846164137827699981079231/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_below_one": "31978101366285492960002113424166071447955362800437219107762838012561341916759562251345397942449826480798090723554693445249621776346164137827699981079231/32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_positive": "21898633714507039997886575833928552044637199562780892237161987438658083240437748654602057550173519201909276445306554750378223653835862172300018920769/32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cell_above_band": "21333333333333333333333301326033788761830986667373808055357149318454266812406369254279337520447305586520750448465980816608826932696907851564481749873925448721379275899993693077/42695864844952676053330504767778571402726182932750374522982882649918210777653916998206136076733564692269212368593742073000504298205114482896400025227692000000000000000000000000", + "compact_leaf": "530756488994112002121401736681244454210800437219107762838012561341916759562251345397942449826480798090723554693445249621776346164137827699981079231/32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_phase_layer_above_kappa": "5583612541670957013831409120850543490391570270111692411476778944455185929515833489881433970657127408403760461090738858003490426029280432995972544295193693077/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923000000000000000000000000", + "compact_reservations": "1/4000000000000000000000000", + "complex_above_bit": "1061512977988224004242760737608037882565609359959690741751790253902553438505986194376392704759838608153835862172300018920769/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_below_one_over32": "30549081556140589/1000000000000000000", + "coordinate_movement_above_kappa": "29951388207679995757239262391962117434390640040309258248209746097446561494013805623607295240161391846164137827699981079231/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "delta_below_one_eighth": "999999999999999999999999/8000000000000000000000000", + "delta_positive": "1/8000000000000000000000000", + "dimension_above_kappa": "6662104451309477703490193139807828375824297950180713627680437680736170565410581525390196493678210456433362768776694420965504658651595241071817918655269990171620792747/6671228882023855633332891369965401781675966083242246019216075414049720434008424530969708761989619483167064432592772198906328796594549137952562503941826875000000000000", + "epsilon_below_one": "7299544571502346665970191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923", + "epsilon_positive": "10666666666666666666666656000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923", + "gamma_sublinear": "1/2000000000000000000000000", + "guard_width": "7299544571502346665970191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923", + "lambda_above_internal": "43797267429014079995757239262391962117434390640040309258248209746097446561494013805623607295240161391846164137827699981079231/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_sigma": "1061512977988224004242804534875466896645605117198953133713907688293193478815244442586138802206400102167641485779595259082160846164137827699981079231/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_tau": "43797267429014079995757239262391962117434390640040309258248209746097446561494013805623607295240161391846164137827699981079231/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_above_lambda": "43797267429014079995757239262391962117434390640040309258248209746097446561494013805623607295240161391846164137827699981079231/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_below_one": "21898633714507039997878575833928552044637199562780892237161987438658083240437748654602057550173519201909276445306554750378223653835862172300018920769/32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "leaf_saving_above_bit": "1061512977988224004242715878827630880261609359959690741751790253902553438505986194376392704759838608153835862172300018920769/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "literal_scalar_guard": "1", + "phase_boundary": "11679271314403754665541633145217322921459840473957864550302378421551123467936053561791951140731463428435395903477645809028651978953644723041759965002248721379275899993693077/17078345937981070421332201907111428561090473173100149809193153059967284311061566799282454430693425876907684947437496829200201719282045793158560010091076800000000000000000000000", + "phase_local": "58396356572018773327750861590931567283352532874557101322914618290688367714203250691609673914434971059175185653464962609835529107136817357281800329309448721379275899993693077/85391729689905352106661009535557142805452365865500749045965765299836421555307833996412272153467129384538424737187484146001008596410228965792800050455384000000000000000000000000", + "prime_interval_packing": "7299544571502346665970191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923", + "q_below_internal": "43797267429014079995757239262391962117434390640040309258248209746097446561494013805623607295240161391846164137827699981079231/32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_leaf": "530756488994112002121401736681244454210800437219107762838012561341916759562251345397942449826480798090723554693445249621776346164137827699981079231/32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_reservations": "1/4000000000000000000000000", + "q_positive": "21898633714507039997878575833928552044637199562780892237161987438658083240437748654602057550173519201909276445306554750378223653835862172300018920769/32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "record_suffix": "7299544571502346665970191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923/10673966211238169013332626191944642850681545733187593630745720662479552694413479249551534019183391173067303092148435518250126074551278620724100006306923", + "row_product_gap": "23971789/25", + "scalar_work_above_kappa": "44668975051131134777834366295187691535632516931713671604969646775686124792995528813406218625995153550968295159847555903076551159116765322918125423061593693077/85391729689905352106661009535557142805452365865500749045965765299836421555307833996412272153467129384538424737187484146001008596410228965792800050455384000000000000000000000000", + "short_record_fallback": "682199176113984808383777786755476398995587220658046826627043597910027339000835801467064124956003269625705639863724505215126765339082700077246845517588786369571092415908018288525420941121169180994894734134842718577135536017065235751360532987407203565539898804718617785131833183787/683133837519242816853288076284457142443618926924005992367726122398691372442462671971298177227737035076307397897499873168008068771281831726342400403643072000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "small_field_exposure": "1/1000000000000000000000000" + } + }, + "bit": { + "accepted": { + "bad_fraction": "1/10000000000000000", + "edge_count": 878835, + "fallback_children_per_edge": 165888, + "fallback_lower": "793269737424012048782204709737475429056805366129099/220320312500000000000000000000000000000000000000000000000000000", + "fallback_upper": "396634868712006024391102354868737714528402756623039/110160156250000000000000000000000000000000000000000000000000000", + "lower": "660960937499999998864270652022992664627287751551278814535887297/660960937500000000000000000000000000000000000000000000000000000", + "raw": { + "lower": "676823999997563074203646582657685555710029133070447/676824000000000000000000000000000000000000000000000", + "saving": "136866460715669/200000000000000000", + "strict_gap_lower": "203077149696118111859537024164237774681/56402000000000000000000000000000000000000000000000", + "terms": [ + { + "child": 1, + "contribution_lower": "421732463478224728713349782438756887013156503853/4512160000000000000000000000000000000000000000000", + "contribution_upper": "210866231739112364356674891219378443506578291033/2256080000000000000000000000000000000000000000000", + "exp_lower": "501465473814773755901723879237523052334312133/500000000000000000000000000000000000000000000", + "exp_upper": "250732736907386877950861939618761526167156113/250000000000000000000000000000000000000000000", + "log_lower": "2138333059508027655521093419109790556760740759/500000000000000000000000000000000000000000000", + "log_upper": "4276666119016055311042186838219581113521481519/1000000000000000000000000000000000000000000000", + "multiplicity": 378450 + }, + { + "child": 2, + "contribution_lower": "30295202442126062293700199130751820764297949434041/338412000000000000000000000000000000000000000000000", + "contribution_upper": "126230010175525259557084163044799253184574791701/1410050000000000000000000000000000000000000000000", + "exp_lower": "1002455327160784298788928199952080366774691421/1000000000000000000000000000000000000000000000", + "exp_upper": "12530691589509803734861602499401004584683643/12500000000000000000000000000000000000000000", + "log_lower": "447939867307013750203119339595175568180747673/125000000000000000000000000000000000000000000", + "log_upper": "716703787691222000324990943352280909089196277/200000000000000000000000000000000000000000000", + "multiplicity": 181326 + }, + { + "child": 3, + "contribution_lower": "152957296918801929371501730502469034665505061101/2256080000000000000000000000000000000000000000000", + "contribution_upper": "1223658375350415434972013844019752277324040494913/18048640000000000000000000000000000000000000000000", + "exp_lower": "125272151448650228805488722770244909635958281/125000000000000000000000000000000000000000000", + "exp_upper": "1002177211589201830443909782161959277087666253/1000000000000000000000000000000000000000000000", + "log_lower": "39725672879349320245586770016213192610924887/12500000000000000000000000000000000000000000", + "log_upper": "3178053830347945619646941601297055408873990961/1000000000000000000000000000000000000000000000", + "multiplicity": 91575 + }, + { + "child": 4, + "contribution_lower": "732447330471654347107958962222257300456262347559/28201000000000000000000000000000000000000000000000", + "contribution_upper": "732447330471654347107958962222257300456262349021/28201000000000000000000000000000000000000000000000", + "exp_lower": "1001979932245765180722242082383388919912807589/1000000000000000000000000000000000000000000000", + "exp_upper": "1001979932245765180722242082383388919912807591/1000000000000000000000000000000000000000000000", + "log_lower": "462459481263386350753235615248516476379277/160000000000000000000000000000000000000000", + "log_upper": "2890371757896164692207722595303227977370481251/1000000000000000000000000000000000000000000000", + "multiplicity": 26316 + }, + { + "child": 5, + "contribution_lower": "310816807279583560640265057395113183708951865831/11280400000000000000000000000000000000000000000000", + "contribution_upper": "248653445823666848512212045916090546967161492913/9024320000000000000000000000000000000000000000000", + "exp_lower": "250456734310703916712542350842154056171596991/250000000000000000000000000000000000000000000", + "exp_upper": "200365387448563133370033880673723244937277593/200000000000000000000000000000000000000000000", + "log_lower": "666807051645488734110356876248348368498970041/250000000000000000000000000000000000000000000", + "log_upper": "533445641316390987288285500998678694799176033/200000000000000000000000000000000000000000000", + "multiplicity": 22338 + }, + { + "child": 6, + "contribution_lower": "280977396572503800586960979389367042613064950441/14100500000000000000000000000000000000000000000000", + "contribution_upper": "561954793145007601173921958778734085226129901443/28201000000000000000000000000000000000000000000000", + "exp_lower": "500850974282537968960714758269816475246105081/500000000000000000000000000000000000000000000", + "exp_upper": "1001701948565075937921429516539632950492210163/1000000000000000000000000000000000000000000000", + "log_lower": "1242453324894000155114854739919439420399245413/500000000000000000000000000000000000000000000", + "log_upper": "2484906649788000310229709479838878840798490827/1000000000000000000000000000000000000000000000", + "multiplicity": 13464 + }, + { + "child": 7, + "contribution_lower": "4269804960011733752221548173710478252788589737941/225608000000000000000000000000000000000000000000000", + "contribution_upper": "1067451240002933438055387043427619563197147435551/56402000000000000000000000000000000000000000000000", + "exp_lower": "1001596284309578642322671398946863301146748707/1000000000000000000000000000000000000000000000", + "exp_upper": "250399071077394660580667849736715825286687177/250000000000000000000000000000000000000000000", + "log_lower": "2330755969960742005936834094776401383884396789/1000000000000000000000000000000000000000000000", + "log_upper": "233075596996074200593683409477640138388439679/100000000000000000000000000000000000000000000", + "multiplicity": 10962 + }, + { + "child": 8, + "contribution_lower": "617928438633733349104908502638666758157907132859/56402000000000000000000000000000000000000000000000", + "contribution_upper": "154482109658433337276227125659666689539476783369/14100500000000000000000000000000000000000000000000", + "exp_lower": "1001504762777525687366140198766072541584938627/1000000000000000000000000000000000000000000000", + "exp_upper": "250376190694381421841535049691518135396234657/250000000000000000000000000000000000000000000", + "log_lower": "439444915467243876558098094769010281858996223/200000000000000000000000000000000000000000000", + "log_upper": "549306144334054845697622618461262852323745279/250000000000000000000000000000000000000000000", + "multiplicity": 5553 + }, + { + "child": 9, + "contribution_lower": "690607054968812996730334635398906173667704466121/56402000000000000000000000000000000000000000000000", + "contribution_upper": "1104971287950100794768535416638249877868327146897/90243200000000000000000000000000000000000000000000", + "exp_lower": "125178005250827079342094369294708387469223213/125000000000000000000000000000000000000000000", + "exp_upper": "200284808401323326947350990871533419950757141/200000000000000000000000000000000000000000000", + "log_lower": "2079441541679835928251696364374529704226500403/1000000000000000000000000000000000000000000000", + "log_upper": "519860385419958982062924091093632426056625101/250000000000000000000000000000000000000000000", + "multiplicity": 5517 + }, + { + "child": 10, + "contribution_lower": "153607372306541707588045627149319875148458662367/9024320000000000000000000000000000000000000000000", + "contribution_upper": "384018430766354268970114067873299687871146656301/22560800000000000000000000000000000000000000000000", + "exp_lower": "200270368065895316281676176205110658602944801/200000000000000000000000000000000000000000000", + "exp_upper": "500675920164738290704190440512776646507362003/500000000000000000000000000000000000000000000", + "log_lower": "197408102602200962702419538353521690592038003/100000000000000000000000000000000000000000000", + "log_upper": "1974081026022009627024195383535216905920380031/1000000000000000000000000000000000000000000000", + "multiplicity": 6903 + }, + { + "child": 11, + "contribution_lower": "490129756656385987769323174428356850597144318207/45121600000000000000000000000000000000000000000000", + "contribution_upper": "980259513312771975538646348856713701194288637393/90243200000000000000000000000000000000000000000000", + "exp_lower": "500643265226134818967643691959506486820372133/500000000000000000000000000000000000000000000", + "exp_upper": "1001286530452269637935287383919012973640744267/1000000000000000000000000000000000000000000000", + "log_lower": "234846355777210595872530407531806476712471833/125000000000000000000000000000000000000000000", + "log_upper": "375754169243536953396048652050890362739954933/200000000000000000000000000000000000000000000", + "multiplicity": 4005 + }, + { + "child": 12, + "contribution_lower": "4466473249637241285883414428371540753390168352657/112804000000000000000000000000000000000000000000000", + "contribution_upper": "2233236624818620642941707214185770376695084178559/56402000000000000000000000000000000000000000000000", + "exp_lower": "1001226910925182982713161718980394699258051637/1000000000000000000000000000000000000000000000", + "exp_upper": "500613455462591491356580859490197349629025819/500000000000000000000000000000000000000000000", + "log_lower": "447939867307013750203119339595175568180747673/250000000000000000000000000000000000000000000", + "log_upper": "1791759469228055000812477358380702272722990693/1000000000000000000000000000000000000000000000", + "multiplicity": 13383 + }, + { + "child": 13, + "contribution_lower": "695013650585549118602915810332219867785902718243/45121600000000000000000000000000000000000000000000", + "contribution_upper": "1737534126463872796507289525830549669464756797343/112804000000000000000000000000000000000000000000000", + "exp_lower": "200234413882324724460649902141233035950994733/200000000000000000000000000000000000000000000", + "exp_upper": "500586034705811811151624755353082589877486833/500000000000000000000000000000000000000000000", + "log_lower": "1711716761554518574988699396654262508716213573/1000000000000000000000000000000000000000000000", + "log_upper": "855858380777259287494349698327131254358106787/500000000000000000000000000000000000000000000", + "multiplicity": 4806 + }, + { + "child": 14, + "contribution_lower": "3875340539831125510140151775071216351727448593501/112804000000000000000000000000000000000000000000000", + "contribution_upper": "968835134957781377535037943767804087931862149343/28201000000000000000000000000000000000000000000000", + "exp_lower": "1001121296778900932611767443831365629482678531/1000000000000000000000000000000000000000000000", + "exp_upper": "250280324194725233152941860957841407370669633/250000000000000000000000000000000000000000000", + "log_lower": "818804394700398348259800986659112407904448327/500000000000000000000000000000000000000000000", + "log_upper": "327521757880159339303920394663644963161779331/200000000000000000000000000000000000000000000", + "multiplicity": 9954 + }, + { + "child": 15, + "contribution_lower": "3784059836813636162757703998855519161567603103/360972800000000000000000000000000000000000000000", + "contribution_upper": "189202991840681808137885199942775958078380155339/18048640000000000000000000000000000000000000000000", + "exp_lower": "20021480618061566998718010575955127838982027/20000000000000000000000000000000000000000000", + "exp_upper": "1001074030903078349935900528797756391949101351/1000000000000000000000000000000000000000000000", + "log_lower": "784307958956922622523091134035433884674194803/500000000000000000000000000000000000000000000", + "log_upper": "1568615917913845245046182268070867769348389607/1000000000000000000000000000000000000000000000", + "multiplicity": 2835 + }, + { + "child": 16, + "contribution_lower": "16141605825717577198089696118115350728951112317/440640625000000000000000000000000000000000000000", + "contribution_upper": "25826569321148123516943513788984561166321779733/705025000000000000000000000000000000000000000000", + "exp_lower": "125128727331144009287517024171436827356210173/125000000000000000000000000000000000000000000", + "exp_upper": "200205963729830414860027238674298923769936277/200000000000000000000000000000000000000000000", + "log_lower": "1504077396776274073373258352386874841219480981/1000000000000000000000000000000000000000000000", + "log_upper": "752038698388137036686629176193437420609740491/500000000000000000000000000000000000000000000", + "multiplicity": 9288 + }, + { + "child": 17, + "contribution_lower": "263760414256647546025843723655428487782194485209/14100500000000000000000000000000000000000000000000", + "contribution_upper": "105504165702659018410337489462171395112877794189/5640200000000000000000000000000000000000000000000", + "exp_lower": "500494144699520960200841980370832045127503767/500000000000000000000000000000000000000000000", + "exp_upper": "200197657879808384080336792148332818051001507/200000000000000000000000000000000000000000000", + "log_lower": "721726387479919615396326110173227288966639253/500000000000000000000000000000000000000000000", + "log_upper": "1443452774959839230792652220346454577933278507/1000000000000000000000000000000000000000000000", + "multiplicity": 4464 + }, + { + "child": 18, + "contribution_lower": "24998704675558450141574818632781180044252898263/1410050000000000000000000000000000000000000000000", + "contribution_upper": "999948187022338005662992745311247201770115931519/56402000000000000000000000000000000000000000000000", + "exp_lower": "25023728403962412554128947580361541585838737/25000000000000000000000000000000000000000000", + "exp_upper": "1000949136158496502165157903214461663433549481/1000000000000000000000000000000000000000000000", + "log_lower": "346573590279972654708616060729088284037750067/250000000000000000000000000000000000000000000", + "log_upper": "1386294361119890618834464242916353136151000269/1000000000000000000000000000000000000000000000", + "multiplicity": 3996 + }, + { + "child": 19, + "contribution_lower": "58953722794816619050006635290203083291863210033/4512160000000000000000000000000000000000000000000", + "contribution_upper": "589537227948166190500066352902030832918632100919/45121600000000000000000000000000000000000000000000", + "exp_lower": "100091210177956908404085968234640209324046197/100000000000000000000000000000000000000000000", + "exp_upper": "1000912101779569084040859682346402093240461971/1000000000000000000000000000000000000000000000", + "log_lower": "1332227139849614851033159406331727576284102257/1000000000000000000000000000000000000000000000", + "log_upper": "666113569924807425516579703165863788142051129/500000000000000000000000000000000000000000000", + "multiplicity": 2790 + }, + { + "child": 20, + "contribution_lower": "5504823327968775953022768667775928048631025247/70502500000000000000000000000000000000000000000", + "contribution_upper": "2201929331187510381209107467110371219452410101/28201000000000000000000000000000000000000000000", + "exp_lower": "500438484360797813911160787979629822602820477/500000000000000000000000000000000000000000000", + "exp_upper": "200175393744319125564464315191851929041128191/200000000000000000000000000000000000000000000", + "log_lower": "256186769092412863521392652415408067568975979/200000000000000000000000000000000000000000000", + "log_upper": "160116730682758039700870407759630042230609987/125000000000000000000000000000000000000000000", + "multiplicity": 15840 + }, + { + "child": 21, + "contribution_lower": "5260733958767623532735543833472516438470910257833/22560800000000000000000000000000000000000000000000", + "contribution_upper": "52607339587676235327355438334725164384709102630893/225608000000000000000000000000000000000000000000000", + "exp_lower": "100084355131320958330680209148498305623174291/100000000000000000000000000000000000000000000", + "exp_upper": "1000843551313209583306802091484983056231742911/1000000000000000000000000000000000000000000000", + "log_lower": "1232143681292632314541588857853875679236906231/1000000000000000000000000000000000000000000000", + "log_upper": "154017960161579039317698607231734459904613279/125000000000000000000000000000000000000000000", + "multiplicity": 45054 + }, + { + "child": 22, + "contribution_lower": "1530241073729162408455779514650435761893234930717/14100500000000000000000000000000000000000000000000", + "contribution_upper": "765120536864581204227889757325217880946617466123/7050250000000000000000000000000000000000000000000", + "exp_lower": "1000811689816325970213067046860978261539067973/1000000000000000000000000000000000000000000000", + "exp_upper": "500405844908162985106533523430489130769533987/500000000000000000000000000000000000000000000", + "log_lower": "118562366565773945756301113879627524562427453/100000000000000000000000000000000000000000000", + "log_upper": "1185623665657739457563011138796275245624274531/1000000000000000000000000000000000000000000000", + "multiplicity": 20016 + } + ], + "upper": "56401999999796922850303881888140462975835762225319/56402000000000000000000000000000000000000000000000" + }, + "saving": "136866460715669/200000000000000000", + "strict_gap_lower": "189288224662834555895452039189145425368376961/110160156250000000000000000000000000000000000000000000000000000", + "upper": "110160156249999999810711775337165444104547960810854574631623039/110160156250000000000000000000000000000000000000000000000000000" + }, + "atom_beta": "683890597514343780249/1000000000000000000000000", + "atom_lower_gap": "187391744387021581/200000000000000000000000000000000000000000", + "atom_threshold": "136866460715669/200129174480715669", + "atom_upper_gap": "199726443760994262487900587391744387021581/200000000000000000000000000000000000000000", + "coarse_saving": "136866460715669/200000000000000000", + "denominator": "1000000000000000000", + "iterations": 53, + "ordinary_saving": "136778119502868756049612608255612978419/200000000000000000000000000000000000000000", + "rejected": { + "bad_fraction": "1/10000000000000000", + "edge_count": 878835, + "fallback_children_per_edge": 165888, + "fallback_lower": "793269737424012052174754519019510294760533265478913/220320312500000000000000000000000000000000000000000000000000000", + "fallback_upper": "1586539474848024104349509038039020589521066826773687/440640625000000000000000000000000000000000000000000000000000000", + "lower": "660960937500000000246877705882789230544957789318670271671436739/660960937500000000000000000000000000000000000000000000000000000", + "raw": { + "lower": "338411999998781537809718102899847663097804420318407/338412000000000000000000000000000000000000000000000", + "saving": "342166151789173/500000000000000000", + "strict_gap_lower": "812308126854598066768224601463715195891/225608000000000000000000000000000000000000000000000", + "terms": [ + { + "child": 1, + "contribution_lower": "421732463478224730516958720285256528303953198311/4512160000000000000000000000000000000000000000000", + "contribution_upper": "843464926956449461033917440570513056607906553889/9024320000000000000000000000000000000000000000000", + "exp_lower": "501465473814773758046324280957498844594474671/500000000000000000000000000000000000000000000", + "exp_upper": "1002930947629547516092648561914997689188949529/1000000000000000000000000000000000000000000000", + "log_lower": "2138333059508027655521093419109790556760740759/500000000000000000000000000000000000000000000", + "log_upper": "4276666119016055311042186838219581113521481519/1000000000000000000000000000000000000000000000", + "multiplicity": 378450 + }, + { + "child": 2, + "contribution_lower": "15147601221063031201131815413236179503383169112887/169206000000000000000000000000000000000000000000000", + "contribution_upper": "5049200407021010400377271804412059834461056471699/56402000000000000000000000000000000000000000000000", + "exp_lower": "501227663580392151190622924894483289877342547/500000000000000000000000000000000000000000000", + "exp_upper": "501227663580392151190622924894483289877342557/500000000000000000000000000000000000000000000", + "log_lower": "447939867307013750203119339595175568180747673/125000000000000000000000000000000000000000000", + "log_upper": "716703787691222000324990943352280909089196277/200000000000000000000000000000000000000000000", + "multiplicity": 181326 + }, + { + "child": 3, + "contribution_lower": "1223658375350415438860866030839484220354925971427/18048640000000000000000000000000000000000000000000", + "contribution_upper": "305914593837603859715216507709871055088731494383/4512160000000000000000000000000000000000000000000", + "exp_lower": "1002177211589201833628882908140445716916401287/1000000000000000000000000000000000000000000000", + "exp_upper": "250544302897300458407220727035111429229100323/250000000000000000000000000000000000000000000", + "log_lower": "39725672879349320245586770016213192610924887/12500000000000000000000000000000000000000000", + "log_upper": "3178053830347945619646941601297055408873990961/1000000000000000000000000000000000000000000000", + "multiplicity": 91575 + }, + { + "child": 4, + "contribution_lower": "183111832617913587306251010090991488483350851773/7050250000000000000000000000000000000000000000000", + "contribution_upper": "366223665235827174612502020181982976966701704277/14100500000000000000000000000000000000000000000000", + "exp_lower": "250494983061441295904584145131315305722778183/250000000000000000000000000000000000000000000", + "exp_upper": "500989966122882591809168290262630611445556367/500000000000000000000000000000000000000000000", + "log_lower": "462459481263386350753235615248516476379277/160000000000000000000000000000000000000000", + "log_upper": "2890371757896164692207722595303227977370481251/1000000000000000000000000000000000000000000000", + "multiplicity": 26316 + }, + { + "child": 5, + "contribution_lower": "1243267229118334245877137651403863844053950493051/45121600000000000000000000000000000000000000000000", + "contribution_upper": "1243267229118334245877137651403863844053950495533/45121600000000000000000000000000000000000000000000", + "exp_lower": "1001826937242815669522270468496264177319863411/1000000000000000000000000000000000000000000000", + "exp_upper": "1001826937242815669522270468496264177319863413/1000000000000000000000000000000000000000000000", + "log_lower": "666807051645488734110356876248348368498970041/250000000000000000000000000000000000000000000", + "log_upper": "533445641316390987288285500998678694799176033/200000000000000000000000000000000000000000000", + "multiplicity": 22338 + }, + { + "child": 6, + "contribution_lower": "561954793145007602570327161145003647607055276147/28201000000000000000000000000000000000000000000000", + "contribution_upper": "140488698286251900642581790286250911901763819177/7050250000000000000000000000000000000000000000000", + "exp_lower": "1001701948565075940410565349634587607142701027/1000000000000000000000000000000000000000000000", + "exp_upper": "250425487141268985102641337408646901785675257/250000000000000000000000000000000000000000000", + "log_lower": "1242453324894000155114854739919439420399245413/500000000000000000000000000000000000000000000", + "log_upper": "2484906649788000310229709479838878840798490827/1000000000000000000000000000000000000000000000", + "multiplicity": 13464 + }, + { + "child": 7, + "contribution_lower": "426980496001173376217342157482581399965614109903/22560800000000000000000000000000000000000000000000", + "contribution_upper": "4269804960011733762173421574825813999656141103293/225608000000000000000000000000000000000000000000000", + "exp_lower": "100159628430957864465714791809191039166224281/100000000000000000000000000000000000000000000", + "exp_upper": "1001596284309578644657147918091910391662242811/1000000000000000000000000000000000000000000000", + "log_lower": "2330755969960742005936834094776401383884396789/1000000000000000000000000000000000000000000000", + "log_upper": "233075596996074200593683409477640138388439679/100000000000000000000000000000000000000000000", + "multiplicity": 10962 + }, + { + "child": 8, + "contribution_lower": "617928438633733350462636055039701493813474514983/56402000000000000000000000000000000000000000000000", + "contribution_upper": "1544821096584333376156590137599253734533686289/141005000000000000000000000000000000000000000000", + "exp_lower": "1001504762777525689566671077860132080734966799/1000000000000000000000000000000000000000000000", + "exp_upper": "2503761906943814223916677694650330201837417/2500000000000000000000000000000000000000000", + "log_lower": "439444915467243876558098094769010281858996223/200000000000000000000000000000000000000000000", + "log_upper": "549306144334054845697622618461262852323745279/250000000000000000000000000000000000000000000", + "multiplicity": 5553 + }, + { + "child": 9, + "contribution_lower": "1104971287950100797066258615165161389271154953913/90243200000000000000000000000000000000000000000000", + "contribution_upper": "2762428219875251992665646537912903473177887387541/225608000000000000000000000000000000000000000000000", + "exp_lower": "200284808401323327363831541628631754444653789/200000000000000000000000000000000000000000000", + "exp_upper": "500712021003308318409578854071579386111634473/500000000000000000000000000000000000000000000", + "log_lower": "2079441541679835928251696364374529704226500403/1000000000000000000000000000000000000000000000", + "log_upper": "519860385419958982062924091093632426056625101/250000000000000000000000000000000000000000000", + "multiplicity": 5517 + }, + { + "child": 10, + "contribution_lower": "153607372306541707891279026276762557047597111133/9024320000000000000000000000000000000000000000000", + "contribution_upper": "48002303845794283716024695711488299077374097277/2820100000000000000000000000000000000000000000000", + "exp_lower": "200270368065895316677026109878438796672225699/200000000000000000000000000000000000000000000", + "exp_upper": "62584490020592286461570659337012123960070531/62500000000000000000000000000000000000000000", + "log_lower": "197408102602200962702419538353521690592038003/100000000000000000000000000000000000000000000", + "log_upper": "1974081026022009627024195383535216905920380031/1000000000000000000000000000000000000000000000", + "multiplicity": 6903 + }, + { + "child": 11, + "contribution_lower": "245064878328192994345082336049071533436957534107/22560800000000000000000000000000000000000000000000", + "contribution_upper": "980259513312771977380329344196286133747830137407/90243200000000000000000000000000000000000000000000", + "exp_lower": "250321632613067409954118831510798297688414233/250000000000000000000000000000000000000000000", + "exp_upper": "1001286530452269639816475326043193190753656933/1000000000000000000000000000000000000000000000", + "log_lower": "234846355777210595872530407531806476712471833/125000000000000000000000000000000000000000000", + "log_upper": "375754169243536953396048652050890362739954933/200000000000000000000000000000000000000000000", + "multiplicity": 4005 + }, + { + "child": 12, + "contribution_lower": "893294649927448258777252033492574042030805789879/22560800000000000000000000000000000000000000000000", + "contribution_upper": "17447161131395473804243203779151836758414175601/440640625000000000000000000000000000000000000000", + "exp_lower": "200245382185036596901423903495309132936741939/200000000000000000000000000000000000000000000", + "exp_upper": "3911042620801496033230935615142756502670741/3906250000000000000000000000000000000000000", + "log_lower": "447939867307013750203119339595175568180747673/250000000000000000000000000000000000000000000", + "log_upper": "1791759469228055000812477358380702272722990693/1000000000000000000000000000000000000000000000", + "multiplicity": 13383 + }, + { + "child": 13, + "contribution_lower": "3475068252927745598962911627743498693129346055221/225608000000000000000000000000000000000000000000000", + "contribution_upper": "868767063231936399740727906935874673282336514673/56402000000000000000000000000000000000000000000000", + "exp_lower": "1001172069411623624016972523118265252990304251/1000000000000000000000000000000000000000000000", + "exp_upper": "250293017352905906004243130779566313247576063/250000000000000000000000000000000000000000000", + "log_lower": "1711716761554518574988699396654262508716213573/1000000000000000000000000000000000000000000000", + "log_upper": "855858380777259287494349698327131254358106787/500000000000000000000000000000000000000000000", + "multiplicity": 4806 + }, + { + "child": 14, + "contribution_lower": "3875340539831125516486443505019895754344247415289/112804000000000000000000000000000000000000000000000", + "contribution_upper": "96883513495778137912161087625497393858606185479/2820100000000000000000000000000000000000000000000", + "exp_lower": "1001121296778900934251212478692817296394793959/1000000000000000000000000000000000000000000000", + "exp_upper": "25028032419472523356280311967320432409869849/25000000000000000000000000000000000000000000", + "log_lower": "818804394700398348259800986659112407904448327/500000000000000000000000000000000000000000000", + "log_upper": "327521757880159339303920394663644963161779331/200000000000000000000000000000000000000000000", + "multiplicity": 9954 + }, + { + "child": 15, + "contribution_lower": "18920299184068180843467202466099282513069797047/1804864000000000000000000000000000000000000000000", + "contribution_upper": "189202991840681808434672024660992825130697970659/18048640000000000000000000000000000000000000000000", + "exp_lower": "100107403090307835150620118868250172026824323/100000000000000000000000000000000000000000000", + "exp_upper": "1001074030903078351506201188682501720268243231/1000000000000000000000000000000000000000000000", + "log_lower": "784307958956922622523091134035433884674194803/500000000000000000000000000000000000000000000", + "log_upper": "1568615917913845245046182268070867769348389607/1000000000000000000000000000000000000000000000", + "multiplicity": 2835 + }, + { + "child": 16, + "contribution_lower": "8070802912858788611183960294124692097928151973/220320312500000000000000000000000000000000000000", + "contribution_upper": "129132846605740617778943364705995073566850431697/3525125000000000000000000000000000000000000000000", + "exp_lower": "62564363665572004737860157318796062774636837/62500000000000000000000000000000000000000000", + "exp_upper": "1001029818649152075805762517100737004394189393/1000000000000000000000000000000000000000000000", + "log_lower": "1504077396776274073373258352386874841219480981/1000000000000000000000000000000000000000000000", + "log_upper": "752038698388137036686629176193437420609740491/500000000000000000000000000000000000000000000", + "multiplicity": 9288 + }, + { + "child": 17, + "contribution_lower": "263760414256647546406569425538743129441922950201/14100500000000000000000000000000000000000000000000", + "contribution_upper": "527520828513295092813138851077486258883845900929/28201000000000000000000000000000000000000000000000", + "exp_lower": "500494144699520960923281642388506886986571063/500000000000000000000000000000000000000000000", + "exp_upper": "1000988289399041921846563284777013773973142127/1000000000000000000000000000000000000000000000", + "log_lower": "721726387479919615396326110173227288966639253/500000000000000000000000000000000000000000000", + "log_upper": "1443452774959839230792652220346454577933278507/1000000000000000000000000000000000000000000000", + "multiplicity": 4464 + }, + { + "child": 18, + "contribution_lower": "199989637404467601409843055678474433592414754043/11280400000000000000000000000000000000000000000000", + "contribution_upper": "499974093511169003524607639196186083981036885607/28201000000000000000000000000000000000000000000000", + "exp_lower": "200189827231699300710553609287762195788202957/200000000000000000000000000000000000000000000", + "exp_upper": "500474568079248251776384023219405489470507393/500000000000000000000000000000000000000000000", + "log_lower": "346573590279972654708616060729088284037750067/250000000000000000000000000000000000000000000", + "log_upper": "1386294361119890618834464242916353136151000269/1000000000000000000000000000000000000000000000", + "multiplicity": 3996 + }, + { + "child": 19, + "contribution_lower": "294768613974083095642731923963143350904955682327/22560800000000000000000000000000000000000000000000", + "contribution_upper": "589537227948166191285463847926286701809911365243/45121600000000000000000000000000000000000000000000", + "exp_lower": "500456050889784542687150974470532004932013043/500000000000000000000000000000000000000000000", + "exp_upper": "1000912101779569085374301948941064009864026087/1000000000000000000000000000000000000000000000", + "log_lower": "1332227139849614851033159406331727576284102257/1000000000000000000000000000000000000000000000", + "log_upper": "666113569924807425516579703165863788142051129/500000000000000000000000000000000000000000000", + "multiplicity": 2790 + }, + { + "child": 20, + "contribution_lower": "2752411663984387980037041590930125354590469191/35251250000000000000000000000000000000000000000", + "contribution_upper": "440385866237502076805926654548820056734475071/5640200000000000000000000000000000000000000000", + "exp_lower": "250219242180398907276094690084556850417315381/250000000000000000000000000000000000000000000", + "exp_upper": "40035078748863825164175150413529096066770461/40000000000000000000000000000000000000000000", + "log_lower": "256186769092412863521392652415408067568975979/200000000000000000000000000000000000000000000", + "log_upper": "160116730682758039700870407759630042230609987/125000000000000000000000000000000000000000000", + "multiplicity": 15840 + }, + { + "child": 21, + "contribution_lower": "26303669793838117696087619698648095401264889037443/112804000000000000000000000000000000000000000000000", + "contribution_upper": "52607339587676235392175239397296190802529778127449/225608000000000000000000000000000000000000000000000", + "exp_lower": "500421775656604792269992574599016330903199761/500000000000000000000000000000000000000000000", + "exp_upper": "1000843551313209584539985149198032661806399523/1000000000000000000000000000000000000000000000", + "log_lower": "1232143681292632314541588857853875679236906231/1000000000000000000000000000000000000000000000", + "log_upper": "154017960161579039317698607231734459904613279/125000000000000000000000000000000000000000000", + "multiplicity": 45054 + }, + { + "child": 22, + "contribution_lower": "306048214745832482054013909165048089767518969191/2820100000000000000000000000000000000000000000000", + "contribution_upper": "382560268432290602567517386456310112209398711871/3525125000000000000000000000000000000000000000000", + "exp_lower": "200162337963265194279930614234825434772739679/200000000000000000000000000000000000000000000", + "exp_upper": "250202922454081492849913267793531793465924599/250000000000000000000000000000000000000000000", + "log_lower": "118562366565773945756301113879627524562427453/100000000000000000000000000000000000000000000", + "log_upper": "1185623665657739457563011138796275245624274531/1000000000000000000000000000000000000000000000", + "multiplicity": 20016 + } + ], + "upper": "225607999999187691873145401933231775398536284804109/225608000000000000000000000000000000000000000000000" + }, + "saving": "342166151789173/500000000000000000", + "strict_gap_lower": "-164585137255192820363305201847546457451773687/440640625000000000000000000000000000000000000000000000000000000", + "upper": "440640625000000000164585137255192820363305201847546457451773687/440640625000000000000000000000000000000000000000000000000000000" + }, + "saving": "136866460715669/200000000000000000" + }, + "bit_profile": { + "L": 0, + "N": 5808, + "W": 56402, + "child_multiplicities": { + "1": 378450, + "10": 6903, + "11": 4005, + "12": 13383, + "13": 4806, + "14": 9954, + "15": 2835, + "16": 9288, + "17": 4464, + "18": 3996, + "19": 2790, + "2": 181326, + "20": 15840, + "21": 45054, + "22": 20016, + "3": 91575, + "4": 26316, + "5": 22338, + "6": 13464, + "7": 10962, + "8": 5553, + "9": 5517 + }, + "m": 72, + "maxchild": 22, + "total_rank": 4055136 + }, + "complex": { + "accepted": { + "lower": "265143999999999999505356323836919762528275607173151/265144000000000000000000000000000000000000000000000", + "saving": "700918443859411/1000000000000000000", + "strict_gap_lower": "44967606923916385224702216933483/24104000000000000000000000000000000000000000000000", + "terms": [ + { + "child": 1, + "contribution_lower": "3657976278983162156629452083232443706090328446171/33143000000000000000000000000000000000000000000000", + "contribution_upper": "14631905115932648626517808332929774824361316629539/132572000000000000000000000000000000000000000000000", + "exp_lower": "250735230583532946509661531512265659475654839/250000000000000000000000000000000000000000000", + "exp_upper": "1002940922334131786038646126049062637902619551/1000000000000000000000000000000000000000000000", + "log_lower": "2094827371013212772437210468172915786272348773/500000000000000000000000000000000000000000000", + "log_upper": "4189654742026425544874420936345831572544697547/1000000000000000000000000000000000000000000000", + "multiplicity": 87534 + }, + { + "child": 2, + "contribution_lower": "605026417616720417449286284613043278365812120993/6026000000000000000000000000000000000000000000000", + "contribution_upper": "831911324222990573992768641342934507752991682133/8285750000000000000000000000000000000000000000000", + "exp_lower": "1002453772222311280605836591466105748158447557/1000000000000000000000000000000000000000000000", + "exp_upper": "125306721527788910075729573933263218519805947/125000000000000000000000000000000000000000000", + "log_lower": "3496507561466480235457188814887655004469197411/1000000000000000000000000000000000000000000000", + "log_upper": "874126890366620058864297203721913751117299353/250000000000000000000000000000000000000000000", + "multiplicity": 39834 + }, + { + "child": 3, + "contribution_lower": "2983356650125030426922318925963025811710867907253/26514400000000000000000000000000000000000000000000", + "contribution_upper": "238668532010002434153785514077042064936869433771/2121152000000000000000000000000000000000000000000", + "exp_lower": "100216891737210871272878461687091464668308237/100000000000000000000000000000000000000000000", + "exp_upper": "8017351338976869701830276934967317173464659/8000000000000000000000000000000000000000000", + "log_lower": "772760613339578963369793924855826466974301747/250000000000000000000000000000000000000000000", + "log_upper": "3091042453358315853479175699423305867897206989/1000000000000000000000000000000000000000000000", + "multiplicity": 29769 + }, + { + "child": 4, + "contribution_lower": "183359935147561284374033961635831031417307506723/2882000000000000000000000000000000000000000000000", + "contribution_upper": "183359935147561284374033961635831031417307507089/2882000000000000000000000000000000000000000000000", + "exp_lower": "1001966858729843084011114544458093067854139381/1000000000000000000000000000000000000000000000", + "exp_upper": "1001966858729843084011114544458093067854139383/1000000000000000000000000000000000000000000000", + "log_lower": "2803360380906534926039956693429478436393697277/1000000000000000000000000000000000000000000000", + "log_upper": "1401680190453267463019978346714739218196848639/500000000000000000000000000000000000000000000", + "multiplicity": 12627 + }, + { + "child": 5, + "contribution_lower": "4883824519891490451242215574057470271710917717/132572000000000000000000000000000000000000000000", + "contribution_upper": "19535298079565961804968862296229881086843670907/530288000000000000000000000000000000000000000000", + "exp_lower": "125226269740807447467749117283524878761818403/125000000000000000000000000000000000000000000", + "exp_upper": "500905078963229789870996469134099515047273613/500000000000000000000000000000000000000000000", + "log_lower": "2580216829592325170273661603119643933019096191/1000000000000000000000000000000000000000000000", + "log_upper": "20157943981190040392762981274372218226711689/7812500000000000000000000000000000000000000", + "multiplicity": 5850 + }, + { + "child": 6, + "contribution_lower": "964619902976933316363941397473463811794973523721/26514400000000000000000000000000000000000000000000", + "contribution_upper": "964619902976933316363941397473463811794973525647/26514400000000000000000000000000000000000000000000", + "exp_lower": "1001682142239806143680105293326546014324998467/1000000000000000000000000000000000000000000000", + "exp_upper": "1001682142239806143680105293326546014324998469/1000000000000000000000000000000000000000000000", + "log_lower": "2397895272798370544061943577965129299821706853/1000000000000000000000000000000000000000000000", + "log_upper": "1198947636399185272030971788982564649910853427/500000000000000000000000000000000000000000000", + "multiplicity": 4815 + }, + { + "child": 7, + "contribution_lower": "309361144318029611956715772775685617607056481187/16571500000000000000000000000000000000000000000000", + "contribution_upper": "2474889154544236895653726182205484940856451851967/132572000000000000000000000000000000000000000000000", + "exp_lower": "125196739910169814632422409055315911617586597/125000000000000000000000000000000000000000000", + "exp_upper": "1001573919281358517059379272442527292940692777/1000000000000000000000000000000000000000000000", + "log_lower": "140234037060694514985566762056415740181725801/62500000000000000000000000000000000000000000", + "log_upper": "2243744592971112239769068192902651842907612817/1000000000000000000000000000000000000000000000", + "multiplicity": 2118 + }, + { + "child": 8, + "contribution_lower": "766633079123344880773047658820744542391139830707/16571500000000000000000000000000000000000000000000", + "contribution_upper": "27877566513576177482656278502572528814223266599/602600000000000000000000000000000000000000000000", + "exp_lower": "500740090870898027937980182116750190980496297/500000000000000000000000000000000000000000000", + "exp_upper": "200296036348359211175192072846700076392198519/200000000000000000000000000000000000000000000", + "log_lower": "2110213200346589616622724571971301868318197143/1000000000000000000000000000000000000000000000", + "log_upper": "263776650043323702077840571496412733539774643/125000000000000000000000000000000000000000000", + "multiplicity": 4593 + }, + { + "child": 9, + "contribution_lower": "351490524835596636238435035752601087751087137249/24104000000000000000000000000000000000000000000000", + "contribution_upper": "219681578022247897649021897345375679844429461/15065000000000000000000000000000000000000000000", + "exp_lower": "1001397506654121470764772181631342130344977599/1000000000000000000000000000000000000000000000", + "exp_upper": "625873441658825919227982613519588831465611/625000000000000000000000000000000000000000", + "log_lower": "199243016469020616208393046250078016324971643/100000000000000000000000000000000000000000000", + "log_upper": "1992430164690206162083930462500780163249716431/1000000000000000000000000000000000000000000000", + "multiplicity": 1287 + }, + { + "child": 10, + "contribution_lower": "93123090805778721698743405816797870317238025839/2651440000000000000000000000000000000000000000000", + "contribution_upper": "23280772701444680424685851454199467579309506483/662860000000000000000000000000000000000000000000", + "exp_lower": "1001323557051384104287563503406428713088580923/1000000000000000000000000000000000000000000000", + "exp_upper": "250330889262846026071890875851607178272145231/250000000000000000000000000000000000000000000", + "log_lower": "1887069649032379860856429481661467364943596057/1000000000000000000000000000000000000000000000", + "log_upper": "943534824516189930428214740830733682471798029/500000000000000000000000000000000000000000000", + "multiplicity": 2790 + }, + { + "child": 11, + "contribution_lower": "35444485983587056628708987177498676151966352817/2410400000000000000000000000000000000000000000000", + "contribution_upper": "88611214958967641571772467943746690379915882131/6026000000000000000000000000000000000000000000000", + "exp_lower": "200251333240604839710220266539540543231448321/200000000000000000000000000000000000000000000", + "exp_upper": "500628333101512099275550666348851358078620803/500000000000000000000000000000000000000000000", + "log_lower": "447939867307013750203119339595175568180747673/250000000000000000000000000000000000000000000", + "log_upper": "1791759469228055000812477358380702272722990693/1000000000000000000000000000000000000000000000", + "multiplicity": 1062 + }, + { + "child": 12, + "contribution_lower": "1797646706164545148237440718057380627229138290519/33143000000000000000000000000000000000000000000000", + "contribution_upper": "3595293412329090296474881436114761254458276584629/66286000000000000000000000000000000000000000000000", + "exp_lower": "500597801772360108114018579241821394382940209/500000000000000000000000000000000000000000000", + "exp_upper": "1001195603544720216228037158483642788765880419/1000000000000000000000000000000000000000000000", + "log_lower": "1704748092238425234644711456506952731746206719/1000000000000000000000000000000000000000000000", + "log_upper": "332958611765317428641545206349014205419181/195312500000000000000000000000000000000000", + "multiplicity": 3591 + }, + { + "child": 13, + "contribution_lower": "1652881206578798826091432366520162164266615044557/265144000000000000000000000000000000000000000000000", + "contribution_upper": "25826268852793731657678630726877533816665860097/4142875000000000000000000000000000000000000000000", + "exp_lower": "1001139434632827877705289137807487682778083007/1000000000000000000000000000000000000000000000", + "exp_upper": "15642803666137935589145142778241995043407547/15625000000000000000000000000000000000000000", + "log_lower": "1624705384564888808820933494780512967739429601/1000000000000000000000000000000000000000000000", + "log_upper": "812352692282444404410466747390256483869714801/500000000000000000000000000000000000000000000", + "multiplicity": 381 + }, + { + "child": 14, + "contribution_lower": "519964812779411455369640294339543014840887489059/13257200000000000000000000000000000000000000000000", + "contribution_upper": "649956015974264319212050367924428768551109361973/16571500000000000000000000000000000000000000000000", + "exp_lower": "200217486630501137993700536903944172060411047/200000000000000000000000000000000000000000000", + "exp_upper": "250271858288126422492125671129930215075513809/250000000000000000000000000000000000000000000", + "log_lower": "775298706205583465175918035722237637416056341/500000000000000000000000000000000000000000000", + "log_upper": "1550597412411166930351836071444475274832112683/1000000000000000000000000000000000000000000000", + "multiplicity": 2226 + }, + { + "child": 15, + "contribution_lower": "564285697468259267242412756151745418989422023847/5302880000000000000000000000000000000000000000000", + "contribution_upper": "5642856974682592672424127561517454189894220244107/53028800000000000000000000000000000000000000000000", + "exp_lower": "100103902336040317055599211664315312930534331/100000000000000000000000000000000000000000000", + "exp_upper": "1001039023360403170555992116643153129305343311/1000000000000000000000000000000000000000000000", + "log_lower": "740802270462107739439208183098559114185802817/500000000000000000000000000000000000000000000", + "log_upper": "296320908184843095775683273239423645674321127/200000000000000000000000000000000000000000000", + "multiplicity": 5637 + }, + { + "child": 16, + "contribution_lower": "1000993741143294880364098406048636001701620599/188312500000000000000000000000000000000000000000", + "contribution_upper": "5004968705716474401820492030243180008508103/941562500000000000000000000000000000000000000", + "exp_lower": "1000993741143294880364098406048636001701620599/1000000000000000000000000000000000000000000000", + "exp_upper": "5004968705716474401820492030243180008508103/5000000000000000000000000000000000000000000", + "log_lower": "88566626236665269200343278157070331265168563/62500000000000000000000000000000000000000000", + "log_upper": "1417066019786644307205492450513125300242697009/1000000000000000000000000000000000000000000000", + "multiplicity": 264 + }, + { + "child": 17, + "contribution_lower": "1378309811907443535425104966121458494429047078379/265144000000000000000000000000000000000000000000000", + "contribution_upper": "31325222997896443986934203775487693055205615449/6026000000000000000000000000000000000000000000000", + "exp_lower": "1000951206904461536256430621729454244320295627/1000000000000000000000000000000000000000000000", + "exp_upper": "250237801726115384064107655432363561080073907/250000000000000000000000000000000000000000000", + "log_lower": "1356441397970209464624886318472705036956494533/1000000000000000000000000000000000000000000000", + "log_upper": "678220698985104732312443159236352518478247267/500000000000000000000000000000000000000000000", + "multiplicity": 243 + }, + { + "child": 18, + "contribution_lower": "5974688620760157380699107985096568748129890316347/33143000000000000000000000000000000000000000000000", + "contribution_upper": "4779750896608125904559286388077254998503912257853/26514400000000000000000000000000000000000000000000", + "exp_lower": "250227776553174912287938517615134595976458111/250000000000000000000000000000000000000000000", + "exp_upper": "200182221242539929830350814092107676781166489/200000000000000000000000000000000000000000000", + "log_lower": "162410373016282606583337292630325449396777037/125000000000000000000000000000000000000000000", + "log_upper": "1299282984130260852666698341042603595174216297/1000000000000000000000000000000000000000000000", + "multiplicity": 7959 + }, + { + "child": 19, + "contribution_lower": "793942646616805138815531776756443545803666931439/66286000000000000000000000000000000000000000000000", + "contribution_upper": "288706416951565505023829737002343107564969793539/24104000000000000000000000000000000000000000000000", + "exp_lower": "250218293922724594647189340295128756950415043/250000000000000000000000000000000000000000000", + "exp_upper": "1000873175690898378588757361180515027801660173/1000000000000000000000000000000000000000000000", + "log_lower": "311303940714996271216348376114494508826829571/250000000000000000000000000000000000000000000", + "log_upper": "249043152571997016973078700891595607061463657/200000000000000000000000000000000000000000000", + "multiplicity": 501 + }, + { + "child": 20, + "contribution_lower": "1000837192528884763921531841114273744191394417/602600000000000000000000000000000000000000000000", + "contribution_upper": "21757330272367060085250692198136385743291183/13100000000000000000000000000000000000000000000", + "exp_lower": "1000837192528884763921531841114273744191394417/1000000000000000000000000000000000000000000000", + "exp_upper": "500418596264442381960765920557136872095697209/500000000000000000000000000000000000000000000", + "log_lower": "1193922468472434551439197360203290796868095923/1000000000000000000000000000000000000000000000", + "log_upper": "298480617118108637859799340050822699217023981/250000000000000000000000000000000000000000000", + "multiplicity": 66 + } + ], + "upper": "24103999999999999955032393076083614775297783066517/24104000000000000000000000000000000000000000000000" + }, + "denominator": "1000000000000000000", + "iterations": 55, + "rejected": { + "lower": "66286000000000000033428585232057842908390904631703/66286000000000000000000000000000000000000000000000", + "saving": "175229610964853/250000000000000000", + "strict_gap_lower": "-1162733399375924970726640217937/2305600000000000000000000000000000000000000000000", + "terms": [ + { + "child": 1, + "contribution_lower": "7315952557966324343910219493388856044364606253953/66286000000000000000000000000000000000000000000000", + "contribution_upper": "57833617059022326829329798366710324461380297837/524000000000000000000000000000000000000000000000", + "exp_lower": "501470461167065895120311158639307426442155477/500000000000000000000000000000000000000000000", + "exp_upper": "1002940922334131790240622317278614852884311149/1000000000000000000000000000000000000000000000", + "log_lower": "2094827371013212772437210468172915786272348773/500000000000000000000000000000000000000000000", + "log_upper": "4189654742026425544874420936345831572544697547/1000000000000000000000000000000000000000000000", + "multiplicity": 87534 + }, + { + "child": 2, + "contribution_lower": "665529059378392461521242301566570956191018084091/6628600000000000000000000000000000000000000000000", + "contribution_upper": "665529059378392461521242301566570956191018097369/6628600000000000000000000000000000000000000000000", + "exp_lower": "100245377222231128411092378606201379152134069/100000000000000000000000000000000000000000000", + "exp_upper": "100245377222231128411092378606201379152134071/100000000000000000000000000000000000000000000", + "log_lower": "3496507561466480235457188814887655004469197411/1000000000000000000000000000000000000000000000", + "log_upper": "874126890366620058864297203721913751117299353/250000000000000000000000000000000000000000000", + "multiplicity": 39834 + }, + { + "child": 3, + "contribution_lower": "678035602301143280941818405683715140413431830397/6026000000000000000000000000000000000000000000000", + "contribution_upper": "932298953164072011295000307815108318068468770517/8285750000000000000000000000000000000000000000000", + "exp_lower": "250542229343027178956632821476061222901264743/250000000000000000000000000000000000000000000", + "exp_upper": "31317778667878397369579102684507652862658093/31250000000000000000000000000000000000000000", + "log_lower": "772760613339578963369793924855826466974301747/250000000000000000000000000000000000000000000", + "log_upper": "3091042453358315853479175699423305867897206989/1000000000000000000000000000000000000000000000", + "multiplicity": 29769 + }, + { + "child": 4, + "contribution_lower": "183359935147561284888057939274095975621570367041/2882000000000000000000000000000000000000000000000", + "contribution_upper": "183359935147561284888057939274095975621570367407/2882000000000000000000000000000000000000000000000", + "exp_lower": "1001966858729843086819988739202710249298198727/1000000000000000000000000000000000000000000000", + "exp_upper": "1001966858729843086819988739202710249298198729/1000000000000000000000000000000000000000000000", + "log_lower": "2803360380906534926039956693429478436393697277/1000000000000000000000000000000000000000000000", + "log_upper": "1401680190453267463019978346714739218196848639/500000000000000000000000000000000000000000000", + "multiplicity": 12627 + }, + { + "child": 5, + "contribution_lower": "19535298079565961855374167172228605577949496011/530288000000000000000000000000000000000000000000", + "contribution_upper": "3551872378102902155522575849496110105081726551/96416000000000000000000000000000000000000000000", + "exp_lower": "500905078963229791163440183903297578921781949/500000000000000000000000000000000000000000000", + "exp_upper": "1001810157926459582326880367806595157843563899/1000000000000000000000000000000000000000000000", + "log_lower": "2580216829592325170273661603119643933019096191/1000000000000000000000000000000000000000000000", + "log_upper": "20157943981190040392762981274372218226711689/7812500000000000000000000000000000000000000", + "multiplicity": 5850 + }, + { + "child": 6, + "contribution_lower": "482309951488466659338499451434537527844628570403/13257200000000000000000000000000000000000000000000", + "contribution_upper": "964619902976933318676998902869075055689257141769/26514400000000000000000000000000000000000000000000", + "exp_lower": "500841071119903073041017083524961088104494881/500000000000000000000000000000000000000000000", + "exp_upper": "1001682142239806146082034167049922176208989763/1000000000000000000000000000000000000000000000", + "log_lower": "2397895272798370544061943577965129299821706853/1000000000000000000000000000000000000000000000", + "log_upper": "1198947636399185272030971788982564649910853427/500000000000000000000000000000000000000000000", + "multiplicity": 4815 + }, + { + "child": 7, + "contribution_lower": "2474889154544236901206745340916963856525776077797/132572000000000000000000000000000000000000000000000", + "contribution_upper": "618722288636059225301686335229240964131444020067/33143000000000000000000000000000000000000000000000", + "exp_lower": "1001573919281358519306655338290960686574575507/1000000000000000000000000000000000000000000000", + "exp_upper": "250393479820339629826663834572740171643643877/250000000000000000000000000000000000000000000", + "log_lower": "140234037060694514985566762056415740181725801/62500000000000000000000000000000000000000000", + "log_upper": "2243744592971112239769068192902651842907612817/1000000000000000000000000000000000000000000000", + "multiplicity": 2118 + }, + { + "child": 8, + "contribution_lower": "1533266158246689764781613804418356809282837269571/33143000000000000000000000000000000000000000000000", + "contribution_upper": "766633079123344882390806902209178404641418635551/16571500000000000000000000000000000000000000000000", + "exp_lower": "1001480181741796057989297063630540045253322841/1000000000000000000000000000000000000000000000", + "exp_upper": "500740090870898028994648531815270022626661421/500000000000000000000000000000000000000000000", + "log_lower": "2110213200346589616622724571971301868318197143/1000000000000000000000000000000000000000000000", + "log_upper": "263776650043323702077840571496412733539774643/125000000000000000000000000000000000000000000", + "multiplicity": 4593 + }, + { + "child": 9, + "contribution_lower": "87872631208899159234688840009458973395698466429/6026000000000000000000000000000000000000000000000", + "contribution_upper": "351490524835596636938755360037835893582793866067/24104000000000000000000000000000000000000000000000", + "exp_lower": "250349376663530368189996695183643798848143779/250000000000000000000000000000000000000000000", + "exp_upper": "1001397506654121472759986780734575195392575117/1000000000000000000000000000000000000000000000", + "log_lower": "199243016469020616208393046250078016324971643/100000000000000000000000000000000000000000000", + "log_upper": "1992430164690206162083930462500780163249716431/1000000000000000000000000000000000000000000000", + "multiplicity": 1287 + }, + { + "child": 10, + "contribution_lower": "11640386350722340234309145512558645341696667203/331430000000000000000000000000000000000000000000", + "contribution_upper": "93123090805778721874473164100469162733573337717/2651440000000000000000000000000000000000000000000", + "exp_lower": "125165444631423013272141349597404788620394271/125000000000000000000000000000000000000000000", + "exp_upper": "1001323557051384106177130796779238308963154169/1000000000000000000000000000000000000000000000", + "log_lower": "1887069649032379860856429481661467364943596057/1000000000000000000000000000000000000000000000", + "log_upper": "943534824516189930428214740830733682471798029/500000000000000000000000000000000000000000000", + "multiplicity": 2790 + }, + { + "child": 11, + "contribution_lower": "177222429917935283461084902852559278944876053281/12052000000000000000000000000000000000000000000000", + "contribution_upper": "88611214958967641730542451426279639472438026729/6026000000000000000000000000000000000000000000000", + "exp_lower": "1001256666203024200345112445494685191778960753/1000000000000000000000000000000000000000000000", + "exp_upper": "500628333101512100172556222747342595889480377/500000000000000000000000000000000000000000000", + "log_lower": "447939867307013750203119339595175568180747673/250000000000000000000000000000000000000000000", + "log_upper": "1791759469228055000812477358380702272722990693/1000000000000000000000000000000000000000000000", + "multiplicity": 1062 + }, + { + "child": 12, + "contribution_lower": "3595293412329090302603951021820155894144953565133/66286000000000000000000000000000000000000000000000", + "contribution_upper": "898823353082272575650987755455038973536238392181/16571500000000000000000000000000000000000000000000", + "exp_lower": "1001195603544720217934823453584003312209677963/1000000000000000000000000000000000000000000000", + "exp_upper": "250298900886180054483705863396000828052419491/250000000000000000000000000000000000000000000", + "log_lower": "1704748092238425234644711456506952731746206719/1000000000000000000000000000000000000000000000", + "log_upper": "332958611765317428641545206349014205419181/195312500000000000000000000000000000000000", + "multiplicity": 3591 + }, + { + "child": 13, + "contribution_lower": "330576241315759765755375472578969387071715666539/53028800000000000000000000000000000000000000000000", + "contribution_upper": "826440603289399414388438681447423467679289167173/132572000000000000000000000000000000000000000000000", + "exp_lower": "200227886926565575866369153591138332569179689/200000000000000000000000000000000000000000000", + "exp_upper": "500569717316413939665922883977845831422949223/500000000000000000000000000000000000000000000", + "log_lower": "1624705384564888808820933494780512967739429601/1000000000000000000000000000000000000000000000", + "log_upper": "812352692282444404410466747390256483869714801/500000000000000000000000000000000000000000000", + "multiplicity": 381 + }, + { + "child": 14, + "contribution_lower": "2599824063897057280879481937900776405033861455493/66286000000000000000000000000000000000000000000000", + "contribution_upper": "259982406389705728087948193790077640503386145809/6628600000000000000000000000000000000000000000000", + "exp_lower": "1001087433152505691520786267963333232589087969/1000000000000000000000000000000000000000000000", + "exp_upper": "100108743315250569152078626796333323258908797/100000000000000000000000000000000000000000000", + "log_lower": "775298706205583465175918035722237637416056341/500000000000000000000000000000000000000000000", + "log_upper": "1550597412411166930351836071444475274832112683/1000000000000000000000000000000000000000000000", + "multiplicity": 2226 + }, + { + "child": 15, + "contribution_lower": "5642856974682592680784610078993064319620689073681/53028800000000000000000000000000000000000000000000", + "contribution_upper": "2821428487341296340392305039496532159810344539659/26514400000000000000000000000000000000000000000000", + "exp_lower": "1001039023360403172039136079296268284481229213/1000000000000000000000000000000000000000000000", + "exp_upper": "500519511680201586019568039648134142240614607/500000000000000000000000000000000000000000000", + "log_lower": "740802270462107739439208183098559114185802817/500000000000000000000000000000000000000000000", + "log_upper": "296320908184843095775683273239423645674321127/200000000000000000000000000000000000000000000", + "multiplicity": 5637 + }, + { + "child": 16, + "contribution_lower": "1000993741143294881782572622641907415385991849/188312500000000000000000000000000000000000000000", + "contribution_upper": "20019874822865897635651452452838148307719837/3766250000000000000000000000000000000000000000", + "exp_lower": "1000993741143294881782572622641907415385991849/1000000000000000000000000000000000000000000000", + "exp_upper": "20019874822865897635651452452838148307719837/20000000000000000000000000000000000000000000", + "log_lower": "88566626236665269200343278157070331265168563/62500000000000000000000000000000000000000000", + "log_upper": "1417066019786644307205492450513125300242697009/1000000000000000000000000000000000000000000000", + "multiplicity": 264 + }, + { + "child": 17, + "contribution_lower": "689154905953721768647350727110623832142821519057/132572000000000000000000000000000000000000000000000", + "contribution_upper": "1378309811907443537294701454221247664285643039491/265144000000000000000000000000000000000000000000000", + "exp_lower": "500475603452230768807081138061455215789993841/500000000000000000000000000000000000000000000", + "exp_upper": "1000951206904461537614162276122910431579987683/1000000000000000000000000000000000000000000000", + "log_lower": "1356441397970209464624886318472705036956494533/1000000000000000000000000000000000000000000000", + "log_upper": "678220698985104732312443159236352518478247267/500000000000000000000000000000000000000000000", + "multiplicity": 243 + }, + { + "child": 18, + "contribution_lower": "23898754483040629553847676982107753668942134454849/132572000000000000000000000000000000000000000000000", + "contribution_upper": "11949377241520314776923838491053876834471067239363/66286000000000000000000000000000000000000000000000", + "exp_lower": "1000911106212699650452220839389695257735148237/1000000000000000000000000000000000000000000000", + "exp_upper": "500455553106349825226110419694847628867574119/500000000000000000000000000000000000000000000", + "log_lower": "162410373016282606583337292630325449396777037/125000000000000000000000000000000000000000000", + "log_upper": "1299282984130260852666698341042603595174216297/1000000000000000000000000000000000000000000000", + "multiplicity": 7959 + }, + { + "child": 19, + "contribution_lower": "793942646616805139804161675130464113683902169223/66286000000000000000000000000000000000000000000000", + "contribution_upper": "635154117293444111843329340104371290947121736013/53028800000000000000000000000000000000000000000000", + "exp_lower": "250218293922724594958765104043638233118153851/250000000000000000000000000000000000000000000", + "exp_upper": "200174635138179675967012083234910586494523081/200000000000000000000000000000000000000000000", + "log_lower": "311303940714996271216348376114494508826829571/250000000000000000000000000000000000000000000", + "log_upper": "249043152571997016973078700891595607061463657/200000000000000000000000000000000000000000000", + "multiplicity": 501 + }, + { + "child": 20, + "contribution_lower": "1000837192528884765116453852557381073649558471/602600000000000000000000000000000000000000000000", + "contribution_upper": "125104649066110595639556731569672634206194809/75325000000000000000000000000000000000000000000", + "exp_lower": "1000837192528884765116453852557381073649558471/1000000000000000000000000000000000000000000000", + "exp_upper": "125104649066110595639556731569672634206194809/125000000000000000000000000000000000000000000", + "log_lower": "1193922468472434551439197360203290796868095923/1000000000000000000000000000000000000000000000", + "log_upper": "298480617118108637859799340050822699217023981/250000000000000000000000000000000000000000000", + "multiplicity": 66 + } + ], + "upper": "2305600000000000001162733399375924970726640217937/2305600000000000000000000000000000000000000000000" + }, + "saving": "700918443859411/1000000000000000000" + }, + "complex_profile": { + "L": 0, + "N": 1320, + "W": 12052, + "child_multiplicities": { + "1": 87534, + "10": 2790, + "11": 1062, + "12": 3591, + "13": 381, + "14": 2226, + "15": 5637, + "16": 264, + "17": 243, + "18": 7959, + "19": 501, + "2": 39834, + "20": 66, + "3": 29769, + "4": 12627, + "5": 5850, + "6": 4815, + "7": 2118, + "8": 4593, + "9": 1287 + }, + "m": 66, + "maxchild": 20, + "total_rank": 794112 + }, + "elapsed_milliseconds": 35892, + "finite_bridge_guards": { + "literal_scalar_guard": "1", + "row_product_gap": "23971789/25" + }, + "kappa": "427415195711/625000000000000", + "kappa_decimal_numerator_grid_1e18": "683864313137600", + "malformed_controls_rejected": [ + "incorrect total rank", + "aliased histogram key", + "zero multiplicity", + "uncontracted child", + "fractional multiplicity", + "empty histogram" + ], + "method": { + "backend": "Boost cpp_int exact rationals", + "exp_degree": 12, + "floating_point_decisions": false, + "log_terms": 80, + "outward_grid": "1000000000000000000000000000000000000000000000", + "python_execution": false + }, + "ordinary_chain": [ + "136778119502868756049612608255612978419/200000000000000000000000000000000000000000", + "27373280052184668700855950524275582729223951211392147311/40000000000000000000000000000000000000000000000000000000000", + "5474658426971914585705893479070465620328343802765756930813760895733916059/8000000000000000000000000000000000000000000000000000000000000000000000000000", + "1094931685725125507165114010678815009800278925513982252841322510870004083639421477112028471/1600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "218986337145070369000727311696237361586294726342796458249792882918689785419145096486554435489348270963812099/320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "43797267429014079995757239262391962117434390640040309258248209746097446561494013805623607295240161391846164137827699981079231/64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "scope": "Arithmetic replay only; physical admission and retained analytic interfaces require separate evidence", + "status": "PASS_NATIVE_EXACT_47_CONSTRAINT_ASSEMBLY" +} diff --git a/research/coordinated-crossover-pr200-v2/research/FINAL-CUT-NOMINATION.json b/research/coordinated-crossover-pr200-v2/research/FINAL-CUT-NOMINATION.json new file mode 100644 index 0000000000..bedd8dad87 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/research/FINAL-CUT-NOMINATION.json @@ -0,0 +1,164 @@ +{ + "changes": 0, + "current": { + "entropy": 866269.8481223906, + "histogram": { + "0": 36229, + "1": 38530, + "10": 767, + "11": 445, + "12": 1487, + "13": 534, + "14": 1106, + "15": 315, + "16": 1032, + "17": 496, + "18": 444, + "19": 310, + "2": 18094, + "20": 880, + "21": 5006, + "22": 1320, + "3": 10175, + "4": 2924, + "5": 2482, + "6": 1496, + "7": 1218, + "8": 617, + "9": 613 + }, + "mass": 405456 + }, + "degenerate_frozen": 0, + "final": { + "entropy": 866269.8481223906, + "histogram": { + "0": 36229, + "1": 38530, + "10": 767, + "11": 445, + "12": 1487, + "13": 534, + "14": 1106, + "15": 315, + "16": 1032, + "17": 496, + "18": 444, + "19": 310, + "2": 18094, + "20": 880, + "21": 5006, + "22": 1320, + "3": 10175, + "4": 2924, + "5": 2482, + "6": 1496, + "7": 1218, + "8": 617, + "9": 613 + }, + "mass": 405456 + }, + "greatest": { + "entropy": 898639.1065801512, + "histogram": { + "0": 35236, + "1": 32198, + "10": 1140, + "11": 820, + "12": 648, + "13": 600, + "14": 974, + "15": 554, + "16": 240, + "17": 648, + "18": 46, + "19": 1440, + "2": 23248, + "20": 3720, + "21": 846, + "22": 1320, + "3": 7706, + "4": 6652, + "5": 2732, + "6": 2504, + "7": 920, + "8": 1232, + "9": 1096 + }, + "mass": 405456 + }, + "least": { + "entropy": 897647.8189150952, + "histogram": { + "0": 31732, + "1": 39192, + "10": 1310, + "11": 828, + "12": 744, + "13": 614, + "14": 888, + "15": 212, + "16": 326, + "17": 148, + "18": 240, + "19": 190, + "2": 20828, + "20": 880, + "21": 5006, + "22": 1320, + "3": 8228, + "4": 4078, + "5": 3422, + "6": 3296, + "7": 574, + "8": 1626, + "9": 838 + }, + "mass": 405456 + }, + "least_cut": { + "feasible10_edges": 193, + "forbidden10_edges": 12961, + "proxy_delta": 0.0, + "selected": 0, + "total_concavity_majorant": 98.67071710391221 + }, + "least_frozen": 0, + "majorant_cut": { + "feasible10_edges": 520, + "forbidden10_edges": 17508, + "proxy_delta": 0.0, + "selected": 0, + "total_concavity_majorant": 412.0393451011816 + }, + "selected": { + "entropy": 866269.8481223906, + "histogram": { + "0": 36229, + "1": 38530, + "10": 767, + "11": 445, + "12": 1487, + "13": 534, + "14": 1106, + "15": 315, + "16": 1032, + "17": 496, + "18": 444, + "19": 310, + "2": 18094, + "20": 880, + "21": 5006, + "22": 1320, + "3": 10175, + "4": 2924, + "5": 2482, + "6": 1496, + "7": 1218, + "8": 617, + "9": 613 + }, + "mass": 405456 + } +} diff --git a/research/coordinated-crossover-pr200-v2/research/HYBRID-CAP-CHECKS.txt b/research/coordinated-crossover-pr200-v2/research/HYBRID-CAP-CHECKS.txt new file mode 100644 index 0000000000..faf97d7037 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/research/HYBRID-CAP-CHECKS.txt @@ -0,0 +1,11 @@ +PASS exact cap-compatible partitions, full triple mod2 decoder +good=1760 bad=264 block_entries=998976 cap_memberships=319440 universal_entries=4096576 +bad_to_good_U 18 +bad_to_good_V 9 +bad_to_bad_U 20 +bad_to_bad_W 11 +bad_to_bad_V 10 +good_to_bad_A 21 +good_to_bad_B 20 +good_to_bad_C 21 +Ranks computed modulo1000003 are lower bounds overQ; the accompanying explicit span constraints give matching upper bounds. These are decoder/cap checks, NOT paid supplier closure. diff --git a/research/coordinated-crossover-pr200-v2/research/HYBRID-CAP-PROOF.md b/research/coordinated-crossover-pr200-v2/research/HYBRID-CAP-PROOF.md new file mode 100644 index 0000000000..05d9bfd432 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/research/HYBRID-CAP-PROOF.md @@ -0,0 +1,65 @@ +# Complete cap-safe hybrid triple decoder + +2026-10-09. New sufficient universal scalar/address construction; no Lean formalization and no final paid kappa claim. The accompanying C++ checks are exact decoder and incidence checks, not a substitute for full dirty-channel/rank assembly. + +## Exact input family and root + +Take p=12 physical coordinate pairs, h=24, with endpoint basis e_(i,0), e_(i,1). Let d_i=e_(i,0)+e_(i,1). Old good labels choose one endpoint in each of three distinct pairs:1760 labels. Add every missing triple z(i,j,e)=d_i+e_(j,e), i!=j:264 labels. These2024 labels are exactly all three-element subsets of the24 coordinates. + +The actual rational address metric is G=I-J/9. Every label chi has weight3, so its read covector is c_chi=3chi-1, proportional to Gchi. Therefore a source label lies in a target read cap exactly when |source intersect target|=1. This uses rational addresses/local odd-prime rings; it is not a substitution of F2 addresses. The payload decoder itself is binary. + +Let B be the coordinate-by-label incidence matrix. Define H[target,source]=1 if their intersection has size1, else0. Then over every characteristic-two ring, + + B^T B + H = I. + +Indeed for intersection sizes0,1,2,3 the left entry is respectively0,0,0,1; intersection3 means equality of the three-element labels. This proves the complete desired fresh decoder, not merely a necessary condition. The old good-good side and local partner terms already implement the corresponding H block. Keep them exactly; append the three missing blocks below and enlarge the centre stars to the full family. Every term in the partitions below is an exact integer indicator of H, and every delivered individual source has intersection1 with the target. No cancellation of forbidden reads is assumed. + +Define U_a=sum_(b!=a,e) z(a,b,e), V_(b,e)=sum_(a!=b)z(a,b,e). Here sums mean the corresponding source payload values. + +## Bad source to good target + +Let target T have three distinct pair indices I={a,b,c} and endpoint selectors epsilon_b. Deliver: + +1. For each a in I, sum z(a,k,e) over k outside I and both e. +2. For each b in I, sum z(k,b,epsilon_b) over k outside I. +3. For every ordered distinct a,b in I, the individual source z(a,b,1-epsilon_b). + +These disjoint source sets are exactly those missing labels intersecting T once. There are three U two-hole roots, three V two-hole roots, and six local single-source deliveries. Their actual source-span ranks are18,9,1. A U root can deliver to all eight good selectors of the same cube; a V root to the four having the specified selector. All targets therefore have true common-cap membership. + +## Bad source to bad target + +For target t=z(i,j,e), deliver: + +1. sum z(j,a,f) over a outside {i,j}, both f; +2. sum z(a,i,f) over a outside {i,j}, both f; +3. sum z(a,j,e) over a outside {i,j}. + +The ranks are20,11,10. These sets are disjoint and exactly enumerate all missing sources with intersection1. Implement the middle term as TWO V channels, V_(i,0) excluding a=j and V_(i,1) excluding a=j. This avoids the potentially degenerate combined W frame altogether, without changing the decoder. + +## Good source to bad target + +For target t=z(i,j,e), deliver these disjoint subsets of good sources: + +1. all good cube totals having pair i and excluding pair j; +2. all good star sources having endpoint (j,e) and excluding pair i; +3. all good sources having pair i and endpoint (j,1-e), with the third pair arbitrary outside {i,j}. + +Each source intersects t once. The ranks are21,20,21. This is a cap-compatible decomposition of the algebraic expression U_good_i+S_good_(j,e)-2P_good_(i,j,e); the expression alone would have forbidden intermediate reads, which are absent in this actual partition. + +The upper-rank constraints are explicit: set excluded coordinate pairs to zero; for family1 sum outside pair i equals twice the sum on pair i; for family2 set the opposite j endpoint to zero and sum outside j equals twice its retained coordinate; for family3 the sum on pair i equals the retained j coordinate and the sum on all other pairs equals it too. These give h-3,h-4,h-3. Independent endpoint-difference vectors give every free pair toggle. Their pair-sum quotient vectors e_i+e_a+e_b, e_j+e_a+e_b and e_i+e_j+e_k span the remaining dimensions, proving equality when p>=5. + +## Literal U/V span and prime guard + +For s distinct U sources with the same doubled pair a, G-Gram is I_s+J_s: diagonal2, off-diagonal1. Its determinant s+1 is nonzero, and the s source labels are independent. For s V sources with the same endpoint (j,e), doubled pairs are distinct and intersect only that endpoint: G-Gram=2I_s, determinant2^s. Thus all support-subset U/V intermediate frames are nondegenerate, with fixed small denominator/factor primes. This is a universal elementary argument, not an observed numerical rank. Relevant U s<=22 and V s<=11 avoid every prime q>2^80. + +By contrast, combining both V selectors over k doubled pairs has basis z(a,i,0) and e_(i,1)-e_(i,0), Gram[[2I,-1],[-1^T,2]], determinant2^(k-1)(4-k). It degenerates at k=4. The implementation explicitly retains the two safe V channels instead of hiding a chart repair. + +## Concrete finite arithmetic + +hybrid-cap.cpp enumerates the full family and all target/source entries. HYBRID-CAP-CHECKS.txt records998976 cross/missing block entries,319440 literal cap memberships, and4096576 full-decoder entries, all passing. Modular1000003 ranks are lower bounds overQ; the explicit span constraints above give matching upper bounds. Its tests use C++ only. + +The structural/retrieval workers provide fully specified support-disjoint11-input two-hole DAGs and literal acyclic carrier schedules; every intermediate support lies inside each output reached from it. These are actual finite programs, not an assumed query solver. Last-use copying, nested rational frames, source/target timing, old/new centre wiring, gauge placement, dirty adjoint correction and complete bank/rank/stock cost must all be included by the hybrid compiler lane before any new exponent is asserted. + +## What remains inside this construction + +Full stars now span h-1=23 instead of22. A uniform good-style source path would give delta=2*2024-3*24*23=2392; this is only an optimistic bill. If new bad sources require the older ordinary path, their actual additional deficit may instead be one per source, giving delta2128 before further changes. Neither number is a proved paid supplier profile here. The source, target, root and dirty compiler must derive the true histogram and pass the strict moment and47-constraint root assembly. The proven result is the complete decoder together with explicit cap-safe query partitions and nondegenerate U/V source-support frames. \ No newline at end of file diff --git a/research/coordinated-crossover-pr200-v2/research/LATE-REFINEMENT-SUMMARY.md b/research/coordinated-crossover-pr200-v2/research/LATE-REFINEMENT-SUMMARY.md new file mode 100644 index 0000000000..19ef945dab --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/research/LATE-REFINEMENT-SUMMARY.md @@ -0,0 +1,18 @@ +# Saved late-refinement findings + +The combined PR211/global-cut witness is fully admitted at conditional kappa=0.000683864313137600. A clean offline copy rebuilt all three native C++ checkers from the delivered archives and passed every hash, complete frame/prime/path admission, all20634 scalar columns and all47 exact assembly constraints. + +A fifth finite ordinary-leaf bootstrap was also priced using exact rational arithmetic. It does not change this witness's final fixed-grid kappa; the deliverable retains the simpler four-level certificate. + +One further greatest/least global-cut nomination on the final combined witness selected zero additional changes. This is a restricted search result, not global optimality. + +Latest additional public sources were fetched read-only at exact heads: +- PR210 8e678c6bd3796b24110bcc9056b65353a0180412:274 additional geometric subspaces on PR211, individually admitted. +- PR213 b7af6934299024e04555929c13640cf2342613f4: five-level composition, unchanged PR211 bases. +- PR212 9b6ad038f8690206c14ed8f28fb90ec6b3a79ae1: proposed ceiling note, no new claimed kappa. +- PR208 5fcb7111a06505fc5289574fa706a0dc3507ff01: prospective absorption ladder, still missing physical implementation. +- PR197 8c5e1cf07c23d843642bf2d4c76f882669edc43f:updated completed-bank source. + +Simply unioning the latest PR210 bases with our cut changes fails a literal physical nesting check. Gains are not added. The separate concrete14-operation plateau fallback also failed exact nesting. Neither union contributes to the claim. All owned jobs finished. + +The264-label decoder/cap constructions and the complete expensive fallback are saved in the two research archives. Optimized old-query reuse still needs a dirty-safe compensation chronology; no new supplier is assumed. diff --git a/research/coordinated-crossover-pr200-v2/research/LATEST-PUBLIC-ASSESSMENT.md b/research/coordinated-crossover-pr200-v2/research/LATEST-PUBLIC-ASSESSMENT.md new file mode 100644 index 0000000000..7bc3b4de1a --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/research/LATEST-PUBLIC-ASSESSMENT.md @@ -0,0 +1,37 @@ +# Final public refresh: pinned heads and bounded composition checks + +All five new snapshots were fetched read-only, pinned at the exact requested commit, checked clean with autocrlf=false, stored on F:, and exposed through D: junctions. No upload files were changed and nothing was published. Full provenance records are collected in `FINAL-NEW-PINS.json`. + +Logical snapshot roots under D:/proof/research/beyond-nlogn-20261009-threshold/public/: + +- pr210-8e678c6bd379 +- pr213-b7af69342990 +- pr212-9b6ad038f869 +- pr208-5fcb7111a065 +- pr197-8c5e1cf07c23 + +Physical roots are the same suffixes under F:/proof/research/beyond-nlogn-20261009/threshold/public/. + +## New PR210 + +New witness: `source/research/coordinated-crossover-pr200/frames/opframe-bases.json`. It is the same list-of-[operation,basis] schema consumed by the native admission executable. It changes only operation frames, so it can be checked on the pinned frames-pr211 physical/target graph and packed-pr211 ledger baseline; gains must never be added numerically. + +Its full 6416-entry witness passes native admission: 4528 distinct prime frames, 150444 value-span inclusions, exact physical/target path containment, and unchanged chain mass405456. The updated native receipt counts 273 genuinely different subspaces versus its current baseline and 2125 versus its parsed raw word; the public note says274/2124 under its own comparison convention. Keep these explicit counts separate from the6416 listed bases. The saved receipt is `pr210-final-admission/FRAME-ADMISSION.json`; profile is `pr210-final-admission/new-profile.json`. Its published ?=8548253614663/12500000000000000 remains below our packaged ?=427415195711/625000000000000. + +The concrete union first takes all6416 new public frames and then replaces our220 coupled-cut indices. It has6477 entries (159 overlapping indices,61 extra indices), and fails the actual frame-path check with the exact diagnostic `FAIL nesting failure`. Diagnostic is preserved in `pr210-plus-cut-admission/FAILURE.txt`. It supplies no admitted combined gain. + +## New PR213 + +The frame witness is byte-identical to frozen PR211: SHA25656b2ed0f6b867e8cafdc32ac70419cfda36d02838844572098b3fc77f8026e58. Arithmetic contains exactly `range(5)` finite stopped-leaf levels, starting from the concrete unpacked ordinary atom. It claims ?=683847872497761/10^18. This is a finite-depth change, not a use of the unattained limit, and remains below our packaged ?. Our combined packed-atom route already reaches its selected grid point with four levels; the parent separately checked that five levels select the same ?. + +## Sole requested fallback + +After the union failure, the14 frozen equal-frame component replacements from new PR210 `search/additional-frames.json` were applied over the parent's complete6258 replacement list. All14 indices were already present, so the list stays6258 entries. This is a different candidate, not a free additive gain. Candidate is `F:/proof/research/beyond-nlogn-20261009/threshold/retrieval/current-plus-plateau14-bases.json`. Full admission is being checked in `current-plus-plateau14-admission/`; the final outcome is appended below. + +## Final bounded composition outcome + +The sole 14-operation plateau fallback also failed the exact chronological nesting check: `FAIL nesting failure`. All 14 indices overlapped the existing 6,258-entry replacement list, so the proposed list still had 6,258 entries. The proposed full 6,477-entry PR210-plus-cut union failed the same check. Neither failed composition has an admitted physical profile or a priced kappa; no gains were added. + +The new PR210 witness alone passed full admission: 6,416 listed bases, 4,528 distinct prime frames, 150,444 required value checks, and unchanged chain mass 405,456. Its native comparison recorded 273 changed operations against the current baseline and 2,125 against the parsed raw word; those conventions are kept separate from the public note's counts. + +The accepted combined claim remains kappa = 427415195711/625000000000000 = 0.0006838643131376. Five finite levels do not improve its fixed-grid price over four. All five requested public heads are pinned in FINAL-NEW-PINS.json. All acquisition, compilation, admission, and pricing jobs owned by this lane have finished. No upload files were changed and nothing was published. diff --git a/research/coordinated-crossover-pr200-v2/research/MAJORIZATION-CUT.md b/research/coordinated-crossover-pr200-v2/research/MAJORIZATION-CUT.md new file mode 100644 index 0000000000..df375e80da --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/research/MAJORIZATION-CUT.md @@ -0,0 +1,44 @@ +# Global extremal-frame majorization cuts + +2026-10-09. Pure mathematics and checked-integer C++ discovery, no Lean certificate, no all-column/prime closure, no new published kappa. + +## Sufficient theorem + +Let a legal finite physical compiler word have one frame F_i at each operation, fixed source/gauge/root/alias/target boundaries, and paid directed chain edges i -> j. Every edge has F_i subset F_j. Let f be increasing and concave on permitted nonnegative rank gaps, with f(0)=0. Construct ANY second legal schedule M_i with F_i subset M_i for every mutable i and identical fixed boundaries. Assume every M_i is nondegenerate and contains the required exact value span. + +There is a linear-size explicit minimum-cut majorant for selecting F_i or M_i independently at each operation. A strict reduction of its objective is a sufficient certificate of a strict reduction of the actual complete paid rank objective. All stock, endpoints, source/target legality, chronological aliases and total rank mass remain unchanged. This is a legal-neighborhood optimization theorem; it does not claim global optimality or an all-size multiplication theorem. + +For an edge with both endpoints mutable, write d_i=dim(M_i)-dim(F_i), d_j=dim(M_j)-dim(F_j), r=dim(F_j)-dim(F_i). The 00,01,11 cases always nest, and have costs E00=f(r), E01=f(r+d_j), E11=f(r+d_j-d_i). The 10 case nests precisely when M_i subset F_j; if legal, E10=f(r-d_i). + +Define unary contributions u_i=E11-E01 and u_j=E01-E00. The affine objective E00+u_i*x_i+u_j*x_j agrees with every 00,01,11 cost. If 10 is illegal add a hard arc i -> j, prohibiting x_i=1,x_j=0. If 10 is legal its affine price is E00+E11-E01. Concavity implies E00+E11 >= E01+E10: these are two inner points versus two outer points with equal sum. Thus the affine price majorizes the true 10 cost. Both implications follow without requiring equal subspaces or a common join direction. For fixed boundaries retain the exact one-variable cost; no hard arc is needed where an endpoint contains both alternatives. + +Sum over ALL actual physical and target-chain edges, including terminal pivot movements. Positive unary u becomes i -> sink; negative unary becomes source -> i with the usual constant offset. Use a hard capacity strictly greater than the sum of absolute unary capacities. The unchanged all-zero assignment is feasible and has the baseline objective. Consequently a minimizing cut with negative surrogate delta has actual delta at most that negative number. This proves sufficiency. Concavity defects are explicitly bounded, so the surrogate can also quantify how far it is from the best schedule in its binary neighborhood; this is useful for dropping an unproductive route, not a research result by itself. + +A contraction schedule L_i subset F_i reduces to this theorem by replacing each frame with its ordinary annihilator, reversing every paid edge and exchanging F,L accordingly. Dimensions change from k to h-k, so every paid rank gap is exactly preserved. Nondegeneracy and required-value containment are verified on the original physical frames, not presumed from the annihilator representation. + +## Concrete second schedules + +The greatest feasible candidate is reconstructed backwards: M_i is the intersection of every successor frame, including all literal endpoint caps. The required values and current F_i stay contained because the initial word is legal. If a candidate frame is degenerate, freeze that operation at its current frame and restart backwards propagation. Since each failed round freezes at least one operation, the process terminates in at most N rounds with a legal schedule; in the observed PR200 input no freeze was necessary. + +The least candidate is reconstructed forwards: L_i is the span of its exact required source-label value vectors and every predecessor frame, including literal source/gauge/target boundaries. This is a subspace of the current legal F_i. Freeze a degenerate candidate at F_i and continue forwards; successors still remain within their current frames. Again the observed PR200 input needed no freeze. Both candidates are explicit finite constructions rather than assumed transformation gadgets. + +## C++ implementation and actual results + +- `greatest.cpp` is the complete loader, exact fraction-free integer basis/kernel operations, checked signed-128 multiplication/subtraction, canonical interning, full physical/target graph reconstruction, nondegeneracy predicate for G=I-J/9, Dinic nomination and literal histogram recount. +- Input is the unchanged PR200 a1175449f34d39ff933d9d8ab23ced1f32b290ec word plus the already admitted 302-frame checkpoint. Staged immutable JSON and executable are on F:/proof/research/beyond-nlogn-20261009/threshold/frames. No Python was executed for this lane. +- Current graph: 41,288 operation nodes, 126,520 paid edges, rank mass 405,456. The stage factor3 is not part of this graph-level histogram. +- Complete greatest schedule changes14,487 operations and worsens entropy867200.2563234223 -> 898639.1065801512. Rejected as a whole. +- Its majorant cut chooses48 operations and improves entropy to867140.3594551166. Exact histogram delta {0:-24,2:+96,4:-72,10:-48,12:+48}. Surrogate delta -45.67759759837121, actual entropy delta -59.8968683057. This is a candidate beyond prior common-direction cuts, not a threshold-scale improvement. +- On that checkpoint the full least schedule worsens entropy to897647.8189150952. Rejected as a whole. +- Its majorant cut chooses1410 operations and reaches entropy866438.7403496904. Final cumulative1458 operation changes relative to the 302 checkpoint. Rank mass still405456. Total graph entropy improvement761.5159737319. There are zero degenerate freezes. +- `greatest-summary.json` contains every full exact histogram and surrogate decision ledger. `greatest-bases.json` contains the explicit integer rational bases for all1458 additional operations relative to the 302 checkpoint; it is NOT a standalone public-relative replacement file. Compose with the original302 witness before any full replay. + +Every changed basis is independently reduced and every literal physical/target edge is rechecked for containment; all source/gauge/root/alias/read/terminal identities remain fixed. This does NOT replace the untouched original all-formal-column and all-used-frame prime certificate. New bases need that admission before publication or kappa pricing as a record. No such closure is claimed in this lane. + +## Threshold assessment and route selection + +The new graph entropy reduction is too small for the requested kappa >= .0007. At baseline normalized delta1936, approximately48 additional useful rank-deficit units would be threshold-scale at approximately unchanged entropy. The copied-center loss528 is therefore a higher-leverage target than continuing tiny frame cuts. Parent is pursuing a concrete hybrid264 missing-port and center dirty-completion route. This lane stops expensive frame cuts and preserves all exact witnesses and the generic sufficient construction for reuse. + +## Retrieval and literature provenance + +Prior exact cut contracts and proofs were read from the whole-subspace mincut notes, the rank-moment-to-exponent notes, PR200 frame continuation and actual public integer geometry checker. The canonical tree search found Mathlib `Analysis/SpecialFunctions/Log/NegMulLog.lean` (`strictConcaveOn_negMulLog`) and existing Problem18ProductAwareCost/Calculus majorization mechanisms; these are source retrieval, no new imports or Lean certification. The ordinary directed minimum-cut method and concavity/majorization are classical. This particular variable-frame majorant applies those methods to the compiler's complete physical/target ledger. Publication novelty is not established. \ No newline at end of file diff --git a/research/coordinated-crossover-pr200-v2/research/PR210-NAIVE-UNION-FAILURE.txt b/research/coordinated-crossover-pr200-v2/research/PR210-NAIVE-UNION-FAILURE.txt new file mode 100644 index 0000000000..665a9b6028 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/research/PR210-NAIVE-UNION-FAILURE.txt @@ -0,0 +1 @@ +FAIL nesting failure diff --git a/research/coordinated-crossover-pr200-v2/research/PR210-PLATEAU-UNION-FAILURE.txt b/research/coordinated-crossover-pr200-v2/research/PR210-PLATEAU-UNION-FAILURE.txt new file mode 100644 index 0000000000..665a9b6028 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/research/PR210-PLATEAU-UNION-FAILURE.txt @@ -0,0 +1 @@ +FAIL nesting failure diff --git a/research/coordinated-crossover-pr200-v2/research/W-PADDING-PROOF.md b/research/coordinated-crossover-pr200-v2/research/W-PADDING-PROOF.md new file mode 100644 index 0000000000..55600c03ee --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/research/W-PADDING-PROOF.md @@ -0,0 +1,37 @@ +# Explicit cap-safe repair of W_i four-input degeneracy + +2026-10-09. Universal sufficient mathematical construction, with independent exact C++ Bareiss checks. No formalization or new kappa claim. + +Use p=12 physical pairs in dimension24, G=I-J/9. Fix pair i and its endpoints i0,i1. Let z_a=B_a+e_i0 for a!=i, and d=e_i1-e_i0. For a set K of k other pairs, W_K=span({z_a:a in K},d). Its Gram is [[2I_k,-1],[-1^T,2]], determinant2^(k-1)(4-k). Four-input nodes genuinely fail nondegeneracy. + +Fix the four-pair set A of one such node. Define the INTEGRAL padding vector + + w_A = 11 e_i0 + 2 sum_(a notin A union {i}) B_a. + +For every future bad target T=B_i+e_j with j belonging to a pair outside A union{i}, the true read-cap equation is satisfied: + + (3 chi_T - 1) dot w_A =3(11+2)-(11+2*14)=0. + +Thus this ONE fixed vector lies in every future receiver cap of the four-input node. It does not add a new source or fresh value; it enlarges its operator frame by one real dimension. All extra child increments and adapters are still paid. + +For any ancestor support K containing A, |K|=k between4 and11, extend the W_K basis by w_A. Its half-scaled w=w_A/2 has G norm2; G pairings with z_a are -1 on A and+1 on K\A, and with d are -11/2. Eliminating the 2I_k block leaves the2x2 Schur complement + + [[(4-k)/2, (k-19)/2], [(k-19)/2,(4-k)/2]]. + +Therefore the exact Gram determinant with the integral padding is + + det Gram_G(z_K,d,w_A)=15 *2^k *(2k-23). + +This is nonzero for every relevant integer k4..11. Its prime factors are at most13. Clearing G's denominator contributes9^(k+2), which only adds prime3. The largest exact cleared determinant in this range has absolute value78086118246266880, below2^57 and hence far below the retained2^80 prime guard. + +The same construction works after any permutation of physical pairs and exchanging the two endpoints of i. No Gram search or assumed normalizer oracle appears. + +## A literal module avoiding simultaneous padding conflicts + +allbut-n11.json is an exact37-addition C++ module for all11 leave-one-out sums on11 singleton weights. It uses the balanced interval split5+6 and memoized disjoint support sums. Its only support-size4 nodes are the five sets A obtained by removing one element from the first block of five. Each has ONLY its own unique final support-size10 output as a later scalar consumer. The right block's leave-one-out nodes have size5, not4. Thus each repaired four-input branch uses one w_A; distinct padding vectors never have to be merged into the same later helper frame. Full size5/6 helpers and every other size are already nondegenerate. + +Assign the new six-dimensional frame W_A+ to the offending node, and the new twelve-dimensional frame W_K+ to its own size10 output. All other nodes retain their old W frames. Incoming operand frames are subsets of their new destination frames. Each padded output still lies in both endpoint target read caps by the formula above. Its largest local frame dimension is12, comfortably below h24. After this output read, its complete paid tail remains in the full ambient frame and can execute the same inverse transparent schedule. + +The output's extra dimension MUST enter the actual frame/path histogram; this is a complete cap/nondegeneracy repair, not a claim that dimension padding is free. The parent owns the complete root-chain changes, dirty response computation, source-pair controls and final recurrence bill. + +C++ source w-padding.cpp checks all14 future target cap equations exactly, constructs every ancestor Gram directly in integer coordinates, and computes each determinant by fraction-free Bareiss elimination using128-bit integers. It checks equality to the displayed factored formula. w-padding-check.json stores the exact results. allbut.cpp and allbut-n11.json give the explicit scalar module, separately checked on support masks. diff --git a/research/coordinated-crossover-pr200-v2/research/hybrid-cap.cpp b/research/coordinated-crossover-pr200-v2/research/hybrid-cap.cpp new file mode 100644 index 0000000000..17ae6b66f8 --- /dev/null +++ b/research/coordinated-crossover-pr200-v2/research/hybrid-cap.cpp @@ -0,0 +1,14 @@ +#include +using namespace std; +const int p=12,h=24;using Mask=uint32_t; +int pc(Mask x){return __builtin_popcount(x);} Mask pairmask(int i){return 3u<<(2*i);} Mask z(int i,int j,int e){return pairmask(i)|(1u<<(2*j+e));} +vector good,bad; vector> indexT; +int rankmod(vector rows,int prime=1000003){vector> M;for(auto x:rows){arraya{};for(int j=0;j>j)&1;M.push_back(a);}int r=0;auto power=[&](long long a,int k){long long v=1;while(k){if(k&1)v=v*a%prime;a=a*a%prime;k>>=1;}return v;};for(int j=0;j&s){for(auto x:s)if(pc(x&target)!=1)throw runtime_error("forbidden cap");} +int main(int argc,char**argv){ofstream out(argc>1?argv[1]:"hybrid-cap-checks.txt");for(int a=0;a>1)&1)))|(1u<<(2*c+((e>>2)&1)));good.push_back(t);indexT.push_back({a,b,c});}for(int i=0;i ug,vg,ub,vb,wb,gb1,gb2,gb3; +for(int a=0;a<(int)good.size();a++){Mask t=good[a];auto T=indexT[a];vector> groups;for(int i:T){vectoru;for(int j=0;j>(2*j+1))&1;vectorv;for(int i=0;i>(2*j+1))&1;groups.push_back({z(i,j,1-e)});}for(auto&s:groups){cap(t,s);caps+=s.size();}for(auto s:bad){int n=0;for(auto&q:groups)n+=count(q.begin(),q.end(),s);if(n!=int(pc(t&s)==1))throw runtime_error("bad to good coefficient");checks++;}} +for(int i=0;iU,W,V;for(int a=0;a>groups={U,W,V};for(auto&s:groups){cap(t,s);caps+=s.size();}for(auto s:bad){int n=0;for(auto&q:groups)n+=count(q.begin(),q.end(),s);if(n!=int(pc(t&s)==1))throw runtime_error("bad to bad coefficient");checks++;} +vectorA,B,C;for(auto s:good){bool in_i=pc(s&pairmask(i)),in_j=pc(s&pairmask(j));if(in_i&&!in_j)A.push_back(s);if(!in_i&&(s&(1u<<(2*j+e))))B.push_back(s);if(in_i&&(s&(1u<<(2*j+1-e))))C.push_back(s);}groups={A,B,C};for(auto&s:groups){cap(t,s);caps+=s.size();}gb1.insert(rankmod(A));gb2.insert(rankmod(B));gb3.insert(rankmod(C));for(auto s:good){int n=0;for(auto&q:groups)n+=count(q.begin(),q.end(),s);if(n!=int(pc(t&s)==1))throw runtime_error("good to bad coefficient");checks++;}} +vectorfull=good;full.insert(full.end(),bad.begin(),bad.end());sort(full.begin(),full.end());if(full.size()!=2024||adjacent_find(full.begin(),full.end())!=full.end())throw runtime_error("not full triples");long long universal=0;for(auto t:full)for(auto s:full){int inter=pc(t&s);if(((inter%2)^(inter==1))!=int(t==s))throw runtime_error("full decoder");universal++;} +out<<"PASS exact cap-compatible partitions, full triple mod2 decoder\n";out<<"good="<s){out<2^80 remains eligible. + +The entrance classes remain exactly2200 rank20 genuine physical starts; rank21 recipient gauges remain internal splices. Sources, centre-touched roles and deleted terminals are forbidden as entrance gauges, with explicit rejected controls. Remove only2200 per-vertex rank60 exterior children after the complete bank endpoint proof. Every source, target, internal, centre, compensation and fallback child stays charged. + +The resulting full normalized profile is m72, W56402/3, rank1351712, deficit1936, largest child22. Integer moment normalization multiplies stock, every child count and deficit by three. Nine physical replicas supply1100 selected18×4 banks and44742 undeferred3×24 banks per stage, with31680 data registers: literal stock169206. All462078 role-copy assignments across three stages are checked exactly once. + +Two independent rational enclosures, including the full10^-16 bad-class32*72²-per-edge fallback, certify + +`coarse = 136731504666219/200000000000000000`, + +`ordinary = 546573370825043616599485038841961823/800000000000000000000000000000000000000`, + +`ordinary ≈ 0.0006832167135313045`. + +Adjacent coarse and preceding atom-grid controls fail for this fixed profile/envelope. No independent supplier gains are added. + +## All actual charts and fixed normalizers + +The220 unchanged rank20 gauge frames have sigma=ker A with four annihilator rows a. For G=9I-J, residual basis rows15a−(sum a)1 are Gorthogonal to sigma. Put these four columns before the20 sigma columns in B. Reusing PR197's fraction-free factorization, independently verify both B·C=dI and C·B=dI and replay every elementary factor to the identity. This constructs the literal residual projector's chart, rather than an assumed normalizing gadget. + +Across everyactualchart, maximum factor count is186, factor numerator magnitude5, denominator/inverse denominator18, integral inverse numerator18, and basis entry magnitude2. All nonzero inverse and factor denominators are below2^80 and thus units at every inherited primeq>2^80, including local ringsZ/q^w. The chart gzip witness hash is `f81a21df89d4702b70564f9577b5506504de429ca5df253e78bd28f2685cd432`. + +Embed B^-1 in the corresponding24-coordinate tensor stage and use the explicit coordinate permutation Pi_b sending its first residual block into bank intervalb. Choose fixed H_b=(b+1)Pi_bdiag(B^-1,I48), with b0..17 for selected banks or b0..2 for undeferred banks. A common inputcoordinatej outside that tensorstage maps to (b+1)e_(Pi_b(j)); these columns are distinct at everyq>2^80. This supplies literal distinct normalizers without a greedy choice or same-invocation alias. Scalar multiplication leaves conjugation unchanged. + +Group routing sends banklabelg to coregH_b. Each role's routing is a bijection on the completeGL cover. Distinct H_b preventtwo simultaneous roles from borrowing the same physical bank. Replica execution is serial and stages are private. After everycore completes, its arbitrary-dirty residual is conjugate to a disjoint coordinate partial swap. Each bank's partition sums to I72, so the exact ring-general identity gives the full required dirty endpoint; inverse order restores the same contents. The common weighted ancestor chart telescopes and spectators remain intact. + +## Fully charged extra routing + +Allow186 chart elementary factors,71 coordinate transpositions and72 fixed-scalar coordinate factors, totalling329. Nine full replicas contain27 stage-core occurrences. A conservative out-and-back old-selector bill is + +`K =54*((169206−1)+17114*72*329) =21900544398 <2^40`. + +These are additional paid ordinary-selector calls, never silently counted as zero work or as extra recursive children. As in PR197 PROOF5, their cost is O(K V w^(1−a_old)); the inherited positive stopped-leaf atom/row toll absorbs the fixed coefficient K. They change the finite stopping constant, not the exponent or external row order. Full group stock remains charged. All-size restored weighted selector and routing guarantees remain the original conditions. + +## Source-bound receipts and final assembly + +Frame receipt SHA256 `79160698cb761b17af5667e141367160ba0d3d447e0e6121b6de784065e0fb7f`; override witness SHA256 `65b6b30748fe8db9b472c6c4bd34ba6b6ec757f4440ad0d78f8cad139cbd906b`; independent used-frame prime witness SHA256 `038867338525dcae7f9e721b809b42b93cfe2f777db02c6f6189eca25ebed6cd`. All pinned sources stayed byte-identical through the independent geometry audit. + +The parent owns the admitted complex supplier, finite depth-three leaf composition and unchanged47 balanced inequalities with complete scalar/group/router/layout charges. No unattained infinite-depth limit is substituted. General compiler, common weighted chart, restored rows, paid layout, prime supply, precision/recovery and analytic transfer remain inherited. No Lean formalization or publication occurred. + +Reproduce withgeometry/pack-admitted-frames.py againstframes/pr200-fastdirections1, geometry/audit-gauge-charts.py, andgeometry/check-normalizer-routing.py. The complete bank profile, full exact moment proof and each physical assignment hash are inpacked-pr200-fastdirections1.json. diff --git a/research/coordinated-crossover-pr200/BASELINE.json b/research/coordinated-crossover-pr200/BASELINE.json new file mode 100644 index 0000000000..38dc26ae37 --- /dev/null +++ b/research/coordinated-crossover-pr200/BASELINE.json @@ -0,0 +1,34 @@ +{ + "base_commit": "8d8d67bcf69c5ea67d3a29dbc64ba588156d6e8d", + "bit_source_commit": "a1175449f34d39ff933d9d8ab23ced1f32b290ec", + "archive_sha256": "ddb0fbdbda0a45b25ea5c5ce5fd7858687d99211f45b6c3a674d38e1ae7c378d", + "bytes": 51416352, + "parts": [ + { + "file": "baseline-pr202.part01", + "bytes": 12000000, + "sha256": "f5beb67709bf1235a2b6483883aa997a150ed4be47db978ab8be6040114cf924" + }, + { + "file": "baseline-pr202.part02", + "bytes": 12000000, + "sha256": "21e1ff2a0ddc3e8febad3ca19d210d2e83d575f0968bb5125ab62bf6d00794fe" + }, + { + "file": "baseline-pr202.part03", + "bytes": 12000000, + "sha256": "218c880af743a75e272cd51b3bd1ce5f36583f332823c2b5606d21d5d8b72e98" + }, + { + "file": "baseline-pr202.part04", + "bytes": 12000000, + "sha256": "e0f95fcdd581a7617eabd53f4d0ea9e7cf0551a31fcd081e3d2154750740f114" + }, + { + "file": "baseline-pr202.part05", + "bytes": 3416352, + "sha256": "9b64c7b8b5b7893eae071733b7ca14e280fe08b3db942c1c6d00e88d6e615286" + } + ], + "scope": "Exact tracked PR202 LF source, plus pinned replayed aligned complex witness. PR200 bit source agrees except its SOURCE.json receipt." +} diff --git a/research/coordinated-crossover-pr200/BOOTSTRAP-REVIEW.md b/research/coordinated-crossover-pr200/BOOTSTRAP-REVIEW.md new file mode 100644 index 0000000000..1289eb2003 --- /dev/null +++ b/research/coordinated-crossover-pr200/BOOTSTRAP-REVIEW.md @@ -0,0 +1,38 @@ +# Finite-bootstrap proof scope review + +## Sufficient conditional argument + +Let c be the certified coarse bit saving and let a0 be the completed atom-wrapped ordinary supplier saving. Assume the inherited all-width ordinary leaf interface, complete spectator handling, restored borrowed rows, fixed finite tapes and paid routing/layout. These assumptions must be stated for the selected new packed supplier and its retained old ordinary selector. + +For j=1,2,3, construct Aj using the coarse supplier at atom width w=ceil(e^c), with ordinary leaves, source exchanges and routing executed only by A(j-1). This is an acyclic call graph. Within one level, rank-r children have smaller width because r<=22<72; ordinary recursion decreases j. No limit construction or self-call through a completed leaf is used. + +The inherited stopped-leaf estimate is + +Tj(e)/V = O(e^(1-c) + e^((1-c)^2+c(1-a(j-1))) + e^c log e). + +Therefore the achieved ordinary saving is + +a(j) = (1-c)c + c a(j-1) = c - c^j(c-a0). + +Here 02^80 remains allowed. +2. **Complete bank endpoint.** Apply the concrete ring-general partial-swap construction in BANK-CHART-PROOF.md. Exactly 2200 genuine rank20 entrance gauges give rank4 residuals; the 14914 other retained physical chains give rank24 residuals. Nine replicas fill 18-by-4 and 3-by-24 banks, private to each of three stages. All 462078 role-copy assignments occur once. Arbitrary correlated dirty contents obey the full-swap identity and inverse restoration. Sources, spliced recipient gauges and deleted terminals are excluded. Only the 2200 rank60 entrance exterior children are removed. +3. **No free routing.** All 220 gauge charts have literal inverse and elementary-factor witnesses. Explicit normalizers H_b=(b+1)Pi_b diag(B^-1,I48) are distinct modulo every permitted prime, witnessed by an outside-stage unit column. The nine-replica routing bill K=21900544398<2^40 includes charts, permutations and scalar factors. Its fixed ordinary-selector cost is absorbed by the inherited positive stopped-leaf atom/row toll, changing the finite stopping constant rather than the exponent. This remains an explicit inherited all-width assumption, not a consequence of the finite checks alone. +4. **Paid profile.** The normalized bit profile is m=72, W=56402/3, rank=1351712, deficit=1936, largest child22. Integer moment normalization scales W, histogram and deficit by three; actual persistent stock is 169206 on nine replicas. Include the full 10^-16 bad-class envelope with 32*72^2 fallback children per paid edge. Two independent exact rational log/exp enclosures prove coarse c=136731504666219/200000000000000000 and reject c+10^-18. The ordinary leaf starts at the fully paid a0=546573370825043616599485038841961823/(8*10^38), not at the coarse root. +5. **Acyclic finite bootstrap.** Construct A0 -> A1 -> A2 -> A3. At each fixed level, internally borrowing/restoring spectators gives a_j=(1-c)c+c*a_(j-1). This is the PR185/197 completed-leaf composition under their all-width interfaces. Each a_(j-1)1: + md=(lo+hi)//2;v=paid(row,Q(md,den),bit) + if v['upper']<1:lo=md + elif v['lower']>1:hi=md + else:raise ValueError('inconclusive') + a=Q(lo,den);z=Q(hi,den);assert paid(row,a,bit)['upper']<10 for v in z['strict_constraints'].values()) +try:assembly.assembly(a,c['saving'],bridge,k+Q(1,grid),eta=eta,beta=beta) +except AssertionError:pass +else:raise AssertionError('next k accepted') +out=dict(status='PASS_EXACT_47_CONSTRAINT_ASSEMBLY',scope='Conditional finite supplier certificate; retained all-size interfaces and analytic assumptions',bit_profile=bp,complex_profile=cp,bit=b,complex=c,ordinary_chain=chain,bit_ordinary=chain[-1],a_bit=a,a_complex=c['saving'],eta=eta,beta=beta,kappa=k,kappa_float=float(k),binding='bit',assembly=z,adjacent_kappa_rejected=True) +(O/'assembly.json').write_text(json.dumps(enc(out),indent=2,sort_keys=True)+'\n') +print(json.dumps(enc({k:out[k] for k in ['status','kappa','kappa_float','bit_ordinary','a_complex']}),indent=2)) diff --git a/research/coordinated-crossover-pr200/baseline-pr202.part01 b/research/coordinated-crossover-pr200/baseline-pr202.part01 new file mode 100644 index 0000000000..abc3e2fb85 Binary files /dev/null and b/research/coordinated-crossover-pr200/baseline-pr202.part01 differ diff --git a/research/coordinated-crossover-pr200/baseline-pr202.part02 b/research/coordinated-crossover-pr200/baseline-pr202.part02 new file mode 100644 index 0000000000..047bac3233 Binary files /dev/null and b/research/coordinated-crossover-pr200/baseline-pr202.part02 differ diff --git a/research/coordinated-crossover-pr200/baseline-pr202.part03 b/research/coordinated-crossover-pr200/baseline-pr202.part03 new file mode 100644 index 0000000000..dea0a3b789 Binary files /dev/null and b/research/coordinated-crossover-pr200/baseline-pr202.part03 differ diff --git a/research/coordinated-crossover-pr200/baseline-pr202.part04 b/research/coordinated-crossover-pr200/baseline-pr202.part04 new file mode 100644 index 0000000000..bbf44c183d Binary files /dev/null and b/research/coordinated-crossover-pr200/baseline-pr202.part04 differ diff --git a/research/coordinated-crossover-pr200/baseline-pr202.part05 b/research/coordinated-crossover-pr200/baseline-pr202.part05 new file mode 100644 index 0000000000..6ef03d88c3 Binary files /dev/null and b/research/coordinated-crossover-pr200/baseline-pr202.part05 differ diff --git a/research/coordinated-crossover-pr200/certificate.json b/research/coordinated-crossover-pr200/certificate.json new file mode 100644 index 0000000000..5e882a3fbb --- /dev/null +++ b/research/coordinated-crossover-pr200/certificate.json @@ -0,0 +1,199 @@ +{ + "a_bit": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "a_complex": "700918443859411/1000000000000000000", + "adjacent_kappa_rejected": true, + "assembly": { + "absorption_gap": "134281643351448469855595122809435201472739986862783885293176478497632435149777090241037553043786318538250810999419972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "margins": { + "Gaussian_arithmetic": "269255886111883479314991099644648533713048750891109557636200948729645684632351887487203757789591105011931098889929870370327450919972289/394115409732265729633160997421775731199794069476514498167468200820023068506193706555112716272207407476078528044337600000000000000000000000", + "balanced_prefix": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "bulk_exposure": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_phase_layer": "168284928819927174571777066478749333790272697198172744835625641220994994809711929319935155711813301482483082263329870370327450919972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "coordinate_movement": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "dimension": "246153846153846153846153600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "scalar_work": "1346279430559417396575940786747573332889326656949102227509004228821919709407178107938068846619221009326043276240329870370327450919972289/1970577048661328648165804987108878655998970347382572490837341004100115342530968532775563581361037037380392640221688000000000000000000000000" + }, + "minimum_margin": "168284928819927174571777066478749333790272697198172744835625641220994994809711929319935155711813301482483082263329870370327450919972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "parameters": { + "C0": { + "base": 2, + "exponent": 210000 + }, + "C1": 1, + "a_bit": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "a_complex": "700918443859411/1000000000000000000", + "alpha_squared_power": "336569857639854349143800455088581333661566120019734099503251153735412811180778526265382825841442974031563109974329870370327450919972289/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000000000000", + "beta": "1/1000000000000000000000000", + "c": "2187704074659053269433904051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "delta": "1/8000000000000000000000000", + "epsilon": "246153846153846153846153600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "eta": "1/1000000000000000000000000", + "kappa": "1366380910073/2000000000000000", + "lambda_": "6395624591850681893461133787520736218685239832140422550106711103807918410980047703259889301788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime": "3197812295925340946730566895948072184001673185503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q": "2187704074659053269433104051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "sigma": "999299081556140589/1000000000000000000", + "tau": "6395624591850681893461133783145328069367133293274205695434780470941211685185743138040360243/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "recurrence": { + "internal": "6395624591850681893461133783145328069367133293274205695434780470941211685185743138040360243/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "leaf": "999299081556140589000000000700918443859411/1000000000000000000000000000000000000000000", + "reservations": "3197812295925340946730566095948072184001673185503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "strict_constraints": { + "Gaussian_arithmetic_above_kappa": "214850777155596201368600808930470355522283178903230270162019178396787203748294034208300043037326711738979101128519972289/394115409732265729633160997421775731199794069476514498167468200820023068506193706555112716272207407476078528044337600000000000000000000000", + "K_dominates_log": "168284928819927174571838604940287795328734235598172744835625641220994994809711929319935155711813301482483082263329870370327450919972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "K_geometry": "184783669544204542559187223388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "alpha_below_one": "492307692307692307692307446322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000000000000", + "alpha_below_one_fourth": "122824495683693186161219011239216334666274080591391046577830561602521796097004754772207341009223371862242976903881170129629672549080027711/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000000000000", + "alpha_positive": "336569857639854349143800455088581333661566120019734099503251153735412811180778526265382825841442974031563109974329870370327450919972289/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000000000000", + "artificial_boundary": "13795385620059859954557211835837422495990005841237450092528224032414803008712432326207385188431549748156340912609847010388889017647240083133/1970577048661328648165804987108878655998970347382572490837341004100115342530968532775563581361037037380392640221688000000000000000000000000", + "balanced_prefix_above_kappa": "268563779347159105043352287070117180165143973468154616229475666330515895328389813224208299978467977335760967097/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000", + "beta_below_one": "999999999999999999999999/1000000000000000000000000", + "beta_positive": "1/1000000000000000000000000", + "bit_positive": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "bulk_exposure_above_kappa": "2989237084506538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_below_one": "3197812295925340946730566095948072184001673185503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_positive": "2187704074659053269433904051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cell_above_band": "492307692307692307692306953677868917333918979274376611390168000128706577178438645332374487485582183628933403054552329870370327450919972289/985288524330664324082902493554439327999485173691286245418670502050057671265484266387781790680518518690196320110844000000000000000000000000", + "compact_leaf": "55234945691061930566893705133163651557985503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_phase_layer_above_kappa": "134281643351448469855595122809435201472739986862783885293176478497632435149777090241037553043786318538250810999419972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "compact_reservations": "1/4000000000000000000000000", + "complex_above_bit": "110469891382123861133783145328069367133293274205695434780470941211685185743138040360243/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_below_one_over32": "30549081556140589/1000000000000000000", + "coordinate_movement_above_kappa": "2989237084506538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "delta_below_one_eighth": "999999999999999999999999/8000000000000000000000000", + "delta_positive": "1/8000000000000000000000000", + "dimension_above_kappa": "491971122450052453611726932569939441043609700224474057455808722443125780596733533136624999988130553879110139923045977335760967097/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000", + "epsilon_below_one": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "epsilon_positive": "246153846153846153846153600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "gamma_sublinear": "1/2000000000000000000000000", + "guard_width": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "lambda_above_internal": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_sigma": "110469891382123861133787520736218685239832140422550106711103807918410980047703259889301788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_tau": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_above_lambda": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_below_one": "2187704074659053269433104051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "leaf_saving_above_bit": "110469891382123861133778659450028666902893274205695434780470941211685185743138040360243/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "literal_scalar_guard": "1", + "phase_boundary": "269255886111883479314991099644648533713048750891109557636200948729645684632351887487203757789591105011931098889929870370327450919972289/394115409732265729633160997421775731199794069476514498167468200820023068506193706555112716272207407476078528044337600000000000000000000000", + "phase_local": "1346279430559417396575940786747573332889326656949102227509004228821919709407178107938068846619221009326043276240329870370327450919972289/1970577048661328648165804987108878655998970347382572490837341004100115342530968532775563581361037037380392640221688000000000000000000000000", + "prime_interval_packing": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "q_below_internal": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_leaf": "55234945691061930566893705133163651557985503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_reservations": "1/4000000000000000000000000", + "q_positive": "2187704074659053269433104051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "record_suffix": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "row_product_gap": "23971789/25", + "scalar_work_above_kappa": "1074254871066505337507328127554845332050743894001325042096341310654438068799141436525766602968424239213414195838919972289/1970577048661328648165804987108878655998970347382572490837341004100115342530968532775563581361037037380392640221688000000000000000000000000", + "short_record_fallback": "1574306855524918884571274205389066327000920465903440952946365445540569604237553260610885033093742760664679982409998088157882306036774103883673142683918570723766876330273287070119111281479259396462862693773/1576461638929062918532643989687102924799176277906057992669872803280092274024774826220450865088829629904314112177350400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "small_field_exposure": "1/1000000000000000000000000" + } + }, + "beta": "1/1000000000000000000000000", + "binding": "bit", + "bit": { + "accepted": { + "lower": "1652402343749999997851238800561347063905497669045666488650474907/1652402343750000000000000000000000000000000000000000000000000000", + "saving": "136731504666219/200000000000000000", + "strict_gap_lower": "2438016547619109504615743675878715911813/676824000000000000000000000000000000000000000000000", + "upper": "1652402343749999997851238800561347063905497701989363999508104809/1652402343750000000000000000000000000000000000000000000000000000" + }, + "next_excluded": { + "lower": "8262011718750000006555831576444862302593421956910263100630461/8262011718750000000000000000000000000000000000000000000000000", + "saving": "85457190416387/125000000000000000", + "strict_gap_lower": "65013736811541319536185606023662851449/18048640000000000000000000000000000000000000000000", + "upper": "275400390625000000218527719214828743419780737420068666036349517/275400390625000000000000000000000000000000000000000000000000000" + }, + "saving": "136731504666219/200000000000000000" + }, + "bit_ordinary": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "bit_profile": { + "L": 0, + "N": 5808, + "W": 56402, + "child_multiplicities": { + "1": 378477, + "10": 5796, + "11": 3627, + "12": 12159, + "13": 4806, + "14": 10638, + "15": 2808, + "16": 9396, + "17": 4284, + "18": 3996, + "19": 2790, + "2": 178653, + "20": 15840, + "21": 45054, + "22": 20016, + "3": 91629, + "4": 28737, + "5": 24219, + "6": 12096, + "7": 11691, + "8": 7344, + "9": 5175 + }, + "m": 72, + "maxchild": 22, + "total_rank": 4055136 + }, + "complex": { + "accepted": { + "lower": "265143999999999999505356323836919762528275607173151/265144000000000000000000000000000000000000000000000", + "saving": "700918443859411/1000000000000000000", + "strict_gap_lower": "44967606923916385224702216933483/24104000000000000000000000000000000000000000000000", + "upper": "24103999999999999955032393076083614775297783066517/24104000000000000000000000000000000000000000000000" + }, + "next_excluded": { + "lower": "66286000000000000033428585232057842908390904631703/66286000000000000000000000000000000000000000000000", + "saving": "175229610964853/250000000000000000", + "strict_gap_lower": "-1162733399375924970726640217937/2305600000000000000000000000000000000000000000000", + "upper": "2305600000000000001162733399375924970726640217937/2305600000000000000000000000000000000000000000000" + }, + "saving": "700918443859411/1000000000000000000" + }, + "complex_profile": { + "L": 0, + "N": 1320, + "W": 12052, + "child_multiplicities": { + "1": 87534, + "10": 2790, + "11": 1062, + "12": 3591, + "13": 381, + "14": 2226, + "15": 5637, + "16": 264, + "17": 243, + "18": 7959, + "19": 501, + "2": 39834, + "20": 66, + "3": 29769, + "4": 12627, + "5": 5850, + "6": 4815, + "7": 2118, + "8": 4593, + "9": 1287 + }, + "m": 66, + "maxchild": 20, + "total_rank": 794112 + }, + "eta": "1/1000000000000000000000000", + "kappa": "1366380910073/2000000000000000", + "kappa_float": 0.0006831904550365, + "ordinary_chain": [ + "546573370825043616599485038841961823/800000000000000000000000000000000000000", + "109385155514905442426418537664349652181461624755757237/160000000000000000000000000000000000000000000000000000000", + "21877040740002110769946254600167413306868853489797819501857050278676903/32000000000000000000000000000000000000000000000000000000000000000000000000", + "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "scope": "Conditional finite supplier certificate; retained all-size interfaces and analytic assumptions", + "status": "PASS_EXACT_47_CONSTRAINT_ASSEMBLY" +} diff --git a/research/coordinated-crossover-pr200/frames/opframe-bases.json b/research/coordinated-crossover-pr200/frames/opframe-bases.json new file mode 100644 index 0000000000..dfbfb9f407 --- /dev/null +++ b/research/coordinated-crossover-pr200/frames/opframe-bases.json @@ -0,0 +1 @@ +[[18670,[[1,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,1,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18715,[[1,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18730,[[0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,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,1,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]]],[18731,[[0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,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,1,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]]],[18771,[[1,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,1,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18816,[[1,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18831,[[0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,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,1,0,0,0,1,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]]],[18832,[[0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,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,1,0,0,0,1,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]]],[18872,[[1,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,1,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18881,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[18882,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[18917,[[1,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18932,[[0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,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,1,0,0,0,0,1,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]]],[18933,[[0,0,1,0,0,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,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,1,0,0,0,0,1,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]]],[18973,[[1,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,1,0,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18982,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0],[0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[18983,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0],[0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19018,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,1,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,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]]],[19033,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19034,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19074,[[1,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,1,0,0,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19083,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19084,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19119,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,1,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,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]]],[19134,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19135,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19175,[[1,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,1,0,0,0,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19184,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19185,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19220,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,1,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,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]]],[19235,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19236,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19276,[[1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19285,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19286,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19321,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,1,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,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]]],[19336,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19337,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19377,[[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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19386,[[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,1,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,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,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]]],[19387,[[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,1,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,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,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]]],[19422,[[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,1,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,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]]],[19437,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19438,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19478,[[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,1,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,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]]],[19487,[[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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19488,[[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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19523,[[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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19538,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19539,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19579,[[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,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,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]]],[19588,[[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,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,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,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]]],[19589,[[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,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,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,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]]],[19624,[[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,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,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]]],[19639,[[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,1,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19640,[[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,1,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,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,1,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19680,[[1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19689,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19690,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19725,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19740,[[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,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,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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]]],[19741,[[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,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,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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]]],[19781,[[1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,1,0,0,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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,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]]],[19790,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1],[0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19791,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1],[0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19826,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,1,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19841,[[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,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,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,1,0,0,0,0,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,0,0,0,0,0]]],[19842,[[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,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,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,1,0,0,0,0,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,0,0,0,0,0]]],[20664,[[1,0,0,0,0,0,0,0,0,2,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],[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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20669,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20672,[[0,1,0,0,0,0,0,0,0,2,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],[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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20677,[[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20680,[[0,0,1,0,0,0,0,0,0,2,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],[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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20685,[[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20688,[[0,0,0,1,0,0,0,0,0,2,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],[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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20693,[[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20696,[[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,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,1,0,0,0,0,2,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20701,[[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20704,[[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,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,1,0,0,0,2,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,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,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20709,[[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20712,[[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,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,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,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,1,0,0,2,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]]],[20717,[[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20720,[[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,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,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,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,1,0,2,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]]],[20725,[[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20728,[[0,0,2,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,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20733,[[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20736,[[0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,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,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20741,[[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20744,[[0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20749,[[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20752,[[0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0]]],[20757,[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0,0,0]]],[20760,[[0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,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,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0]]],[20765,[[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,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,1,0,0,0,0,2,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,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,1,-1,0,0,0,0,0,0]]],[20768,[[0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0]]],[20773,[[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,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,1,0,0,0,2,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,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,1,-1,0,0,0,0,0,0]]],[20776,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0]]],[20781,[[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,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,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,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,1,0,0,2,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]]],[20784,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0]]],[20789,[[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,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,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,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,1,0,2,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]]],[20792,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0]]],[20797,[[0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0]]],[20800,[[0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0]]],[20805,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0]]],[20808,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0]]],[20813,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0]]],[20816,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0]]],[20821,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0]]],[20824,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0]]],[20829,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,0,0,0,0,1,0,0,0]]],[20832,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0]]],[20837,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0]]],[20840,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]]],[20845,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0]]],[20848,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]]],[20853,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1]]],[20864,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,0,0,0],[0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,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,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,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,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,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,1,-1,0,0,0,0]]],[20909,[[1,0,0,0,0,0,0,0,0,0,0,0,0,2,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,0,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[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,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,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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[20918,[[1,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,0,0,0,0,2,0,0,0,0],[0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,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,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,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,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,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,1,-1,0,0,0,0]]],[20963,[[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,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[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,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,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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[20972,[[1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,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,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,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,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,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,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,1,-1,0,0,0,0]]],[21017,[[1,1,0,0,1,1,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[21026,[[1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,1,-1,0,0,0,0]]],[21080,[[1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,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,1,-1,0,0,0,0]]],[21125,[[1,1,1,1,0,0,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[21134,[[1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,1,-1,0,0,0,0]]],[21188,[[1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,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,1,-1,0,0,0,0]]],[21242,[[1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,1,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,1,-1,0,0,0,0]]],[21296,[[1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,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,1,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,1,-1,0,0,0,0]]],[21350,[[1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,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,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,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,1,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0,0,0]]],[21395,[[1,1,1,1,0,0,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[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,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,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,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,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,1,0,0,0,2,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,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,1,-1,0,0,0,0,0,0,0,0,0,0]]],[21728,[[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,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,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,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,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,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,1,0,0,2,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]]],[21782,[[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,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,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,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,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,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,1,0,2,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]]],[21836,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,-8,1,1,1,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,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,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,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,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,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,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,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,1,2,0,0,0,0]]],[21890,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,4,1,1,1,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0]]],[21944,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,-8,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,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,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,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,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,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,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,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,1,2,0,0]]],[21989,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,-8,1,1],[0,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,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,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,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,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,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,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,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,1,2,0,0]]],[21998,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,4,1,1],[0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,2,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,2,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,2,1,0,0]]],[22043,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,4,1,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,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,2,1,0,0]]],[22052,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,-8],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,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,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,1,2]]],[22106,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,4],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,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,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,2,1]]],[22151,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,4],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,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,2,1]]],[22786,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,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,-1],[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,0,0,0,0,0,1,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,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[22792,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,0,0,1,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,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,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22793,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,0,0,1,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,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,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22814,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,0,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,-6,1,1,1,1,1,1,1,1],[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,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,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,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,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,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,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,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,1,-1,0,0,0,0,0,0,0,0]]],[22822,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0],[0,1,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,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,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,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,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,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,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,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,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,1,-1,0,0]]],[22833,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,1,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,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,-1],[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,0,0,0,0,0,1,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,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[22839,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,0,0,1,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,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,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22840,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,0,0,1,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,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,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22869,[[1,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,0,0,0,0,2,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,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,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,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,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,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,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,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,1,-1,0,0]]],[22880,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,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,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,-1],[0,0,0,0,0,0,1,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,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[22886,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,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,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,-1],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22887,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,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,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,-1],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22908,[[1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,-6,1,1,1,1,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,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,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,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,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,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,1,-1,0,0,0,0,0,0,0,0]]],[22916,[[1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,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,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,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,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,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,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,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,1,-1,0,0]]],[22927,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,2],[0,0,0,0,1,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,0,0,0,0,-1],[0,0,0,0,0,0,1,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,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[22974,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,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,2],[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,0,0,0,0,0,1,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,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[22980,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,2],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[22981,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,2],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[23010,[[1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,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,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,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,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,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,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,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,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,1,-1,0,0]]],[23021,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,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,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,1,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,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23027,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[23028,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,-1]]],[23068,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23115,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23162,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23168,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,1,-1]]],[23169,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,1,-1]]],[23209,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23245,[[1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,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,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,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,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,1,-1,0,0]]],[23256,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23303,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[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,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,1,-1]]],[23309,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23310,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23350,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,0,0,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,1,-1]]],[23397,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,0,0,1,1,1,1,1,1,0,0,0,-5],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2],[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,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,1,-1]]],[23403,[[1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23404,[[1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23444,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,0,0,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2],[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,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,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,1,-1]]],[23491,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,0,0,1,1,1,1,0,0,0,-5],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,2],[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,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,1,-1]]],[23538,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,0,0,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2],[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,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,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,1,-1]]],[23585,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,0,0,1,1,0,0,0,-5],[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,0,0,0,0,0,1,0,0,0,0,0,2],[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,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,1,-1]]],[23632,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2],[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,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,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,1,-1]]],[23679,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[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,0,0,0,0,0,1,0,0,0,2],[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,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,1,-1]]],[23685,[[1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23686,[[1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,-6],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,1,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23726,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[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,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,1,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23762,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,-6,1,1],[0,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,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,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,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,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,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,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,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,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,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,1,2,0,0]]],[23773,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[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,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,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,1,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23809,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,3,1,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,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,2,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0]]],[23820,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,0,0,0,0,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[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,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,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,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,1,2]]],[23867,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,0,0,0,0,0,5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[23873,[[1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,3],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,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,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[23874,[[1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,3],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,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,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[23895,[[1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,3],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,2,1]]],[23903,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,3],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,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,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,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,2,1]]],[24454,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-4],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,1,-1]]],[24466,[[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,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,2,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2]]],[24523,[[2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-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,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[24568,[[1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-4],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,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,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,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,1,-1]]],[24580,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-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,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[24694,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,1,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,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],[1,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-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,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[24751,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,0,0,0,0],[2,0,0,0,0,1,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,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],[1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-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,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[24922,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-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,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[25093,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-1,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[25207,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-1,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,-1,-1,0,0,-1,-1,-1,-1,-1,-1,-1,-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,-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,-1]]],[25549,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-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,-1,0,0,0,0,0],[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-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,-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,-1]]],[25765,[[1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,2],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[25777,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,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,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],[1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-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,-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,-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,-1,0],[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]]],[26467,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26509,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,-2],[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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,1,-1]]],[26526,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26585,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26627,[[1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,-2],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,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,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,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,1,-1]]],[26644,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26703,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26762,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26821,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26880,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26939,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26998,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27057,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27116,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27118,[[1,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,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,-1,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,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,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,1,0,0,0,0,0,0,0,2,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,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,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,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,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,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,1,-1,0,0,0,0]]],[27119,[[1,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,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,-1,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,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,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,1,0,0,0,0,0,0,0,2,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,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,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,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,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,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,1,-1,0,0,0,0]]],[27175,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27234,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27293,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27295,[[1,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,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,-1,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,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,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,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,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,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,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,1,0,0,0,0,2,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,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,1,-1,0,0,0,0]]],[27296,[[1,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,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,-1,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,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,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,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,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,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,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,1,0,0,0,0,2,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,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,1,-1,0,0,0,0]]],[27352,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27411,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27470,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27472,[[1,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,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,-1,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,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,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,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,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,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,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,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,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,1,0,2,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]]],[27473,[[1,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,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,-1,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,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,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,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,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,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,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,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,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,1,0,2,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]]],[27529,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27531,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,2,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,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0]]],[27532,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,2,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,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0]]],[27588,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2]]],[27590,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,2,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,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0]]],[27591,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,2,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,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0]]],[27647,[[1,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,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,-1,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,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],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,1,1,1,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,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,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,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,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,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,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,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,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,1,1,0,-1,1,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0]]],[27649,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0]]],[27650,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0]]],[27706,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,1,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0]]],[27765,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,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,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,-1],[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,0,0,0,0,0,1,1,1,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,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,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,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,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,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,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,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,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,1,1,1,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2]]],[27824,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,2,2,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[27826,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,2,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,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1]]],[27827,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,2,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,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1]]],[27866,[[1,1,1,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,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[28426,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28443,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,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,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[28471,[[1,2,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,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,2,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2]]],[28508,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28525,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,1,1,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,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[28590,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28607,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,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,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[28635,[[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,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,2,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,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,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2]]],[28672,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28689,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,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,0,0,0,0,2],[0,0,0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[28754,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28771,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,0,0,1,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,2],[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,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[28836,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28853,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,0,0,1,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,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[28918,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28935,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[29000,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29017,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[29082,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29099,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[29164,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29181,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[29246,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29263,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,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,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,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,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,1,-1]]],[29328,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29345,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,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,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,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,1,-1]]],[29410,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29427,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,1,0,0,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,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,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,1,-1]]],[29492,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29509,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,1,0,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,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,1,-1]]],[29574,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29591,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,1,0,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,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,1,-1]]],[29656,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29673,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,1,0,0,0,0,0,0,0,2],[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,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,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,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,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,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,1,-1]]],[29738,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29755,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,1,0,0,0,0,0,0,2],[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,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,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,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,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,1,-1]]],[29820,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29837,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,1,0,0,0,0,0,2],[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,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,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,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,1,-1]]],[29902,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29919,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,1,0,0,0,0,2],[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,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,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,1,-1]]],[29984,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,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,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,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,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,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,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2]]],[30001,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,0,0,0,2],[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,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,1,-1]]],[30066,[[1,1,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,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,-1,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],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,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,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,1,1,0,-1,1,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0]]],[30083,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[30148,[[2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,1,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0]]],[30165,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[30230,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,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,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,-1],[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,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,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,1,1,1,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2]]],[30247,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,2]]],[30312,[[2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,2,2,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[30329,[[2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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,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,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[30357,[[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,-1,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],[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,1,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,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,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,-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,-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,-1,0,0,0,0,0,0,0,0],[1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,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,-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,-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,-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,-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,-1,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]]]] diff --git a/research/coordinated-crossover-pr200/frames/verify-bit-frames.py b/research/coordinated-crossover-pr200/frames/verify-bit-frames.py new file mode 100644 index 0000000000..7093a3b805 --- /dev/null +++ b/research/coordinated-crossover-pr200/frames/verify-bit-frames.py @@ -0,0 +1,37 @@ +import sys,json,gzip,hashlib,argparse,types,signal,contextlib,time +from pathlib import Path +from fractions import Fraction +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +ap=argparse.ArgumentParser();ap.add_argument('--package',required=True);ap.add_argument('--frames',required=True);ap.add_argument('--out',required=True);ap.add_argument('--full',action='store_true');a=ap.parse_args();P=Path(a.package).resolve();O=Path(a.out);O.mkdir(parents=True,exist_ok=True) +resource=types.ModuleType('resource');resource.RLIMIT_CPU=0;resource.RUSAGE_SELF=0;resource.setrlimit=lambda *xs:None;resource.getrusage=lambda *xs:types.SimpleNamespace(ru_maxrss=0);sys.modules.setdefault('resource',resource) +if not hasattr(signal,'alarm'):signal.alarm=lambda *xs:None +sys.path.insert(0,str(P/'bit'));sys.path.insert(0,str(P/'arithmetic')) +from word import Candidate +from terminal import prove +from prime_witnesses import certificate as primes +from prove import certify +W=Candidate();C=W.C;B=json.loads(Path(a.frames).read_text());pins={str(p):hashlib.sha256(p.read_bytes()).hexdigest() for p in W.input_paths+[Path(a.frames),P/'selected/bit/sinks.json',P/'bit/word.py',P/'bit/base_word.py',P/'bit/terminal.py',P/'bit/prime_witnesses.py',Path(W.module.__file__)]} +public=W.opframe[:] +for i,rows in B:W.opframe[i]=W.register(rows) +W.changed_frames=[i for i,(x,y) in enumerate(zip(W.original_opframe,W.opframe)) if x!=y];W.endframe={s:W.opframe[xs[-1]] for s,xs in W.role_ops.items()} +W.exact_frames();baseline=W.row();selection=json.loads((P/'selected/bit/sinks.json').read_text()) +print('PASS full exact rational value, geometry and alias checks; changes',len(B),flush=True) +if a.full: + with contextlib.redirect_stdout(sys.stderr):record=prove(W,selection) + record.pop('seconds');record.pop('maxrss');row=record['profile'];prime=primes(W) + (O/'prime-witnesses.json.gz').write_bytes(gzip.compress((json.dumps(prime,sort_keys=True,separators=(',',':'))+'\n').encode(),mtime=0));prime={k:v for k,v in prime.items() if k!='frame_witnesses'} + row['child_histogram']={int(k):v for k,v in row['child_histogram'].items()} + co=certify(row) +else: + # Exact integer terminal ledger follows the original cancellation once complete + # target trajectories and exact all-column replay are admitted by the full mode. + row=baseline;record=None;prime=None;co=None + +def js(x): + if isinstance(x,Fraction):return str(x) + if isinstance(x,dict):return {str(k):js(v) for k,v in x.items()} + if isinstance(x,(tuple,list)):return [js(v) for v in x] + return x +assert pins=={p:hashlib.sha256(Path(p).read_bytes()).hexdigest() for p in pins} +R=js(dict(status='FULL_FINITE_REPLAY_PASS' if a.full else 'EXACT_FRAME_ONLY_NOT_FULL_REPLAY',input_pins=pins,changed_public_ops=len(B),baseline_profile=baseline,profile=row,terminal=record,coarse=co,prime_witnesses=prime,word_scalar_ops_unchanged=True,gauge_endpoint_and_aliases_unchanged=True)) +(O/'verification.json').write_text(json.dumps(R,indent=1)+'\n');print('PASS',R['status'],R['coarse']['coarse_saving'] if co else '',flush=True) \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/geometry/BANK-PROOF-PR200.md b/research/coordinated-crossover-pr200/geometry/BANK-PROOF-PR200.md new file mode 100644 index 0000000000..5f4075b8a2 --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/BANK-PROOF-PR200.md @@ -0,0 +1,57 @@ +# Completed entrance banks on the PR200 physical bit word + +2026-10-09. A sufficient finite construction, retaining the upstream all-size interfaces. This is not an unconditional multiplication theorem and is not a new Lean certificate. + +## Exact unchanged input + +PR200 commit `a1175449f34d39ff933d9d8ab23ced1f32b290ec`, package `research/paired-cube-diagonal-bit-168`. Its graph, scalar word, fixed source-pair chronology, physical frame bases, compensated handoffs, terminal sinks and prime witnesses are unchanged. The source includes 18,908 logical auxiliary roles, 1,760 compensated aliases and 34 terminal sinks, leaving 17,114 physical auxiliary chains. There are 2,200 surviving genuine rank-20 entrance gauges. The 1,760 rank-21 recipient gauges are internal splices and receive no separate bank allocation. Deleted terminals are neither gauges nor alias endpoints. The remaining 14,914 physical chains are retained completely. + +The original data channels are 1,760 sources and 1,760 targets. The original complete paid profile is width72, stock20,634, rank mass1,483,712, deficit1,936, with2,200 rank60 exterior children. Source births are not treated as dirty entrance gauges. + +## Universal endpoint and explicit allocation + +Reuse our PR186 completed-core endpoint and paid group routing. For a coordinate projector P and arbitrary incoming addresses x,y over the eligible local ring, the literal map is + +`S_P(x,y) = (x - P*x + P*y, y - P*y + P*x)`. + +On an included coordinate this exchanges x and y; on every other coordinate it preserves both. Thus disjoint coordinate blocks partitioning all72 coordinates compose exactly to the full swap, including arbitrary correlated dirty contents and spectator fields. The reverse block schedule is the literal inverse. This is a ring-general identity; it does not replace the odd-prime address space with F2 just because the payload decoder is binary. + +The established common weighted chart conjugates every block by the same Q_A, so intermediate Q_A^-1 Q_A cancels. For each role, the inherited fixed normalizer sends its true residual projector to its assigned block. Group-indexed routing assigns a role invocation g to bank gH^-1, so each occurrence visits every bank exactly once. Normalizers inside a bank can be made distinct by the inherited finite scalar choice without changing conjugation. Replicas execute serially and stages own different banks. No uninitialized bank or unfinished core is reused. + +Use nine physical replicas of the full unchanged core. In each stage, allocate the9*2,200 selected role-copy occurrences into1,100 banks with18 four-coordinate blocks. Allocate the9*14,914 other occurrences into44,742 banks with three24-coordinate blocks. Both partitions fill every bank exactly; no positive-rank completion child remains. The generator in `pack-pr200.py` maps sorted actual surviving role IDs and replica IDs to explicit bank/block numbers and hashes every assignment. It checks all462,078 role-copy uses across three stages exactly once. Nine replicas are physical, whereas factor three merely clears the rational moment stock. + +There are45,842 banks per stage,137,526 across all stages, and31,680 data registers in nine replicas. The literal persistent stock is169,206, exactly9*(56,402/3). + +## Fully charged child inventory and exact price + +Retain every internal, source, target, center, compensating and terminal-substitution child. Remove exactly the2,200 rank60 exterior children from the original per-vertex histogram. No other child count changes. Then + +`W = 2*1760 + 3*(2200/18 +14914/3) =56402/3`, + +`rank =1483712 -2200*60 =1351712`, + +`72*W -rank =1936`. + +The largest retained child is22. On the integer normalization used by the moment verifier, stock is56,402, rank mass4,055,136, deficit5,808, and every child count is multiplied by three. This normalization removes6,600 rank60 exteriors, corresponding to the2,200 per-vertex children above; it must not be confused with the nine-replica literal realization. + +The original worst-case bad fraction10^-16 and fallback32*72^2 per actual retained child are charged. Independent outward interval calculations based on4/3 and2 certify + +`a0=683528191056257/10^18`. + +They reject the adjacent coarse grid point for this fixed profile and worst-case envelope. The established atom wrapper uses a_old=384599/10^10 and the first10^-24 atom above a0/(1+a0-a_old), giving the paid ordinary saving + +`A_B=170771888233960718836822306974273386891/(250*10^39)` + +`A_B≈0.0006830875529358429`. + +Both strict adapter/borrowed-row tolls remain charged. The parent must compose this bit saving with an admitted complex supplier, its full scalar/group/router/layout bills and the unchanged47-constraint balanced body. Component gains are never added. No final kappa is claimed in this lane until that assembly runs. + +## Other crossover ideas actually assessed + +The current new word still has exactly the4/24 residual families and both tile72 exactly. The rational heterogeneous configuration theorem instantiates the same volume-filling construction; there is no new LP improvement to add. It is ready for future genuinely different residual types. The optional nonorthogonal parity cover cannot be substituted into this odd-prime address model. Even in its proper binary-address model, its overlapping local cores must stay charged. The Parseval phase identity similarly repairs a binary Gaussian endpoint, but no unchanged PR200 local child is a new arbitrary Gram-resolving coding core. These identities are retained as design tools and are not hidden supplier oracles. + +## Verification and retained scope + +`python -B geometry/pack-pr200.py --full` executes the immutable PR200 bit admission, its exact rational frame/source/gauge/partner chronology, all original and terminal-modified F2 and defining integer columns, adverse controls and all24,401 frame prime witnesses. It then checks literal bank coordinate columns, inverse columns, omitted/duplicate blocks, exact assignments and both rational moment engines. On Windows the owned wrapper supplies only the removed ru_maxrss diagnostic when POSIX resource is unavailable; no mathematical checker changes. + +General Clifford/tensor realization, uniform weighted local-ring compilation, common chart selection, restored rows, paid routing/layout, prime supply, precision/recovery and all-size analytic transfer remain the original stated conditions. This construction changes a finite word's dirty-bank allocation under those same conditions. Credit PR186's original bank proof, Chafik Boukhalfa's PR200 physical word, eumemic's PR168 lineage, James Chang's terminal substitution, and every retained upstream attribution. \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/geometry/audit-gauge-charts.py b/research/coordinated-crossover-pr200/geometry/audit-gauge-charts.py new file mode 100644 index 0000000000..d0b050bc99 --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/audit-gauge-charts.py @@ -0,0 +1,51 @@ +"""Reuse PR197's exact gauge chart factors on unchanged PR200 entrances. +Checks both inverse matrix identities, literal elementary factor replay, +all factor/unit denominators, and a conservative fully charged routing bound. +""" +from pathlib import Path +from collections import Counter +from fractions import Fraction as Q +from math import gcd +import sys,json,hashlib,importlib.util +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +spec=importlib.util.spec_from_file_location('own_bank',HERE/'pack-pr200.py');G=importlib.util.module_from_spec(spec);spec.loader.exec_module(G) +packing=HERE/'retained-packing.py' +sp=importlib.util.spec_from_file_location('retained_exact_chart_factorizer',packing);P=importlib.util.module_from_spec(sp);sp.loader.exec_module(P) +word=G.proof.Candidate();C=word.C +selected={s:z for s,z in word.gauge.items() if s not in word.donor};inventory=Counter(z['frame'] for z in selected.values()) +G.need(len(selected)==2200 and len(inventory)==220,'actual unchanged220gauge frames') +records=[];maxops=maxnum=maxden=maxC=maxB=0 +for f,count in sorted(inventory.items()): + A=C.A[f];sigma=C.B[f];G.need(len(A)==4 and len(sigma)==20,'actual rank4 residual') + residual=[] + for a in A: + r=[15*x-sum(a) for x in a];d0=gcd(*r);residual.append([x//d0 for x in r]) + G.need(all(9*sum(x*y for x,y in zip(a,b))-sum(a)*sum(b)==0 for a in residual for b in sigma),'literal Gorthogonal residual basis') + B=list(map(list,zip(*(residual+sigma))));inv,d,ops=P.inverse_integer(B) + for left,right in [(B,inv),(inv,B)]: + G.need(all(sum(x*y for x,y in zip(row,col))==d*int(i==j) for i,row in enumerate(left) for j,col in enumerate(zip(*right))),'two exact inverse identities') + replay=[list(map(Q,r)) for r in B] + for op,i,j,n,den in ops: + if op=='swap':replay[i],replay[j]=replay[j],replay[i] + elif op=='scale':replay[i]=[Q(n,den)*x for x in replay[i]] + else: + G.need(op=='add','retained elementary factor type');replay[i]=[x+Q(n,den)*y for x,y in zip(replay[i],replay[j])] + G.need(all(x==int(i==j) for i,row in enumerate(replay) for j,x in enumerate(row)),'independent factor replay') + maxops=max(maxops,len(ops));maxnum=max(maxnum,max(abs(o[3]) for o in ops));maxden=max(maxden,d,max(o[4] for o in ops));maxC=max(maxC,max(abs(x) for r in inv for x in r));maxB=max(maxB,max(abs(x) for r in B for x in r)) + records.append(dict(frame=f,count=count,basis=B,inverse_numerators=inv,inverse_denominator=d,factors=ops)) +G.need(max(maxnum,maxden,maxC,maxB,18)<2**80,'all literal inverse and chart units below inherited prime bound') +# t in1..18 supplies18 distinct fixed scalar choices per selected bank. At most +# one scalar per earlier normalizer is forbidden; conjugation stays unchanged. +# Rational distinctness survives q>2^80 by this bound on cleared differences. +cleared_difference_bound=2*18*max(maxC,1)*max(maxden,1) +G.need(cleared_difference_bound<2**80,'distinct normalizers remain distinct modulo every allowed prime') +factor_bound=maxops+71+72 +physicalstock=169206;physicalchains=17114;full_core_stage_occurrences=27 +calls=2*full_core_stage_occurrences*((physicalstock-1)+physicalchains*72*factor_bound) +G.need(calls<2**40,'fully literal replicated extra selector bound') +raw=json.dumps(records,sort_keys=True,separators=(',',':')).encode() +import gzip +(HERE/'pr200-gauge-charts.json.gz').write_bytes(gzip.compress(raw,mtime=0)) +out=dict(status='PASS_ALL_ACTUAL_GAUGE_CHARTS_AND_ROUTING_BILL',source_pin='a1175449f34d39ff933d9d8ab23ced1f32b290ec',retained_factorizer_sha256=hashlib.sha256(packing.read_bytes()).hexdigest(),gauges=2200,distinct_gauge_frames=220,max_chart_factors=maxops,max_factor_numerator=maxnum,max_denominator_or_inverse_denominator=maxden,max_inverse_numerator=maxC,max_basis_numerator=maxB,chart_witness_sha256=hashlib.sha256((HERE/'pr200-gauge-charts.json.gz').read_bytes()).hexdigest(),greedy_distinct_scalars=list(range(1,19)),cleared_normalizer_difference_bound=cleared_difference_bound,permutation_transpositions_bound=71,extra_distinct_scalar_coordinate_scales_bound=72,combined_chart_factor_bound=factor_bound,nine_full_replicas=True,total_stage_core_occurrences=27,literal_persistent_stock=physicalstock,conservative_extra_selector_calls=calls,selector_calls_below_2pow40=True,prime_guard='Every nonzero factor/inverse denominator and fixed scalar is smaller than2^80; all actual changes are invertible for every inherited primeq>2^80. Distinct normalizers remain distinct by cleared entry bounds.',routing_payment='These finite extra calls use inherited completed old ordinary selector; they are O(K V w^(1-a_old)), absorbed by strict finite-leaf atom/row toll as in PR197 PROOF5. No extra positive-rank children and no new external row reserve.',scope='Exact finite address chart, inverse, unit and replicated routing bill on same220gauge frames; allsize weighted/restored selector guarantee stays inherited.') +(HERE/'PR200-GAUGE-CHART-AUDIT.json').write_text(json.dumps(out,indent=2,sort_keys=True));print(json.dumps(out,indent=2)) \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/geometry/base_two_moment.py b/research/coordinated-crossover-pr200/geometry/base_two_moment.py new file mode 100644 index 0000000000..14a90fa0e7 --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/base_two_moment.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +"""Maintainer arithmetic cross-check of the pinned PR39 certificate. + +Uses no producer/checker imports. Counts are inputs, not proved by this script. +80-term rational logarithms and 12-term exponentials independently enclose +the two moments. The accompanying written review addresses their realization. +""" +import argparse +from fractions import Fraction as Q +from hashlib import sha256 +import json +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +GRID = 10**30 + + +def require(condition, message): + if not condition: + raise ValueError(message) + + +def log_unit(x): + require(1 <= x <= 2, "logarithm range") + z = (x-1)/(x+1) + lo = 2*sum((z**(2*j+1)/(2*j+1) for j in range(80)), Q(0)) + return lo, lo+2*z**161/(161*(1-z*z)) + + +def log_bounds(x): + k = 0 + while x > 2: + x /= 2 + k += 1 + lo, hi = log_unit(x) + l2, u2 = log_unit(Q(2)) + lo, hi = lo+k*l2, hi+k*u2 + # Outward rational rounding keeps later certificates compact. + return Q((lo*GRID).__floor__(), GRID), Q((hi*GRID).__ceil__(), GRID) + + +def exp_bounds(x): + require(0 <= x < 1, "exponential range") + term = total = Q(1) + for j in range(1, 13): + term *= x/j + total += term + tail = term*x/13/(1-x/14) + return total, total+tail + + +def moment(m, W, entries, saving): + lo = hi = Q(0) + for t, count in entries: + t, count = int(t), int(count) + require(0 < t < m and count > 0, "improper child") + l, u = log_bounds(Q(m, t)) + lower = exp_bounds(saving*l)[0] + upper = exp_bounds(saving*u)[1] + lo += Q(t*count, m*W)*lower + hi += Q(t*count, m*W)*upper + return Q((lo*GRID).__floor__(), GRID), Q((hi*GRID).__ceil__(), GRID) + diff --git a/research/coordinated-crossover-pr200/geometry/check-normalizer-routing.py b/research/coordinated-crossover-pr200/geometry/check-normalizer-routing.py new file mode 100644 index 0000000000..2bbe2d3bcc --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/check-normalizer-routing.py @@ -0,0 +1,23 @@ +"""Literal fixed scalars distinguish all same-invocation bank normalizers. +No greedy unknown chart is assumed: H_b=(b+1)*Pi_b*diag(B^-1,I_48). +All gauges share the same unchanged24coordinate stage; outside-coordinate +unit columns distinguish H_b for b=0..17 at every primeq>2^80. +""" +from pathlib import Path +import json +H=Path(__file__).resolve().parent;records=[] +for stage in range(3): + local=set(range(24*stage,24*(stage+1)));j=next(i for i in range(72) if i not in local) + for width,blocks in [(4,18),(24,3)]: + original=list(range(24*stage,24*stage+width));witness=[] + for block in range(blocks): + desired=list(range(block*width,(block+1)*width));src=original+[i for i in range(72) if i not in original];dst=desired+[i for i in range(72) if i not in desired] + pi=dict(zip(src,dst));assert set(pi)==set(pi.values())==set(range(72)) + assert [pi[k] for k in original]==desired + # Embedded B^-1 fixes e_j exactly, so H_b e_j is this literal unit column. + witness.append(dict(block=block,scalar=block+1,unit_column=j,result_row=pi[j],result_coefficient=block+1)) + for a,left in enumerate(witness): + for right in witness[a+1:]:assert (left['result_row'],left['result_coefficient'])!=(right['result_row'],right['result_coefficient']) + records.append(dict(stage=stage,width=width,blocks=blocks,outside_stage_column=j,witnesses=witness)) +out=dict(status='PASS_LITERAL_DISTINCT_NORMALIZERS',records=records,prime_guard='All1..18 are different nonzero units at every primeq>2^80, and remain units/distinct in Z/q^w. Each normalizer scales a literal outside-stage unit column differently. Scaling doesnotchange projectorconjugation.',per_role_scalar_coordinate_factors=72,already_charged_in_chart_bound329=True,no_same_invocation_bank_alias=True) +(H/'LITERAL-NORMALIZER-ROUTING.json').write_text(json.dumps(out,indent=2,sort_keys=True));print(out['status']) \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/geometry/pack-admitted-frames.py b/research/coordinated-crossover-pr200/geometry/pack-admitted-frames.py new file mode 100644 index 0000000000..c4e8ffe01f --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/pack-admitted-frames.py @@ -0,0 +1,38 @@ +"""Compose admitted frame-only changes with concrete stage-private entrance banks. +Reconstructs every modified frame/physical paid chain, audits all actual prime +witnesses, and independently recomputes two exact paid bank moment engines. +The referenced frame receipt provides the full dirty-column terminal replay. +""" +from pathlib import Path +from fractions import Fraction as Q +from collections import Counter +import sys,json,gzip,hashlib,argparse,importlib.util +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +spec=importlib.util.spec_from_file_location('geometry_bank_pr200',HERE/'pack-pr200.py');G=importlib.util.module_from_spec(spec);spec.loader.exec_module(G) +need=G.need +ap=argparse.ArgumentParser();ap.add_argument('--candidate',required=True);a=ap.parse_args() +D=Path(a.candidate);record=json.loads((D/'checked/verification.json').read_text());frames=D/'opframe-bases.json';primefile=D/'checked/prime-witnesses.json.gz' +need(record['status']=='FULL_FINITE_REPLAY_PASS','complete independent frame dirty-word admission') +for path,want in record['input_pins'].items():need(hashlib.sha256(Path(path).read_bytes()).hexdigest()==want,'actual immutable input pin '+path) +need(record['word_scalar_ops_unchanged'] and record['gauge_endpoint_and_aliases_unchanged'],'unchanged whole-word endpoint classes') +word=G.proof.Candidate();before={k:word.w[k] for k in ['gauges','pairs','rootroles','root_frame','source_frame','sources','reads']};changes=json.loads(frames.read_text()) +for index,B in changes:word.opframe[index]=word.register(B) +word.changed_frames=[i for i,(x,y) in enumerate(zip(word.original_opframe,word.opframe)) if x!=y];word.endframe={s:word.opframe[xs[-1]] for s,xs in word.role_ops.items()} +word.exact_frames();row=word.row() +need(G.encode(row)==record['baseline_profile'],'independent complete modified physical baseline ledger') +need(before=={k:word.w[k] for k in before},'bank source/gauge/endpoints truly unchanged') +need(Counter({int(k):v for k,v in record['terminal']['child_delta'].items()})==Counter({3:-102,21:-102}),'paid34terminal child substitution unchanged') +H={int(k):v for k,v in row['child_histogram'].items()};H[3]-=102;H[21]-=102 +need(H=={int(k):v for k,v in record['profile']['child_histogram'].items()},'independent terminal-paid complete histogram') +prime=G.raw_prime_certificate(word);need(prime==json.loads(gzip.decompress(primefile.read_bytes())),'independent allused modifiedframe prime witness audit') +packed=G.packed(record['profile'],word.w);coarse=G.proof.certify(packed['scaled_moment_profile']) +from base_two_moment import moment as alternate +q=packed['scaled_moment_profile'];hist=list(q['child_histogram'].items());W=q['W_per_vertex'];a0=coarse['coarse_saving'];fallback=32*72**2*sum(n for r,n in hist) +_,upper=alternate(72,W,hist,a0);_,bad=alternate(72,W,[(1,fallback)],a0);need(upper+Q(1,10**16)*bad<1,'independent paid moment accepted') +lower,_=alternate(72,W,hist,a0+Q(1,10**18));badlower,_=alternate(72,W,[(1,fallback)],a0+Q(1,10**18));need(lower+Q(1,10**16)*badlower>1,'independent adjacent paid moment rejected') +allocation=G.literal_allocation(word.w);endpoints=G.endpoint_checks() +for path,want in record['input_pins'].items():need(hashlib.sha256(Path(path).read_bytes()).hexdigest()==want,'inputs remain identical') +out=dict(status='PASS_ADMITTED_FRAME_BANK_COMPOSITION',frame_receipt_sha256=hashlib.sha256((D/'checked/verification.json').read_bytes()).hexdigest(),opframe_override_sha256=hashlib.sha256(frames.read_bytes()).hexdigest(),opframe_changes=len(changes),profile=packed,coarse=coarse,literal_allocation=allocation,endpoints=endpoints,prime_witness_sha256=hashlib.sha256(primefile.read_bytes()).hexdigest(),all_used_frame_prime_audit={k:v for k,v in prime.items() if k!='frame_witnesses'},whole_word_receipt=record['status'],unchanged_entrance_alias_and_terminal_classes=True,scope='Sufficient finite dirty-bank composition of independently admitted full frame word. Original allsize supplier interfaces retained; parent owns finalbalanced assembly.') +name='packed-'+D.name+'.json';(HERE/name).write_text(json.dumps(G.encode(out),indent=2,sort_keys=True)) +print(json.dumps(G.encode(dict(status=out['status'],output=str(HERE/name),changed_ops=len(changes),stock=packed['W_per_vertex'],rank=packed['rank_per_vertex'],coarse=coarse['coarse_saving'],ordinary=coarse['ordinary_saving'],ordinary_float=float(coarse['ordinary_saving']),frames=prime['total_used_frames'])),indent=2)) \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/geometry/pack-pr200.py b/research/coordinated-crossover-pr200/geometry/pack-pr200.py new file mode 100644 index 0000000000..1407b17750 --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/pack-pr200.py @@ -0,0 +1,121 @@ +"""Apply established completed entrance banks to the immutable PR200 physical word. +Light mode is candidate pricing, never complete word admission. --full replays all +source/target/dirty columns and exact frame/prime/terminal checks through PR200. +""" +from pathlib import Path +from fractions import Fraction as Q +from collections import Counter +import json,sys,importlib.util,hashlib,contextlib,types +# Windows shim supplies only the removed resource diagnostic, never proof data. +try: import resource +except ImportError: + resource=types.ModuleType("resource");resource.RUSAGE_SELF=0 + resource.getrusage=lambda _:types.SimpleNamespace(ru_maxrss=0) + sys.modules["resource"]=resource +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +PKG=HERE.parents[2]/'research/paired-cube-diagonal-bit-168' +sys.path.insert(0,str(PKG/'bit'));sys.path.insert(0,str(PKG/'arithmetic')) +spec=importlib.util.spec_from_file_location('pr200_paid_proof',PKG/'bit/prove.py') +proof=importlib.util.module_from_spec(spec);spec.loader.exec_module(proof) +# Match Linux provenance spelling only; determinants and factor identities untouched. +raw_prime_certificate=proof.prime_certificate +def portable_prime_certificate(word): + record=raw_prime_certificate(word) + record['input_sha256']={k.replace(chr(92),'/'):v for k,v in record['input_sha256'].items()} + return record +proof.prime_certificate=portable_prime_certificate +def need(ok,why): + if not ok:raise ValueError(why) +def encode(z): + if isinstance(z,Q):return str(z) + if isinstance(z,dict):return {str(k):encode(v) for k,v in z.items()} + if isinstance(z,(tuple,list)):return [encode(v) for v in z] + return z + +def endpoint_checks(): + records=[] + for width,copies in [(4,18),(24,3)]: + for ring in [0,2,3,5]: + def run(column,blocks): + x=[int(j==column) for j in range(72)];y=[int(72+j==column) for j in range(72)] + for block in blocks: + for j in range(block*width,(block+1)*width):x[j],y[j]=y[j],x[j] + return x+y + for column in range(144): + want=[int(j==(column+72)%144) for j in range(144)] + need(run(column,range(copies))==want,'all dirty address columns full swap') + need(run(column,list(range(copies))+list(reversed(range(copies))))==[int(j==column) for j in range(144)],'all inverse columns') + for blocks in [list(range(copies-1)),list(range(copies))+[copies-1]]: + need(run(72-width,blocks)!=[int(j==144-width) for j in range(144)],'adverse omitted/duplicate block') + records.append(dict(width=width,blocks=copies,address_ring=ring,forward_columns=144,inverse_columns=144,negative_controls=2)) + return records + +def literal_allocation(word_data): + pairs=word_data['pairs'];donor={b:a for a,b in pairs} + selected=sorted(z['role'] for z in word_data['gauges'] if z['role'] not in donor) + sinks=json.loads((PKG/'selected/bit/sinks.json').read_text()) + removed={word_data['rootroles'][e['root']] for e in sinks} + need(len(removed)==34 and not removed.intersection(selected),'terminal roles excluded from selected entrance banks') + need(not set(selected).intersection(word_data['sources'].values()),'source births are not entrance gauges') + allroles={donor.get(s,s) for s in range(18908)}-removed + rest=sorted(allroles-set(selected)) + need(len(allroles)==17114 and len(selected)==2200 and len(rest)==14914,'every actual retained physical chain exactly once') + records=[] + for stage in range(3): + totalbanks=0;assigned=set();digest=hashlib.sha256() + for family,(roles,width,blocks) in enumerate([(selected,4,18),(rest,24,3)]): + occurrences=[(replica,role) for replica in range(9) for role in roles] + need(len(occurrences)%blocks==0,'exact full banks, no omitted residual child') + for offset in range(0,len(occurrences),blocks): + group=occurrences[offset:offset+blocks] + need(len(group)==blocks and blocks*width==72,'each literal bank fills 72 coordinates') + for block,label in enumerate(group): + need(label not in assigned,'each role-copy receives one bank slot per stage');assigned.add(label) + digest.update(f'{stage}:{family}:{offset//blocks}:{block}:{label[0]}:{label[1]}\n'.encode()) + totalbanks+=len(occurrences)//blocks + need(len(assigned)==9*17114 and totalbanks==45842,'complete stage-private physical stock') + records.append(dict(stage=stage,assigned_role_copies=len(assigned),selected_banks=1100,undeferred_banks=44742,total_banks=totalbanks,allocation_sha256=digest.hexdigest())) + return dict(stages=records,data_registers=2*9*1760,total_persistent_registers=3*45842+2*9*1760,arbitrary_dirty_contents=True,normalization='Common ancestor weighted chart; literal disjoint coordinate partialSwap blocks; role normalizers chosen distinctly inside each bank by inherited fixed conjugation/routing construction.') + +def packed(row,word_data): + pairs=word_data['pairs'];recipients={b for a,b in pairs};gauges=word_data['gauges'] + starts={z['role']:z['dim'] for z in gauges if z['role'] not in recipients} + need(Counter(starts.values())=={20:2200},'genuine surviving entrance gauges') + need(not set(starts).intersection(word_data['sources'].values()),'source births are not bank entrance gauges') + touched={s for i in word_data['phase1'] for s in word_data['ops'][i][:2]} + need(not set(starts).intersection(touched),'entrance gauges untouched throughout centre phase') + need(Counter(z['dim'] for z in gauges if z['role'] in recipients)=={21:1760},'spliced recipients not bank roles') + need(row['R']==17114 and row['terminal_sinks']==34,'retained exact physical terminals') + rest=row['R']-len(starts) + H={int(k):v for k,v in row['child_histogram'].items()};need(H.pop(60)==2200,'remove exactly actual entrance exteriors') + W=Q(2*row['v'])+3*(Q(len(starts),18)+Q(rest,3)) + mass=sum(k*v for k,v in H.items());need(72*W-mass==1936,'full telescoping deficit') + t=9 + need(t*2200%18==0 and t*rest%3==0,'integral stage-private configuration') + scaled=dict(row,W_per_vertex=int(3*W),rank_per_vertex=3*mass,deficit_per_vertex=3*1936,maxchild=max(H),child_histogram={k:3*v for k,v in H.items()}) + return dict(m=72,W_per_vertex=W,rank_per_vertex=mass,deficit_per_vertex=1936,maxchild=max(H),child_histogram=H,selected_entrances=2200,undeferred_physical_chains=rest,physical_replicas=t,selected_banks_per_stage=t*2200//18,undeferred_banks_per_stage=t*rest//3,scaled_moment_profile=scaled) + +def main(): + import gzip + cert=json.loads((PKG/'certificate.json').read_text());row=cert['bit']['profile'] + data=json.loads(gzip.decompress((PKG/'selected/bit/word_p12.json.gz').read_bytes())) + full='--full' in sys.argv + if full: + import io + sink=io.StringIO() + with contextlib.redirect_stdout(sink):proof.main() + actual=json.loads(sink.getvalue());need(actual==cert['bit'],'complete word admission reproduces frozen bit certificate') + row=actual['profile'] + p=packed(row,data) + coarse=proof.certify(p['scaled_moment_profile']) + from base_two_moment import moment as alternate_moment + q=p['scaled_moment_profile'];H=list(q['child_histogram'].items());a=coarse['coarse_saving'];W=q['W_per_vertex'];edgecount=sum(n for r,n in H) + _,upper=alternate_moment(72,W,H,a);_,bad=alternate_moment(72,W,[(1,32*72**2*edgecount)],a) + need(upper+Q(1,10**16)*bad<1,'independent base-two paid acceptance') + lower,_=alternate_moment(72,W,H,a+Q(1,10**18));badlow,_=alternate_moment(72,W,[(1,32*72**2*edgecount)],a+Q(1,10**18)) + need(lower+Q(1,10**16)*badlow>1,'independent adjacent paid exclusion') + out=dict(status='PASS_FULL_BIT_ADMISSION' if full else 'PRICED_CANDIDATE_NOT_ADMITTED',base_pin='a1175449f34d39ff933d9d8ab23ced1f32b290ec',base_certificate_sha256=hashlib.sha256((PKG/'certificate.json').read_bytes()).hexdigest(),profile=p,coarse=coarse,endpoints=endpoint_checks(),literal_allocation=literal_allocation(data),universal_proof='Established ring-general disjoint partialSwap endpoint, arbitrary dirty contents, nine physical replicas, same weighted chart and charged routing. No source-birth bank gauge or characteristic-two odd-field substitution.',scope='Bit endpoint, complete paid child profile and exact moments only. Full root balanced assembly remains primary-owned.') + (HERE/('packed-pr200-full.json' if full else 'packed-pr200-priced.json')).write_text(json.dumps(encode(out),sort_keys=True,indent=2)) + print(json.dumps(encode(dict(status=out['status'],W=p['W_per_vertex'],rank=p['rank_per_vertex'],coarse=coarse['coarse_saving'],effective=coarse['ordinary_saving'],effective_float=float(coarse['ordinary_saving']),selected=2200,rest=p['undeferred_physical_chains'])),indent=2)) +if __name__=='__main__':main() \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/geometry/retained-packing.py b/research/coordinated-crossover-pr200/geometry/retained-packing.py new file mode 100644 index 0000000000..b7e31dc08a --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/retained-packing.py @@ -0,0 +1,186 @@ +"""Exact gauge charts and completed-residual bank allocation. + +Apache-2.0. Prepared with substantial OpenAI Codex assistance. +""" +from array import array +from collections import Counter +from fractions import Fraction as Q +from math import gcd +from pathlib import Path +import hashlib,json,sys + +def inverse_integer(a): + """Fraction-free Gauss-Jordan; return integral C,d with a C = d I.""" + n=len(a) + m=[list(row)+[int(i==j) for j in range(n)] for i,row in enumerate(a)] + previous=1 + factors=[] + for k in range(n): + pivot=next((i for i in range(k,n) if m[i][k]),None) + if pivot is None: + raise ValueError('Singular basis') + m[k],m[pivot]=m[pivot],m[k] + if pivot != k:factors.append(('swap',k,pivot,1,1)) + p=m[k][k] + if p != previous: + ratio=Q(previous,p) + factors.append(('scale',k,k,ratio.numerator,ratio.denominator)) + for i in range(n): + if i==k:continue + u=m[i][k] + if u: + ratio=Q(-u,previous) + factors.append(('add',i,k,ratio.numerator,ratio.denominator)) + for j in range(2*n): + if j==k:continue + value=p*m[i][j]-u*m[k][j] + assert value % previous==0 + m[i][j]=value//previous + m[i][k]=0 + previous=p + d=m[0][0] + assert d and all(m[i][j]==d*int(i==j) for i in range(n) for j in range(n)) + c=[row[n:] for row in m] + common=abs(d) + for row in c: + for x in row:common=gcd(common,x) + d//=common + c=[[x//common for x in row] for row in c] + if d<0:d=-d;c=[[-x for x in row] for row in c] + return c,d,factors + +def color_incidence(left,right,nleft,nright,colors): + """Incremental two-color swaps; parallel edges are identified separately.""" + assert len(left)==len(right) + full=(1<22 for r in H) + W=2*w['v']*copies+bank;mass=sum(r*n for r,n in H.items()) + assert 72*W-mass==copies*receipt['deficit_per_vertex']==5808 + K=18*((W-1)+len(physical)*72*(maxops+71)) + record=dict(status='PASS exact actual-chain chart and incidence checks',source_commit='201737a1ec4f936e166e2481fb9e88104cb2ccc7', + word_sha256=receipt['word_sha256'],physical_roles=len(physical),interior_splices=len(recipients),gauge_roles=len(selected), + distinct_gauges=len(inventory),copies=copies,banks=bank,patterns=[dict(rank4=6,rank24=2,count=small),dict(rank4=0,rank24=3,count=large)], + incidences=len(left),W=W,m=72,rank_mass=mass,deficit=5808,maxchild=max(H),child_histogram=dict(sorted(H.items())), + chart_sha256=digest.hexdigest(),incidence_sha256=incidence.hexdigest(),max_chart_factors=maxops,max_num=maxnum,max_den=maxden, + conservative_selector_calls=K,color_stats=stats,conflicting_assignment_rejected=rejected) + + return record diff --git a/research/coordinated-crossover-pr200/requirements.txt b/research/coordinated-crossover-pr200/requirements.txt new file mode 100644 index 0000000000..784141bdc2 --- /dev/null +++ b/research/coordinated-crossover-pr200/requirements.txt @@ -0,0 +1,2 @@ +numpy==2.3.5 +scipy==1.17.0 diff --git a/research/coordinated-crossover-pr200/verify.py b/research/coordinated-crossover-pr200/verify.py new file mode 100644 index 0000000000..56885a8401 --- /dev/null +++ b/research/coordinated-crossover-pr200/verify.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +"""Offline finite certificate replay. Python3.11+, numpy2.3.5, scipy1.17.0.""" +from pathlib import Path +import argparse,hashlib,json,io,zipfile,tempfile,subprocess,shutil,sys +HERE=Path(__file__).resolve().parent +sys.dont_write_bytecode=True +if hasattr(sys,'set_int_max_str_digits'):sys.set_int_max_str_digits(0) +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +def pins(): + m=json.loads((HERE/'FILES.json').read_text())['files'];actual={p.relative_to(HERE).as_posix():sha(p) for p in HERE.rglob('*') if p.is_file() and p.name!='FILES.json'};assert actual==m,'Missing, changed, or unpinned upload file';return actual +assert not sys.flags.optimize +ap=argparse.ArgumentParser(description=__doc__);ap.add_argument('--temp-root',type=Path,help='Optional spacious scratch drive for extraction');args=ap.parse_args();before=pins();baseline=json.loads((HERE/'BASELINE.json').read_text());parts=[] +for entry in baseline['parts']: + p=HERE/entry['file'];assert p.stat().st_size==entry['bytes'] and sha(p)==entry['sha256'];parts.append(p.read_bytes()) +blob=b''.join(parts);assert hashlib.sha256(blob).hexdigest()==baseline['archive_sha256'] +with tempfile.TemporaryDirectory(prefix='crossover-pr200-',dir=args.temp_root) as tmp: + root=Path(tmp)/'source';root.mkdir() + with zipfile.ZipFile(io.BytesIO(blob)) as z: + for entry in z.infolist():assert (root/entry.filename).resolve().is_relative_to(root.resolve()),'Unsafe archive entry' + z.extractall(root) + package=root/'research/coordinated-crossover-pr200';package.mkdir() + skip={x['file'] for x in baseline['parts']} + for p in HERE.rglob('*'): + if p.is_file() and p.name not in skip: + target=package/p.relative_to(HERE);target.parent.mkdir(parents=True,exist_ok=True);shutil.copyfile(p,target) + result=subprocess.run([sys.executable,'-B',str(package/'verify_inner.py')],text=True) + assert result.returncode==0,'Full finite replay failed' +assert pins()==before,'Upload files changed during replay' +print('PASS immutable manual-upload package; no network, git, or publication required') \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/verify_inner.py b/research/coordinated-crossover-pr200/verify_inner.py new file mode 100644 index 0000000000..ce3a8630e1 --- /dev/null +++ b/research/coordinated-crossover-pr200/verify_inner.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 +"""Full finite replay; all-size compiler/selector and analytic conditions are inherited.""" +from pathlib import Path +import subprocess,sys,json,importlib.util,hashlib,gzip +from fractions import Fraction as Q +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent;ROOT=HERE.parents[1];SA=ROOT/'research/source-assisted';CP=ROOT/'research/source-assisted-v4';WORK=CP/'.work' +def run(*args): + r=subprocess.run([sys.executable,'-B',*map(str,args)],cwd=ROOT,capture_output=True,text=True) + if r.returncode:raise RuntimeError('Replay rejected: '+str(args)+'\n'+r.stdout[-6000:]+'\n'+r.stderr[-6000:]) + print(r.stdout[-2000:],end='',flush=True) +def load(n,p): + s=importlib.util.spec_from_file_location(n,p);m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +def read(p):return json.loads(p.read_text()) +assert not sys.flags.optimize +before={p.relative_to(ROOT).as_posix():hashlib.sha256(p.read_bytes()).hexdigest() for p in [ROOT/'scripts/paired_cube_assembly.py',SA/'decision/exact_complex_flow_lift.py',CP/'contract_v4.py']} +# Every source, target and dirty-register formal column, exact frames and all primes. +run(HERE/'frames/verify-bit-frames.py','--package',ROOT/'research/paired-cube-diagonal-bit-168','--frames',HERE/'frames/opframe-bases.json','--out',HERE/'frames/checked','--full') +run(HERE/'geometry/pack-admitted-frames.py','--candidate',HERE/'frames') +run(HERE/'geometry/audit-gauge-charts.py');run(HERE/'geometry/check-normalizer-routing.py') +# The portable witness is checked again; original numerical search need not be repeated. +run(SA/'decision/exact_complex_flow_lift.py','--witness',WORK/'flow.witness.json','--profile',WORK/'flow.json','--out',WORK/'lift.json') +lift=read(WORK/'lift.json');expected=read(CP/'certificate.json');assert lift['exact_scalar_program_sha256']==expected['lift']['exact_scalar_program_sha256'] +for key,name in [('certificate_path','lift.certificate.json.gz'),('witness_path','flow.witness.json')]:lift[key]=(WORK/name).relative_to(ROOT).as_posix() +lift['checker_path']=(SA/'decision/exact_complex_flow_lift.py').relative_to(ROOT).as_posix() +(WORK/'lift.json').write_text(json.dumps(lift,indent=2)+'\n',newline='\n') +run(CP/'contract_v4.py','--tree',WORK/'aligned','--cache',WORK/'aligned/cache','--witness',WORK/'flow.witness.json','--flow-profile',WORK/'flow.json','--lift-profile',WORK/'lift.json','--out',HERE/'complex-profile-replayed.json') +actual=read(HERE/'complex-profile-replayed.json') +for key in ['m','W_per_vertex','rank_per_vertex','deficit_per_vertex','child_histogram','contract_checks','exact_scalar_program_sha256']: + assert actual[key]==expected['complex_profile'][key],('Complex mathematical output changed',key) +# Paid two-supplier moments, three finite leaf levels, and unchanged 47 constraints. +run(HERE/'arithmetic.py');assert read(HERE/'assembly.json')==read(HERE/'certificate.json'),'Derived final certificate differs' +cert=read(HERE/'assembly.json');assert all(Q(x)>0 for x in cert['assembly']['strict_constraints'].values());assert len(cert['assembly']['strict_constraints'])==47 +# Independent base-two enclosure, no imports from the public moment implementation. +im=load('independent_base_two',HERE/'geometry/base_two_moment.py') +for side in ['bit','complex']: + row=cert[side+'_profile'];a=Q(cert[side]['saving']);hist=[(int(t),n) for t,n in row['child_multiplicities'].items()] + lo,hi=im.moment(row['m'],row['W'],hist,a);nl,nu=im.moment(row['m'],row['W'],hist,a+Q(1,10**18)) + if side=='bit': + fallback=[(1,32*row['m']**2*sum(n for _,n in hist))];bl,bu=im.moment(row['m'],row['W'],fallback,a);bnl,bnu=im.moment(row['m'],row['W'],fallback,a+Q(1,10**18));hi+=Q(1,10**16)*bu;nl+=Q(1,10**16)*bnl + assert hi<1