diff --git a/docs/ci-verification.md b/docs/ci-verification.md index 63ba3e9aa8..52b62d0481 100644 --- a/docs/ci-verification.md +++ b/docs/ci-verification.md @@ -1,8 +1,25 @@ # CI verification -## Current selected-family replay: #6030 +## Current selected-family replay: #7000 with #7001 The [selected record](../certificates/selected-result.json) binds conditional +κ = 0.00363005817 to the [application review](research/pr-intake-evidence/pr7000-application/PROOF-REVIEW.md), +[validation receipts](research/pr-intake-evidence/pr7000-application/VALIDATION.json), +and [explicit source closure](../certificates/frontier7000-source.json). +`make frontier7000-verify` follows that exact-source selected replay. The review +reuses eleven authenticated preceding executions and records seven fresh serial +application, scalar and complete native-catalogue executions. The earlier +monolithic timeout is retained separately and is not completed coverage. +Consult the receipts for exact commands, source heads and limits. + +The five inherited framework assumptions remain. No complete uniform word, +literal multiplier execution, independent human proof or formal-kernel proof +is asserted. Routine research submissions do not need to rerun this +selected-family replay. The sections below preserve historical checkpoints. + +## Historical selected-family replay: #6030 + +The [historical checkpoint](../certificates/checkpoints/frontier6030.json) binds conditional κ = 0.003125804 to the [proof review](research/pr-intake-evidence/pr6030-audit/PROOF-REVIEW.md), [validation receipts](research/pr-intake-evidence/pr6030-audit/VALIDATION.json), and [explicit source closure](../certificates/frontier6030-source.json). diff --git a/research/bit-destination-span-bound/AUDIT.json b/research/bit-destination-span-bound/AUDIT.json new file mode 100644 index 0000000000..a0d487fee1 --- /dev/null +++ b/research/bit-destination-span-bound/AUDIT.json @@ -0,0 +1,1114 @@ +{ + "destination_library_rank_histogram": { + "0": 518, + "1": 844, + "2": 635, + "3": 96, + "4": 78, + "5": 69, + "6": 10, + "7": 11, + "8": 14, + "9": 11, + "10": 11, + "11": 11, + "12": 6, + "13": 6, + "14": 5, + "15": 5, + "16": 2, + "17": 2, + "18": 2, + "19": 1, + "20": 1, + "21": 1, + "22": 1, + "23": 1, + "24": 1, + "25": 1, + "26": 1, + "27": 1, + "28": 1, + "29": 1, + "30": 1, + "31": 1, + "32": 1, + "33": 1, + "34": 1, + "35": 1, + "36": 1, + "37": 1, + "38": 1, + "39": 1, + "40": 1, + "41": 1, + "42": 1, + "43": 1, + "44": 1, + "45": 1, + "46": 1, + "47": 1, + "48": 1, + "49": 1, + "50": 1, + "51": 1, + "52": 1, + "53": 1, + "54": 1, + "55": 1, + "56": 1, + "57": 1, + "58": 1, + "59": 1, + "60": 1, + "61": 1, + "62": 1, + "63": 1, + "64": 1, + "65": 1, + "66": 1, + "67": 1, + "68": 1, + "69": 1, + "70": 1, + "71": 1, + "72": 1, + "73": 1, + "74": 1, + "75": 1, + "76": 1, + "77": 1, + "78": 1, + "79": 1, + "80": 1, + "81": 1, + "82": 1, + "83": 1, + "84": 1, + "85": 1, + "86": 1, + "87": 1, + "88": 1, + "89": 1, + "90": 1, + "91": 1, + "92": 1, + "93": 1, + "94": 1, + "95": 1, + "96": 1, + "97": 1, + "98": 1, + "99": 1, + "100": 1, + "101": 1, + "102": 1, + "103": 1, + "104": 1, + "105": 1, + "106": 1, + "107": 1, + "108": 1, + "109": 1, + "110": 1, + "111": 2, + "112": 2, + "113": 2, + "114": 2, + "115": 2, + "116": 2, + "117": 2, + "118": 2, + "119": 2, + "120": 1, + "121": 1, + "122": 1, + "123": 1, + "124": 1, + "125": 1, + "126": 1, + "127": 1, + "128": 1, + "129": 1, + "130": 1, + "131": 1, + "132": 1, + "133": 1, + "134": 1, + "135": 1, + "136": 1, + "137": 1, + "138": 1, + "139": 1, + "140": 1, + "141": 1, + "142": 1, + "143": 1, + "144": 1, + "145": 1, + "146": 1, + "147": 1, + "148": 1, + "149": 1, + "150": 1, + "151": 1, + "152": 1, + "153": 1, + "154": 1, + "155": 1, + "156": 1, + "157": 1, + "158": 1, + "159": 1, + "160": 1, + "161": 1, + "162": 1, + "163": 1, + "164": 1, + "165": 1, + "166": 1, + "167": 1, + "168": 1, + "169": 1, + "170": 1, + "171": 1, + "172": 1, + "173": 1, + "174": 1, + "175": 1, + "176": 1, + "177": 1, + "178": 1, + "179": 1, + "180": 1, + "181": 1, + "182": 1, + "183": 1, + "184": 1, + "185": 1, + "186": 1, + "187": 1, + "188": 1, + "189": 1, + "190": 1, + "191": 1, + "192": 1, + "193": 1, + "194": 1, + "195": 1, + "196": 1, + "197": 1, + "198": 1, + "199": 1, + "200": 1, + "201": 1, + "202": 1, + "203": 1, + "204": 1, + "205": 1, + "206": 1, + "207": 1, + "208": 1, + "209": 1, + "210": 1, + "211": 1, + "212": 1, + "213": 1, + "214": 1, + "215": 1, + "216": 1, + "217": 1, + "218": 1, + "219": 1, + "220": 1, + "221": 1, + "222": 1, + "223": 1, + "224": 1, + "225": 1, + "226": 1, + "227": 1, + "228": 1, + "229": 1, + "230": 1, + "231": 1, + "232": 1, + "233": 1, + "234": 1, + "235": 1, + "236": 1, + "237": 1, + "238": 1, + "239": 1, + "240": 1, + "241": 1, + "242": 1, + "243": 1, + "244": 1, + "245": 1, + "246": 1, + "247": 1, + "248": 1, + "249": 1, + "250": 1, + "251": 1, + "252": 1, + "253": 1, + "254": 1, + "255": 1, + "256": 1, + "257": 1, + "258": 1, + "259": 1, + "260": 1, + "261": 1, + "262": 1, + "263": 1, + "264": 1, + "265": 1, + "266": 1, + "267": 1, + "268": 1, + "269": 1, + "270": 1, + "271": 1, + "272": 1, + "273": 1, + "274": 1, + "275": 1, + "276": 1, + "277": 1, + "278": 1, + "279": 1, + "280": 1, + "281": 1, + "282": 1, + "283": 1, + "284": 1, + "285": 1, + "286": 1, + "287": 1, + "288": 1, + "289": 1, + "290": 1, + "291": 1, + "292": 1, + "293": 1, + "294": 1, + "295": 1, + "296": 1, + "297": 1, + "298": 1, + "299": 1, + "300": 1, + "301": 1, + "302": 1, + "303": 1, + "304": 1, + "305": 1, + "306": 1, + "307": 1, + "308": 1, + "309": 1, + "310": 1, + "311": 1, + "312": 1, + "313": 1, + "314": 1, + "315": 1, + "316": 1, + "317": 1, + "318": 1, + "319": 1, + "320": 1, + "321": 1, + "322": 1, + "323": 1, + "324": 1, + "325": 1, + "326": 1, + "327": 1, + "328": 1, + "329": 1, + "330": 1, + "331": 1, + "332": 1, + "333": 1, + "334": 1, + "335": 1, + "336": 1, + "337": 1, + "338": 1, + "339": 1, + "340": 1, + "341": 1, + "342": 1, + "343": 1, + "344": 1, + "345": 1, + "346": 1, + "347": 1, + "348": 1, + "349": 1, + "350": 1, + "351": 1, + "352": 1, + "353": 1, + "354": 1, + "355": 1, + "356": 1, + "357": 1, + "358": 1, + "359": 1, + "360": 1, + "361": 1, + "362": 1, + "363": 1, + "364": 1, + "365": 1, + "366": 1, + "367": 1, + "368": 1, + "369": 1, + "370": 1, + "371": 1, + "372": 1, + "373": 1, + "374": 1, + "375": 1, + "376": 1, + "377": 1, + "378": 1, + "379": 1, + "380": 1, + "381": 1, + "382": 1, + "383": 1, + "384": 1, + "385": 1, + "386": 1, + "387": 1, + "388": 1, + "389": 1, + "390": 1, + "391": 1, + "392": 1, + "393": 1, + "394": 1, + "395": 1, + "396": 1, + "397": 1, + "398": 1, + "399": 1, + "400": 1, + "401": 1, + "402": 1, + "403": 1, + "404": 1, + "405": 1, + "406": 1, + "407": 1, + "408": 1, + "409": 1, + "410": 1, + "411": 1, + "412": 1, + "413": 1, + "414": 1, + "415": 1, + "416": 1, + "417": 1, + "418": 1, + "419": 1, + "420": 1, + "421": 1, + "422": 1, + "423": 1, + "424": 1, + "425": 1, + "426": 1, + "427": 1, + "428": 1, + "429": 1, + "430": 1, + "431": 1, + "432": 1, + "433": 1, + "434": 1, + "435": 1, + "436": 1, + "437": 1, + "438": 1, + "439": 1, + "440": 1, + "441": 1, + "442": 1, + "443": 1, + "444": 1, + "445": 1, + "446": 1, + "447": 1, + "448": 1, + "449": 1, + "450": 1, + "451": 1, + "452": 1, + "453": 1, + "454": 1, + "455": 1, + "456": 1, + "457": 1, + "458": 1, + "459": 1, + "460": 1, + "461": 1, + "462": 1, + "463": 1, + "464": 1, + "465": 1, + "466": 1, + "467": 1, + "468": 1, + "469": 1, + "470": 1, + "471": 1, + "472": 1, + "473": 1, + "474": 1, + "475": 1, + "476": 1, + "477": 1, + "478": 1, + "479": 1, + "480": 1, + "481": 1, + "482": 1, + "483": 1, + "484": 1, + "485": 1, + "486": 1, + "487": 1, + "488": 1, + "489": 1, + "490": 1, + "491": 1, + "492": 1, + "493": 1, + "494": 1, + "495": 1, + "496": 1, + "497": 1, + "498": 1, + "499": 1, + "500": 1, + "501": 1, + "502": 1, + "503": 1, + "504": 1, + "505": 1, + "506": 1, + "507": 1, + "508": 1, + "509": 1, + "510": 1, + "511": 1, + "512": 1, + "513": 1, + "514": 1, + "515": 1, + "516": 1, + "517": 1, + "518": 1, + "519": 1, + "520": 1, + "521": 1, + "522": 1, + "523": 1, + "524": 1, + "525": 1, + "526": 1, + "527": 1, + "528": 1, + "529": 1, + "530": 1, + "531": 1, + "532": 1, + "533": 1, + "534": 1, + "535": 1, + "536": 1, + "537": 1, + "538": 1, + "539": 1, + "540": 1, + "541": 1, + "542": 1, + "543": 1, + "544": 1 + }, + "destination_library_size_histogram": { + "0": 518, + "1": 741, + "2": 634, + "3": 180, + "4": 96, + "5": 70, + "6": 11, + "7": 10, + "8": 10, + "9": 10, + "10": 13, + "11": 11, + "12": 6, + "13": 6, + "14": 5, + "15": 3, + "16": 3, + "17": 3, + "18": 2, + "19": 2, + "20": 2, + "21": 2, + "22": 2, + "23": 1, + "24": 1, + "25": 1, + "26": 1, + "27": 1, + "28": 1, + "29": 1, + "30": 1, + "31": 1, + "32": 1, + "33": 1, + "34": 1, + "35": 1, + "36": 1, + "37": 1, + "38": 1, + "39": 1, + "40": 1, + "41": 1, + "42": 1, + "43": 1, + "44": 1, + "45": 1, + "46": 1, + "47": 1, + "48": 1, + "49": 1, + "50": 1, + "51": 1, + "52": 1, + "53": 1, + "54": 1, + "55": 1, + "56": 1, + "57": 1, + "58": 1, + "59": 1, + "60": 1, + "61": 1, + "62": 1, + "63": 1, + "64": 1, + "65": 1, + "66": 1, + "67": 1, + "68": 1, + "69": 1, + "70": 1, + "71": 1, + "72": 1, + "73": 1, + "74": 1, + "75": 1, + "76": 1, + "77": 1, + "78": 1, + "79": 1, + "80": 1, + "81": 1, + "82": 1, + "83": 1, + "84": 1, + "85": 1, + "86": 1, + "87": 1, + "88": 1, + "89": 1, + "90": 1, + "91": 1, + "92": 1, + "93": 1, + "94": 1, + "95": 1, + "96": 1, + "97": 1, + "98": 1, + "99": 1, + "100": 1, + "101": 1, + "102": 1, + "103": 1, + "104": 1, + "105": 1, + "106": 1, + "107": 1, + "108": 1, + "109": 1, + "110": 1, + "111": 2, + "112": 2, + "113": 2, + "114": 2, + "115": 2, + "116": 2, + "117": 2, + "118": 2, + "119": 2, + "120": 1, + "121": 1, + "122": 1, + "123": 1, + "124": 1, + "125": 1, + "126": 1, + "127": 1, + "128": 1, + "129": 1, + "130": 1, + "131": 1, + "132": 1, + "133": 1, + "134": 1, + "135": 1, + "136": 1, + "137": 1, + "138": 1, + "139": 1, + "140": 1, + "141": 1, + "142": 1, + "143": 1, + "144": 1, + "145": 1, + "146": 1, + "147": 1, + "148": 1, + "149": 1, + "150": 1, + "151": 1, + "152": 1, + "153": 1, + "154": 1, + "155": 1, + "156": 1, + "157": 1, + "158": 1, + "159": 1, + "160": 1, + "161": 1, + "162": 1, + "163": 1, + "164": 1, + "165": 1, + "166": 1, + "167": 1, + "168": 1, + "169": 1, + "170": 1, + "171": 1, + "172": 1, + "173": 1, + "174": 1, + "175": 1, + "176": 1, + "177": 1, + "178": 1, + "179": 1, + "180": 1, + "181": 1, + "182": 1, + "183": 1, + "184": 1, + "185": 1, + "186": 1, + "187": 1, + "188": 1, + "189": 1, + "190": 1, + "191": 1, + "192": 1, + "193": 1, + "194": 1, + "195": 1, + "196": 1, + "197": 1, + "198": 1, + "199": 1, + "200": 1, + "201": 1, + "202": 1, + "203": 1, + "204": 1, + "205": 1, + "206": 1, + "207": 1, + "208": 1, + "209": 1, + "210": 1, + "211": 1, + "212": 1, + "213": 1, + "214": 1, + "215": 1, + "216": 1, + "217": 1, + "218": 1, + "219": 1, + "220": 1, + "221": 1, + "222": 1, + "223": 1, + "224": 1, + "225": 1, + "226": 1, + "227": 1, + "228": 1, + "229": 1, + "230": 1, + "231": 1, + "232": 1, + "233": 1, + "234": 1, + "235": 1, + "236": 1, + "237": 1, + "238": 1, + "239": 1, + "240": 1, + "241": 1, + "242": 1, + "243": 1, + "244": 1, + "245": 1, + "246": 1, + "247": 1, + "248": 1, + "249": 1, + "250": 1, + "251": 1, + "252": 1, + "253": 1, + "254": 1, + "255": 1, + "256": 1, + "257": 1, + "258": 1, + "259": 1, + "260": 1, + "261": 1, + "262": 1, + "263": 1, + "264": 1, + "265": 1, + "266": 1, + "267": 1, + "268": 1, + "269": 1, + "270": 1, + "271": 1, + "272": 1, + "273": 1, + "274": 1, + "275": 1, + "276": 1, + "277": 1, + "278": 1, + "279": 1, + "280": 1, + "281": 1, + "282": 1, + "283": 1, + "284": 1, + "285": 1, + "286": 1, + "287": 1, + "288": 1, + "289": 1, + "290": 1, + "291": 1, + "292": 1, + "293": 1, + "294": 1, + "295": 1, + "296": 1, + "297": 1, + "298": 1, + "299": 1, + "300": 1, + "301": 1, + "302": 1, + "303": 1, + "304": 1, + "305": 1, + "306": 1, + "307": 1, + "308": 1, + "309": 1, + "310": 1, + "311": 1, + "312": 1, + "313": 1, + "314": 1, + "315": 1, + "316": 1, + "317": 1, + "318": 1, + "319": 1, + "320": 1, + "321": 1, + "322": 1, + "323": 1, + "324": 1, + "325": 1, + "326": 1, + "327": 1, + "328": 1, + "329": 1, + "330": 1, + "331": 1, + "332": 1, + "333": 1, + "334": 1, + "335": 1, + "336": 1, + "337": 1, + "338": 1, + "339": 1, + "340": 1, + "341": 1, + "342": 1, + "343": 1, + "344": 1, + "345": 1, + "346": 1, + "347": 1, + "348": 1, + "349": 1, + "350": 1, + "351": 1, + "352": 1, + "353": 1, + "354": 1, + "355": 1, + "356": 1, + "357": 1, + "358": 1, + "359": 1, + "360": 1, + "361": 1, + "362": 1, + "363": 1, + "364": 1, + "365": 1, + "366": 1, + "367": 1, + "368": 1, + "369": 1, + "370": 1, + "371": 1, + "372": 1, + "373": 1, + "374": 1, + "375": 1, + "376": 1, + "377": 1, + "378": 1, + "379": 1, + "380": 1, + "381": 1, + "382": 1, + "383": 1, + "384": 1, + "385": 1, + "386": 1, + "387": 1, + "388": 1, + "389": 1, + "390": 1, + "391": 1, + "392": 1, + "393": 1, + "394": 1, + "395": 1, + "396": 1, + "397": 1, + "398": 1, + "399": 1, + "400": 1, + "401": 1, + "402": 1, + "403": 1, + "404": 1, + "405": 1, + "406": 1, + "407": 1, + "408": 1, + "409": 1, + "410": 1, + "411": 1, + "412": 1, + "413": 1, + "414": 1, + "415": 1, + "416": 1, + "417": 1, + "418": 1, + "419": 1, + "420": 1, + "421": 1, + "422": 1, + "423": 1, + "424": 1, + "425": 1, + "426": 1, + "427": 1, + "428": 1, + "429": 1, + "430": 1, + "431": 1, + "432": 1, + "433": 1, + "434": 1, + "435": 1, + "436": 1, + "437": 1, + "438": 1, + "439": 1, + "440": 1, + "441": 1, + "442": 1, + "443": 1, + "444": 1, + "445": 1, + "446": 1, + "447": 1, + "448": 1, + "449": 1, + "450": 1, + "451": 1, + "452": 1, + "453": 1, + "454": 1, + "455": 1, + "456": 1, + "457": 1, + "458": 1, + "459": 1, + "460": 1, + "461": 1, + "462": 1, + "463": 1, + "464": 1, + "465": 1, + "466": 1, + "467": 1, + "468": 1, + "469": 1, + "470": 1, + "471": 1, + "472": 1, + "473": 1, + "474": 1, + "475": 1, + "476": 1, + "477": 1, + "478": 1, + "479": 1, + "480": 1, + "481": 1, + "482": 1, + "483": 1, + "484": 1, + "485": 1, + "486": 1, + "487": 1, + "488": 1, + "489": 1, + "490": 1, + "491": 1, + "492": 1, + "493": 1, + "494": 1, + "495": 1, + "496": 1, + "497": 1, + "498": 1, + "499": 1, + "500": 1, + "501": 1, + "502": 1, + "503": 1, + "504": 1, + "505": 1, + "506": 1, + "507": 1, + "508": 1, + "509": 1, + "510": 1, + "511": 1, + "512": 1, + "513": 1, + "514": 1, + "515": 1, + "516": 1, + "517": 1, + "518": 1, + "519": 1, + "520": 1, + "521": 1, + "522": 1, + "523": 1, + "524": 1, + "525": 1, + "526": 1, + "527": 1, + "528": 1, + "529": 1, + "530": 1, + "531": 1, + "532": 1, + "533": 1, + "534": 1, + "535": 1, + "536": 1, + "537": 1, + "538": 1, + "539": 1, + "540": 1, + "541": 1, + "542": 1, + "543": 1, + "544": 1 + }, + "dual_count": 2871, + "duals_sha256": "506e53a26609781c8f677a80bf42efbca63f5bbf9da44c6ba895fc240ec158fd", + "independent_saving": [ + "0", + "0" + ], + "independent_signed_baseline": [ + "-300519496095736769319964186406477641296364426997853/5000000000000000000000000000000000000000000000000", + "-3005194960957367693199641864064776412963644269937469/50000000000000000000000000000000000000000000000000" + ], + "independent_signed_net": [ + "-300519496095736769319964186406477641296364426997853/5000000000000000000000000000000000000000000000000", + "-3005194960957367693199641864064776412963644269937469/50000000000000000000000000000000000000000000000000" + ], + "member_count": 0, + "pinned_invoice": "a46b6c6040f75184cab5467656811ad988c216e3bc8e44d595a5015b6e49620b", + "pinned_word": "51203e7fc75ba10bd3ac3f8e675759f47e13d262bea66b6600d1e515095cad78", + "status": "PASS_INDEPENDENT_DESTINATION_DUAL_AND_SIGNED_PRICE" +} diff --git a/research/bit-destination-span-bound/DUALS.json b/research/bit-destination-span-bound/DUALS.json new file mode 100644 index 0000000000..80bd597016 --- /dev/null +++ b/research/bit-destination-span-bound/DUALS.json @@ -0,0 +1 @@ +[[19137,222,2,[222]],[19138,223,2,[223]],[19139,224,2,[224]],[19152,0,125,[0]],[19153,222,126,[0]],[19154,223,270,[0]],[19155,224,272,[0]],[19158,225,3,[225]],[19159,226,3,[226]],[19166,1,212,[1]],[19167,225,213,[1]],[19168,226,214,[1]],[19171,227,4,[227]],[19172,228,4,[228]],[19179,2,230,[2]],[19180,227,231,[2]],[19181,228,232,[2]],[19184,229,5,[229]],[19185,230,5,[230]],[19186,231,5,[231]],[19199,3,125,[3]],[19200,229,127,[3]],[19201,230,269,[3]],[19202,231,275,[3]],[19205,232,6,[232]],[19206,233,6,[233]],[19213,4,230,[4]],[19214,232,233,[4]],[19215,233,234,[4]],[19218,234,7,[234]],[19219,235,7,[235]],[19220,236,7,[236]],[19233,5,113,[5]],[19234,234,114,[5]],[19235,235,272,[5]],[19236,236,273,[5]],[19237,237,8,[237]],[19238,238,8,[238]],[19239,239,8,[239]],[19240,240,8,[240]],[19261,6,113,[6]],[19262,237,115,[6]],[19263,238,268,[6]],[19264,239,269,[6]],[19265,240,328,[6]],[19268,241,9,[241]],[19269,242,9,[242]],[19276,7,212,[7]],[19277,241,215,[7]],[19278,242,216,[7]],[19281,243,10,[243]],[19282,244,10,[244]],[19289,8,248,[8]],[19290,243,249,[8]],[19291,244,250,[8]],[19294,245,11,[245]],[19295,246,11,[246]],[19296,247,11,[247]],[19309,9,114,[9]],[19310,245,115,[9]],[19311,246,266,[9]],[19312,247,267,[9]],[19315,248,12,[248]],[19316,249,12,[249]],[19323,10,194,[10]],[19324,248,195,[10]],[19325,249,196,[10]],[19326,250,13,[250]],[19327,251,13,[251]],[19328,252,13,[252]],[19329,253,13,[253]],[19350,11,126,[11]],[19351,250,127,[11]],[19352,251,266,[11]],[19353,252,276,[11]],[19354,253,346,[11]],[19357,254,14,[254]],[19358,255,14,[255]],[19365,12,248,[12]],[19366,254,251,[12]],[19367,255,252,[12]],[19370,256,15,[256]],[19371,257,15,[257]],[19378,13,194,[13]],[19379,256,197,[13]],[19380,257,198,[13]],[19383,258,16,[258]],[19384,259,16,[259]],[19391,14,236,[14]],[19392,258,237,[14]],[19393,259,238,[14]],[19396,260,17,[260]],[19397,261,17,[261]],[19404,15,134,[15]],[19405,260,135,[15]],[19406,261,136,[15]],[19409,262,18,[262]],[19410,263,18,[263]],[19417,16,242,[16]],[19418,262,243,[16]],[19419,263,244,[16]],[19420,264,19,[264]],[19421,265,19,[265]],[19422,266,19,[266]],[19423,267,19,[267]],[19444,17,182,[17]],[19445,264,183,[17]],[19446,265,280,[17]],[19447,266,321,[17]],[19448,267,421,[17]],[19451,268,20,[268]],[19452,269,20,[269]],[19459,18,242,[18]],[19460,268,245,[18]],[19461,269,246,[18]],[19464,270,21,[270]],[19465,271,21,[271]],[19472,19,152,[19]],[19473,270,153,[19]],[19474,271,154,[19]],[19477,272,22,[272]],[19478,273,22,[273]],[19485,20,236,[20]],[19486,272,239,[20]],[19487,273,240,[20]],[19490,274,23,[274]],[19491,275,23,[275]],[19498,21,164,[21]],[19499,274,165,[21]],[19500,275,166,[21]],[19503,276,24,[276]],[19504,277,24,[277]],[19505,278,24,[278]],[19518,22,182,[22]],[19519,276,184,[22]],[19520,277,293,[22]],[19521,278,303,[22]],[19524,279,25,[279]],[19525,280,25,[280]],[19532,23,134,[23]],[19533,279,137,[23]],[19534,280,138,[23]],[19537,281,26,[281]],[19538,282,26,[282]],[19545,24,218,[24]],[19546,281,219,[24]],[19547,282,220,[24]],[19550,283,27,[283]],[19551,284,27,[284]],[19558,25,224,[25]],[19559,283,225,[25]],[19560,284,226,[25]],[19563,285,28,[285]],[19564,286,28,[286]],[19571,26,164,[26]],[19572,285,167,[26]],[19573,286,168,[26]],[19576,287,29,[287]],[19577,288,29,[288]],[19584,27,152,[27]],[19585,287,155,[27]],[19586,288,156,[27]],[19589,289,30,[289]],[19590,290,30,[290]],[19597,28,224,[28]],[19598,289,227,[28]],[19599,290,228,[28]],[19602,291,31,[291]],[19603,292,31,[292]],[19610,29,218,[29]],[19611,291,221,[29]],[19612,292,222,[29]],[19615,293,32,[293]],[19616,294,32,[294]],[19623,30,140,[30]],[19624,293,141,[30]],[19625,294,142,[30]],[19628,295,33,[295]],[19629,296,33,[296]],[19636,31,254,[31]],[19637,295,255,[31]],[19638,296,256,[31]],[19641,297,34,[297]],[19642,298,34,[298]],[19649,32,200,[32]],[19650,297,201,[32]],[19651,298,202,[32]],[19654,299,35,[299]],[19655,300,35,[300]],[19662,33,185,[33]],[19663,299,186,[33]],[19664,300,187,[33]],[19667,301,36,[301]],[19668,302,36,[302]],[19675,34,200,[34]],[19676,301,203,[34]],[19677,302,204,[34]],[19680,303,37,[303]],[19681,304,37,[304]],[19682,305,37,[305]],[19695,35,158,[35]],[19696,303,159,[35]],[19697,304,284,[35]],[19698,305,310,[35]],[19701,306,38,[306]],[19702,307,38,[307]],[19709,36,170,[36]],[19710,306,171,[36]],[19711,307,172,[36]],[19714,308,39,[308]],[19715,309,39,[309]],[19722,37,254,[37]],[19723,308,257,[37]],[19724,309,258,[37]],[19727,310,40,[310]],[19728,311,40,[311]],[19735,38,185,[38]],[19736,310,188,[38]],[19737,311,189,[38]],[19740,312,41,[312]],[19741,313,41,[313]],[19748,39,206,[39]],[19749,312,207,[39]],[19750,313,208,[39]],[19753,314,42,[314]],[19754,315,42,[315]],[19761,40,260,[40]],[19762,314,261,[40]],[19763,315,262,[40]],[19766,316,43,[316]],[19767,317,43,[317]],[19774,41,140,[41]],[19775,316,143,[41]],[19776,317,144,[41]],[19779,318,44,[318]],[19780,319,44,[319]],[19787,42,206,[42]],[19788,318,209,[42]],[19789,319,210,[42]],[19790,320,45,[320]],[19791,321,45,[321]],[19792,322,45,[322]],[19793,323,45,[323]],[19814,43,158,[43]],[19815,320,160,[43]],[19816,321,295,[43]],[19817,322,322,[43]],[19818,323,388,[43]],[19821,324,46,[324]],[19822,325,46,[325]],[19829,44,170,[44]],[19830,324,173,[44]],[19831,325,174,[44]],[19834,326,47,[326]],[19835,327,47,[327]],[19842,45,260,[45]],[19843,326,263,[45]],[19844,327,264,[45]],[19847,328,48,[328]],[19848,329,48,[329]],[19849,330,48,[330]],[19862,46,116,[46]],[19863,328,117,[46]],[19864,329,288,[46]],[19865,330,289,[46]],[19868,331,49,[331]],[19869,332,49,[331,332]],[19876,47,119,[47]],[19877,331,120,[47]],[19878,332,121,[47]],[19881,333,50,[331]],[19882,334,50,[334]],[19889,48,119,[48]],[19890,333,122,[48]],[19891,334,123,[48]],[19894,335,51,[335]],[19895,336,51,[336]],[19902,49,146,[49]],[19903,335,147,[49]],[19904,336,148,[49]],[19907,337,52,[337]],[19908,338,52,[338]],[19909,339,52,[339]],[19922,50,191,[50]],[19923,337,192,[50]],[19924,338,276,[50]],[19925,339,324,[50]],[19928,340,53,[340]],[19929,341,53,[341]],[19936,51,176,[51]],[19937,340,177,[51]],[19938,341,178,[51]],[19941,342,54,[342]],[19942,343,54,[334]],[19949,52,120,[52]],[19950,342,122,[52]],[19951,343,124,[52]],[19954,344,55,[344]],[19955,345,55,[345]],[19962,53,146,[53]],[19963,344,149,[53]],[19964,345,150,[53]],[19967,346,56,[346]],[19968,347,56,[347]],[19969,348,56,[348]],[19982,54,116,[54]],[19983,346,118,[54]],[19984,347,282,[54]],[19985,348,283,[54]],[19988,349,57,[349]],[19989,350,57,[350]],[19996,55,176,[55]],[19997,349,179,[55]],[19998,350,180,[55]],[19999,351,58,[351]],[20000,352,58,[352]],[20001,353,58,[353]],[20002,354,58,[354]],[20023,56,117,[56]],[20024,351,118,[56]],[20025,352,280,[56]],[20026,353,281,[56]],[20027,354,335,[56]],[20028,355,59,[355]],[20029,356,59,[356]],[20030,357,59,[357]],[20031,358,59,[358]],[20052,57,161,[57]],[20053,355,162,[57]],[20054,356,276,[57]],[20055,357,325,[57]],[20056,358,394,[57]],[20059,359,60,[359]],[20060,360,60,[360]],[20067,58,121,[58]],[20068,359,123,[58]],[20069,360,124,[58]],[20072,361,61,[361]],[20073,362,61,[362]],[20080,59,147,[59]],[20081,361,149,[59]],[20082,362,151,[59]],[20085,363,62,[363]],[20086,364,62,[364]],[20087,365,62,[365]],[20100,60,191,[60]],[20101,363,193,[60]],[20102,364,289,[60]],[20103,365,313,[60]],[20106,366,63,[366]],[20107,367,63,[367]],[20108,368,63,[368]],[20121,61,131,[61]],[20122,366,132,[61]],[20123,367,293,[61]],[20124,368,299,[61]],[20127,369,64,[369]],[20128,370,64,[370]],[20129,371,64,[371]],[20142,62,128,[62]],[20143,369,129,[62]],[20144,370,279,[62]],[20145,371,288,[62]],[20148,372,65,[372]],[20149,373,65,[373]],[20150,374,65,[374]],[20163,63,131,[63]],[20164,372,133,[63]],[20165,373,294,[63]],[20166,374,296,[63]],[20169,375,66,[340]],[20170,376,66,[376]],[20177,64,177,[64]],[20178,375,179,[64]],[20179,376,181,[64]],[20182,377,67,[377]],[20183,378,67,[378]],[20184,379,67,[379]],[20197,65,161,[65]],[20198,377,163,[65]],[20199,378,300,[65]],[20200,379,302,[65]],[20203,380,68,[380]],[20204,381,68,[381]],[20205,382,68,[382]],[20218,66,162,[66]],[20219,380,163,[66]],[20220,381,279,[66]],[20221,382,313,[66]],[20222,383,69,[383]],[20223,384,69,[384]],[20224,385,69,[385]],[20225,386,69,[386]],[20246,67,192,[67]],[20247,383,193,[67]],[20248,384,290,[67]],[20249,385,302,[67]],[20250,386,431,[67]],[20251,387,70,[387]],[20252,388,70,[388]],[20253,389,70,[389]],[20254,390,70,[390]],[20275,68,132,[68]],[20276,387,133,[68]],[20277,388,290,[68]],[20278,389,301,[68]],[20279,390,359,[68]],[20280,391,71,[391]],[20281,392,71,[392]],[20282,393,71,[393]],[20283,394,71,[394]],[20304,69,128,[69]],[20305,391,130,[69]],[20306,392,281,[69]],[20307,393,287,[69]],[20308,394,350,[69]],[20311,395,72,[395]],[20312,396,72,[396]],[20319,70,148,[70]],[20320,395,150,[70]],[20321,396,151,[70]],[20324,397,73,[397]],[20325,398,73,[398]],[20332,71,178,[71]],[20333,397,180,[71]],[20334,398,181,[71]],[20337,399,74,[399]],[20338,400,74,[400]],[20339,401,74,[401]],[20352,72,129,[72]],[20353,399,130,[72]],[20354,400,283,[72]],[20355,401,285,[72]],[20358,402,75,[402]],[20359,403,75,[403]],[20366,73,261,[73]],[20367,402,263,[73]],[20368,403,265,[73]],[20371,404,76,[404]],[20372,405,76,[405]],[20373,406,76,[406]],[20386,74,159,[74]],[20387,404,160,[74]],[20388,405,271,[74]],[20389,406,316,[74]],[20392,407,77,[407]],[20393,408,77,[408]],[20400,75,141,[75]],[20401,407,143,[75]],[20402,408,145,[75]],[20405,409,78,[409]],[20406,410,78,[410]],[20413,76,207,[76]],[20414,409,209,[76]],[20415,410,211,[76]],[20418,411,79,[411]],[20419,412,79,[412]],[20426,77,186,[77]],[20427,411,188,[77]],[20428,412,190,[77]],[20431,413,80,[413]],[20432,414,80,[414]],[20439,78,262,[78]],[20440,413,264,[78]],[20441,414,265,[78]],[20444,415,81,[415]],[20445,416,81,[416]],[20452,79,208,[79]],[20453,415,210,[79]],[20454,416,211,[79]],[20457,417,82,[417]],[20458,418,82,[418]],[20465,80,171,[80]],[20466,417,173,[80]],[20467,418,175,[80]],[20470,419,83,[419]],[20471,420,83,[420]],[20478,81,255,[81]],[20479,419,257,[81]],[20480,420,259,[81]],[20483,421,84,[421]],[20484,422,84,[422]],[20491,82,142,[82]],[20492,421,144,[82]],[20493,422,145,[82]],[20496,423,85,[423]],[20497,424,85,[424]],[20504,83,201,[83]],[20505,423,203,[83]],[20506,424,205,[83]],[20509,425,86,[425]],[20510,426,86,[426]],[20517,84,172,[84]],[20518,425,174,[84]],[20519,426,175,[84]],[20522,427,87,[427]],[20523,428,87,[428]],[20530,85,202,[85]],[20531,427,204,[85]],[20532,428,205,[85]],[20535,429,88,[429]],[20536,430,88,[430]],[20543,86,256,[86]],[20544,429,258,[86]],[20545,430,259,[86]],[20548,431,89,[431]],[20549,432,89,[432]],[20556,87,187,[87]],[20557,431,189,[87]],[20558,432,190,[87]],[20561,433,90,[433]],[20562,434,90,[434]],[20569,88,243,[88]],[20570,433,245,[88]],[20571,434,247,[88]],[20574,435,91,[435]],[20575,436,91,[436]],[20582,89,153,[89]],[20583,435,155,[89]],[20584,436,157,[89]],[20587,437,92,[437]],[20588,438,92,[438]],[20595,90,237,[90]],[20596,437,239,[90]],[20597,438,241,[90]],[20600,439,93,[439]],[20601,440,93,[440]],[20608,91,135,[91]],[20609,439,137,[91]],[20610,440,139,[91]],[20613,441,94,[441]],[20614,442,94,[442]],[20615,443,94,[443]],[20628,92,183,[92]],[20629,441,184,[92]],[20630,442,275,[92]],[20631,443,315,[92]],[20634,444,95,[444]],[20635,445,95,[445]],[20642,93,244,[93]],[20643,444,246,[93]],[20644,445,247,[93]],[20647,446,96,[446]],[20648,447,96,[447]],[20655,94,165,[94]],[20656,446,167,[94]],[20657,447,169,[94]],[20660,448,97,[448]],[20661,449,97,[449]],[20668,95,238,[95]],[20669,448,240,[95]],[20670,449,241,[95]],[20673,450,98,[450]],[20674,451,98,[451]],[20681,96,136,[96]],[20682,450,138,[96]],[20683,451,139,[96]],[20686,452,99,[452]],[20687,453,99,[453]],[20694,97,154,[97]],[20695,452,156,[97]],[20696,453,157,[97]],[20699,454,100,[454]],[20700,455,100,[455]],[20707,98,225,[98]],[20708,454,227,[98]],[20709,455,229,[98]],[20712,456,101,[456]],[20713,457,101,[457]],[20720,99,219,[99]],[20721,456,221,[99]],[20722,457,223,[99]],[20725,458,102,[458]],[20726,459,102,[459]],[20733,100,226,[100]],[20734,458,228,[100]],[20735,459,229,[100]],[20738,460,103,[460]],[20739,461,103,[461]],[20746,101,220,[101]],[20747,460,222,[101]],[20748,461,223,[101]],[20751,462,104,[462]],[20752,463,104,[463]],[20759,102,166,[102]],[20760,462,168,[102]],[20761,463,169,[102]],[20764,464,105,[464]],[20765,465,105,[465]],[20772,103,231,[103]],[20773,464,233,[103]],[20774,465,235,[103]],[20777,466,106,[466]],[20778,467,106,[467]],[20785,104,195,[104]],[20786,466,197,[104]],[20787,467,199,[104]],[20790,468,107,[468]],[20791,469,107,[469]],[20798,105,249,[105]],[20799,468,251,[105]],[20800,469,253,[105]],[20803,470,108,[470]],[20804,471,108,[471]],[20811,106,213,[106]],[20812,470,215,[106]],[20813,471,217,[106]],[20816,472,109,[472]],[20817,473,109,[473]],[20824,107,196,[107]],[20825,472,198,[107]],[20826,473,199,[107]],[20829,474,110,[474]],[20830,475,110,[475]],[20837,108,214,[108]],[20838,474,216,[108]],[20839,475,217,[108]],[20842,476,111,[476]],[20843,477,111,[477]],[20850,109,232,[109]],[20851,476,234,[109]],[20852,477,235,[109]],[20855,478,112,[478]],[20856,479,112,[479]],[20863,110,250,[110]],[20864,478,252,[110]],[20865,479,253,[110]],[20866,480,113,[480]],[20874,5,276,[5]],[20875,6,277,[5]],[20876,480,506,[5]],[20877,481,114,[481]],[20884,234,274,[5]],[20885,9,275,[5]],[20886,481,506,[9]],[20887,482,115,[482]],[20895,237,270,[6]],[20896,245,271,[6]],[20897,482,506,[6]],[20898,483,116,[483]],[20906,46,286,[46]],[20907,54,287,[46]],[20908,483,506,[46]],[20909,484,117,[484]],[20916,328,284,[46]],[20917,56,285,[46]],[20918,484,506,[56]],[20919,485,118,[485]],[20927,346,278,[54]],[20928,351,279,[54]],[20929,485,506,[54]],[20930,486,119,[486]],[20937,486,506,[47]],[20940,47,300,[47]],[20941,48,301,[47]],[20942,487,120,[487]],[20949,487,506,[47,331]],[20954,331,298,[47]],[20955,52,299,[47]],[20956,488,121,[488]],[20963,332,296,[47]],[20964,58,297,[47]],[20965,488,506,[58]],[20966,489,122,[489]],[20973,489,506,[48]],[20976,333,294,[48]],[20977,342,295,[48]],[20978,490,123,[490]],[20985,490,506,[48,334]],[20990,334,292,[48]],[20991,359,293,[48]],[20992,491,124,[491]],[21000,343,290,[52]],[21001,360,291,[52]],[21002,491,506,[52]],[21003,492,125,[492]],[21010,0,267,[0]],[21011,3,277,[0]],[21012,492,507,[3]],[21013,493,126,[493]],[21021,222,268,[0]],[21022,11,274,[0]],[21023,493,507,[0]],[21024,494,127,[494]],[21031,229,271,[3]],[21032,250,273,[3]],[21033,494,507,[11]],[21034,495,128,[495]],[21041,62,282,[62]],[21042,69,284,[62]],[21043,495,507,[69]],[21044,496,129,[496]],[21052,369,280,[62]],[21053,72,286,[62]],[21054,496,507,[62]],[21055,497,130,[497]],[21062,391,278,[69]],[21063,399,289,[69]],[21064,497,507,[72]],[21065,498,131,[498]],[21073,61,291,[61]],[21074,63,300,[61]],[21075,498,507,[61]],[21076,499,132,[499]],[21083,366,295,[61]],[21084,68,297,[61]],[21085,499,507,[68]],[21086,500,133,[500]],[21094,372,292,[63]],[21095,387,298,[63]],[21096,500,507,[63]],[21097,501,134,[501]],[21104,15,270,[15]],[21105,23,307,[15]],[21106,501,519,[23]],[21107,502,135,[502]],[21115,260,282,[15]],[21116,91,306,[15]],[21117,502,519,[15]],[21118,503,136,[503]],[21126,261,296,[15]],[21127,96,305,[15]],[21128,503,399,[15]],[21129,504,137,[504]],[21137,279,295,[23]],[21138,439,304,[23]],[21139,504,401,[23]],[21140,505,138,[505]],[21147,280,285,[23]],[21148,450,303,[23]],[21149,505,519,[96]],[21150,506,139,[506]],[21158,440,273,[91]],[21159,451,302,[91]],[21160,506,519,[91]],[21161,507,140,[507]],[21169,30,274,[30]],[21170,41,313,[30]],[21171,507,412,[30]],[21172,508,141,[508]],[21179,293,287,[30]],[21180,75,312,[30]],[21181,508,411,[75]],[21182,509,142,[509]],[21190,294,299,[30]],[21191,82,311,[30]],[21192,509,519,[30]],[21193,510,143,[510]],[21201,316,292,[41]],[21202,407,310,[41]],[21203,510,519,[41]],[21204,511,144,[511]],[21211,317,280,[41]],[21212,421,309,[41]],[21213,511,519,[82]],[21214,512,145,[512]],[21222,408,269,[75]],[21223,422,308,[75]],[21224,512,519,[75]],[21225,513,146,[513]],[21233,49,276,[49]],[21234,53,319,[49]],[21235,513,406,[49]],[21236,514,147,[514]],[21244,335,288,[49]],[21245,59,318,[49]],[21246,514,519,[49]],[21247,515,148,[515]],[21254,336,291,[49]],[21255,70,317,[49]],[21256,515,408,[70]],[21257,516,149,[516]],[21264,344,301,[53]],[21265,361,316,[53]],[21266,516,519,[59]],[21267,517,150,[517]],[21275,345,278,[53]],[21276,395,315,[53]],[21277,517,519,[53]],[21278,518,151,[518]],[21285,362,267,[59]],[21286,396,314,[59]],[21287,518,519,[70]],[21288,519,152,[519]],[21295,19,268,[19]],[21296,27,315,[19]],[21297,519,508,[27]],[21298,520,153,[520]],[21305,270,293,[19]],[21306,89,306,[19]],[21307,520,508,[89]],[21308,521,154,[521]],[21316,271,287,[19]],[21317,97,321,[19]],[21318,521,508,[19]],[21319,522,155,[522]],[21326,287,280,[27]],[21327,435,320,[27]],[21328,522,508,[89,435]],[21329,523,156,[523]],[21336,288,298,[27]],[21337,452,303,[27]],[21338,523,508,[97]],[21339,524,157,[524]],[21347,436,275,[89]],[21348,453,318,[89]],[21349,524,1,[89]],[21350,525,158,[525]],[21358,35,272,[35]],[21359,43,317,[35]],[21360,525,508,[35]],[21361,526,159,[526]],[21368,303,296,[35]],[21369,74,323,[35]],[21370,526,508,[74]],[21371,527,160,[527]],[21379,320,283,[43]],[21380,404,311,[43]],[21381,527,508,[43]],[21382,528,161,[528]],[21390,57,289,[57]],[21391,65,308,[57]],[21392,528,508,[57]],[21393,529,162,[529]],[21400,355,290,[57]],[21401,66,307,[57]],[21402,529,508,[66]],[21403,530,163,[530]],[21411,377,267,[65]],[21412,380,324,[65]],[21413,530,508,[65]],[21414,531,164,[531]],[21422,21,270,[21]],[21423,26,302,[21]],[21424,531,520,[21]],[21425,532,165,[532]],[21432,274,285,[21]],[21433,94,306,[21]],[21434,532,520,[94]],[21435,533,166,[533]],[21443,275,295,[21]],[21444,102,305,[21]],[21445,533,1,[21]],[21446,534,167,[534]],[21454,285,296,[26]],[21455,446,304,[26]],[21456,534,520,[26]],[21457,535,168,[535]],[21465,286,282,[26]],[21466,462,303,[26]],[21467,535,372,[26]],[21468,536,169,[536]],[21475,447,273,[94]],[21476,463,307,[94]],[21477,536,520,[102]],[21478,537,170,[537]],[21486,36,274,[36]],[21487,44,308,[36]],[21488,537,520,[36]],[21489,538,171,[538]],[21496,306,280,[36]],[21497,80,312,[36]],[21498,538,520,[80]],[21499,539,172,[539]],[21506,307,292,[36]],[21507,84,311,[36]],[21508,539,376,[84]],[21509,540,173,[540]],[21516,324,299,[44]],[21517,417,310,[44]],[21518,540,364,[80]],[21519,541,174,[541]],[21527,325,287,[44]],[21528,425,309,[44]],[21529,541,520,[44]],[21530,542,175,[542]],[21537,418,269,[80]],[21538,426,313,[80]],[21539,542,520,[84]],[21540,543,176,[543]],[21547,543,374,[51]],[21550,51,276,[51]],[21551,55,314,[51]],[21552,544,177,[544]],[21559,544,374,[341]],[21564,340,288,[51]],[21565,64,315,[51]],[21566,545,178,[545]],[21574,341,291,[51]],[21575,71,316,[51]],[21576,545,520,[51]],[21577,546,179,[546]],[21584,349,301,[55]],[21585,375,317,[55]],[21586,546,520,[64]],[21587,547,180,[547]],[21595,350,278,[55]],[21596,397,318,[55]],[21597,547,520,[55]],[21598,548,181,[548]],[21605,376,267,[64]],[21606,398,319,[64]],[21607,548,520,[71]],[21608,549,182,[549]],[21616,17,268,[17]],[21617,22,318,[17]],[21618,549,509,[17]],[21619,550,183,[550]],[21626,264,298,[17]],[21627,92,306,[17]],[21628,550,509,[92]],[21629,551,184,[551]],[21637,276,287,[22]],[21638,441,320,[22]],[21639,551,509,[22]],[21640,552,185,[552]],[21647,33,272,[33]],[21648,38,316,[33]],[21649,552,509,[38]],[21650,553,186,[553]],[21657,299,295,[33]],[21658,77,323,[33]],[21659,553,509,[77]],[21660,554,187,[554]],[21668,300,283,[33]],[21669,87,310,[33]],[21670,554,509,[33]],[21671,555,188,[555]],[21678,310,284,[38]],[21679,411,311,[38]],[21680,555,509,[77,411]],[21681,556,189,[556]],[21688,311,296,[38]],[21689,431,322,[38]],[21690,556,509,[87]],[21691,557,190,[557]],[21698,412,271,[77]],[21699,432,317,[77]],[21700,557,509,[87,432]],[21701,558,191,[558]],[21709,50,300,[50]],[21710,60,307,[50]],[21711,558,509,[50]],[21712,559,192,[559]],[21719,337,279,[50]],[21720,67,308,[50]],[21721,559,509,[67]],[21722,560,193,[560]],[21730,363,267,[60]],[21731,383,325,[60]],[21732,560,509,[60]],[21733,561,194,[561]],[21740,10,266,[10]],[21741,13,310,[10]],[21742,561,505,[13]],[21743,562,195,[562]],[21751,248,301,[10]],[21752,104,321,[10]],[21753,562,521,[10]],[21754,563,196,[563]],[21762,249,289,[10]],[21763,107,304,[10]],[21764,563,497,[10]],[21765,564,197,[564]],[21773,256,279,[13]],[21774,466,305,[13]],[21775,564,521,[13]],[21776,565,198,[565]],[21783,257,291,[13]],[21784,472,320,[13]],[21785,565,521,[107]],[21786,566,199,[566]],[21794,467,277,[104]],[21795,473,311,[104]],[21796,566,521,[104]],[21797,567,200,[567]],[21805,32,272,[32]],[21806,34,312,[32]],[21807,567,501,[32]],[21808,568,201,[568]],[21816,297,297,[32]],[21817,83,318,[32]],[21818,568,521,[32]],[21819,569,202,[569]],[21826,298,285,[32]],[21827,85,325,[32]],[21828,569,521,[85]],[21829,570,203,[570]],[21837,301,282,[34]],[21838,423,324,[34]],[21839,570,491,[34]],[21840,571,204,[571]],[21848,302,294,[34]],[21849,427,315,[34]],[21850,571,521,[34]],[21851,572,205,[572]],[21859,424,271,[83]],[21860,428,309,[83]],[21861,572,521,[83]],[21862,573,206,[573]],[21869,39,274,[39]],[21870,42,322,[39]],[21871,573,490,[42]],[21872,574,207,[574]],[21880,312,298,[39]],[21881,76,314,[39]],[21882,574,521,[39]],[21883,575,208,[575]],[21890,313,286,[39]],[21891,79,307,[39]],[21892,575,499,[79]],[21893,576,209,[576]],[21901,318,281,[42]],[21902,409,302,[42]],[21903,576,521,[42]],[21904,577,210,[577]],[21911,319,293,[42]],[21912,415,319,[42]],[21913,577,521,[79]],[21914,578,211,[578]],[21922,410,269,[76]],[21923,416,323,[76]],[21924,578,521,[76]],[21925,579,212,[579]],[21932,1,266,[1]],[21933,7,303,[1]],[21934,579,522,[7]],[21935,580,213,[580]],[21942,225,288,[1]],[21943,106,323,[1]],[21944,580,481,[106]],[21945,581,214,[581]],[21953,226,300,[1]],[21954,108,312,[1]],[21955,581,522,[1]],[21956,582,215,[582]],[21964,241,290,[7]],[21965,470,309,[7]],[21966,582,483,[7]],[21967,583,216,[583]],[21974,242,278,[7]],[21975,474,322,[7]],[21976,583,522,[108]],[21977,584,217,[584]],[21985,471,277,[106]],[21986,475,306,[106]],[21987,584,522,[106]],[21988,585,218,[585]],[21995,24,268,[24]],[21996,29,305,[24]],[21997,585,522,[29]],[21998,586,219,[586]],[22005,281,281,[24]],[22006,99,316,[24]],[22007,586,470,[99]],[22008,587,220,[587]],[22016,282,299,[24]],[22017,101,325,[24]],[22018,587,522,[24]],[22019,588,221,[588]],[22026,291,292,[29]],[22027,456,324,[29]],[22028,588,522,[99]],[22029,589,222,[589]],[22037,292,286,[29]],[22038,460,317,[29]],[22039,589,485,[29]],[22040,590,223,[590]],[22047,457,275,[99]],[22048,461,304,[99]],[22049,590,522,[101]],[22050,591,224,[591]],[22057,25,270,[25]],[22058,28,321,[25]],[22059,591,522,[28]],[22060,592,225,[592]],[22068,283,283,[25]],[22069,98,314,[25]],[22070,592,475,[25]],[22071,593,226,[593]],[22079,284,297,[25]],[22080,100,313,[25]],[22081,593,522,[25]],[22082,594,227,[594]],[22089,289,294,[28]],[22090,454,308,[28]],[22091,594,478,[98]],[22092,595,228,[595]],[22099,290,284,[28]],[22100,458,319,[28]],[22101,595,522,[100]],[22102,596,229,[596]],[22110,455,273,[98]],[22111,459,320,[98]],[22112,596,522,[98]],[22113,597,230,[597]],[22121,2,266,[2]],[22122,4,306,[2]],[22123,597,456,[2]],[22124,598,231,[598]],[22132,227,288,[2]],[22133,103,322,[2]],[22134,598,523,[2]],[22135,599,232,[599]],[22142,228,300,[2]],[22143,109,309,[2]],[22144,599,523,[109]],[22145,600,233,[600]],[22152,232,290,[4]],[22153,464,312,[4]],[22154,600,523,[103]],[22155,601,234,[601]],[22163,233,278,[4]],[22164,476,323,[4]],[22165,601,523,[4]],[22166,602,235,[602]],[22173,465,277,[103]],[22174,477,303,[103]],[22175,602,458,[109]],[22176,603,236,[603]],[22184,14,270,[14]],[22185,20,320,[14]],[22186,603,523,[14]],[22187,604,237,[604]],[22195,258,284,[14]],[22196,90,314,[14]],[22197,604,465,[14]],[22198,605,238,[605]],[22205,259,294,[14]],[22206,95,313,[14]],[22207,605,523,[95]],[22208,606,239,[606]],[22216,272,297,[20]],[22217,437,308,[20]],[22218,606,523,[20]],[22219,607,240,[607]],[22226,273,283,[20]],[22227,448,319,[20]],[22228,607,469,[95]],[22229,608,241,[608]],[22237,438,273,[90]],[22238,449,321,[90]],[22239,608,523,[90]],[22240,609,242,[609]],[22248,16,268,[16]],[22249,18,304,[16]],[22250,609,523,[16]],[22251,610,243,[610]],[22258,262,286,[16]],[22259,88,316,[16]],[22260,610,455,[88]],[22261,611,244,[611]],[22269,263,292,[16]],[22270,93,325,[16]],[22271,611,461,[16]],[22272,612,245,[612]],[22280,268,299,[18]],[22281,433,324,[18]],[22282,612,523,[18]],[22283,613,246,[613]],[22290,269,281,[18]],[22291,444,317,[18]],[22292,613,523,[93]],[22293,614,247,[614]],[22301,434,275,[88]],[22302,445,305,[88]],[22303,614,523,[88]],[22304,615,248,[615]],[22311,8,266,[8]],[22312,12,311,[8]],[22313,615,524,[12]],[22314,616,249,[616]],[22321,243,301,[8]],[22322,105,320,[8]],[22323,616,524,[105]],[22324,617,250,[617]],[22332,244,289,[8]],[22333,110,305,[8]],[22334,617,524,[8]],[22335,618,251,[618]],[22342,254,279,[12]],[22343,468,304,[12]],[22344,618,447,[105]],[22345,619,252,[619]],[22353,255,291,[12]],[22354,478,321,[12]],[22355,619,444,[12]],[22356,620,253,[620]],[22363,469,277,[105]],[22364,479,310,[105]],[22365,620,524,[110]],[22366,621,254,[621]],[22373,31,274,[31]],[22374,37,323,[31]],[22375,621,524,[37]],[22376,622,255,[622]],[22384,295,293,[31]],[22385,81,314,[31]],[22386,622,524,[31]],[22387,623,256,[623]],[22394,296,281,[31]],[22395,86,307,[31]],[22396,623,524,[86]],[22397,624,257,[624]],[22404,308,286,[37]],[22405,419,302,[37]],[22406,624,449,[81]],[22407,625,258,[625]],[22414,309,298,[37]],[22415,429,319,[37]],[22416,625,439,[86]],[22417,626,259,[626]],[22425,420,269,[81]],[22426,430,322,[81]],[22427,626,524,[81]],[22428,627,260,[627]],[22435,40,272,[40]],[22436,45,309,[40]],[22437,627,524,[45]],[22438,628,261,[628]],[22446,314,294,[40]],[22447,73,318,[40]],[22448,628,524,[40]],[22449,629,262,[629]],[22457,315,282,[40]],[22458,78,325,[40]],[22459,629,441,[40]],[22460,630,263,[630]],[22467,326,285,[45]],[22468,402,324,[45]],[22469,630,438,[73]],[22470,631,264,[631]],[22477,327,297,[45]],[22478,413,315,[45]],[22479,631,524,[78]],[22480,632,265,[632]],[22488,403,271,[73]],[22489,414,312,[73]],[22490,632,524,[73]],[22514,246,326,[1]],[22515,251,344,[1]],[22516,10,439,[1]],[22517,1,457,[2]],[22518,2,475,[1]],[22519,8,493,[1]],[22544,247,326,[59]],[22545,0,349,[9]],[22546,362,374,[0]],[22547,377,392,[0]],[22548,376,410,[0]],[22549,363,428,[0]],[22577,238,327,[6]],[22578,222,348,[0]],[22579,19,385,[0]],[22580,17,421,[0]],[22581,24,463,[0]],[22582,16,487,[0]],[22604,230,327,[75]],[22605,239,345,[6]],[22606,408,368,[3]],[22607,418,404,[3]],[22608,410,446,[3]],[22609,420,494,[3]],[22635,223,328,[9]],[22636,237,347,[14]],[22637,15,367,[0]],[22638,21,403,[0]],[22639,25,469,[0]],[22640,14,481,[0]],[22666,405,328,[9,14]],[22667,245,346,[3]],[22668,229,386,[3]],[22669,412,422,[3]],[22670,424,440,[3]],[22671,403,500,[3]],[22698,224,329,[0]],[22699,235,347,[5]],[22700,35,391,[0]],[22701,33,427,[0]],[22702,32,445,[0]],[22703,40,505,[0]],[22729,236,329,[5]],[22730,250,346,[90]],[22731,440,362,[3]],[22732,447,398,[3]],[22733,455,464,[3]],[22734,438,476,[3]],[22757,234,330,[5]],[22758,11,348,[30]],[22759,30,373,[0]],[22760,36,409,[0]],[22761,39,451,[0]],[22762,31,499,[0]],[22787,231,330,[88]],[22788,442,345,[3]],[22789,9,380,[3]],[22790,436,416,[3]],[22791,457,458,[3]],[22792,434,482,[3]],[22811,252,331,[11]],[22812,338,344,[49]],[22813,356,379,[5]],[22814,5,397,[5]],[22815,49,415,[5]],[22816,51,433,[5]],[22834,6,331,[0]],[22835,3,349,[103]],[22836,467,434,[0]],[22837,471,452,[0]],[22838,465,470,[0]],[22839,469,488,[0]],[22866,346,332,[4]],[22867,391,350,[4]],[22868,345,375,[4]],[22869,350,411,[4]],[22870,242,453,[4]],[22871,233,471,[53]],[22895,370,332,[12]],[22896,381,355,[12]],[22897,351,395,[12]],[22898,337,431,[12]],[22899,256,436,[12]],[22900,254,490,[13]],[22922,265,333,[17]],[22923,352,351,[17]],[22924,369,369,[17]],[22925,317,382,[17]],[22926,287,408,[17]],[22927,306,419,[27]],[22953,353,333,[18]],[22954,392,354,[18]],[22955,318,448,[18]],[22956,281,462,[24]],[22957,269,483,[18]],[22958,296,497,[18]],[22987,347,334,[15]],[22988,62,352,[15]],[22989,260,366,[26]],[22990,286,399,[34]],[22991,301,442,[15]],[22992,315,503,[15]],[23012,348,334,[20]],[23013,400,353,[20]],[23014,320,388,[20]],[23015,300,425,[20]],[23016,283,468,[25]],[23017,273,477,[20]],[23034,304,335,[14]],[23035,328,352,[14]],[23036,69,389,[14]],[23037,310,424,[14]],[23038,290,465,[28]],[23039,258,480,[14]],[23070,401,335,[21]],[23071,56,353,[21]],[23072,280,363,[21]],[23073,274,402,[23]],[23074,298,443,[21]],[23075,326,502,[21]],[23103,46,336,[16]],[23104,72,351,[16]],[23105,313,449,[16]],[23106,292,459,[29]],[23107,262,486,[37]],[23108,308,496,[16]],[23136,393,336,[19]],[23137,54,354,[19]],[23138,293,372,[19]],[23139,271,383,[30]],[23140,325,405,[19]],[23141,276,418,[19]],[23167,329,337,[1]],[23168,371,355,[1]],[23169,335,378,[1]],[23170,340,414,[1]],[23171,225,456,[46]],[23172,227,474,[1]],[23193,330,337,[8]],[23194,364,350,[8]],[23195,399,394,[8]],[23196,57,430,[8]],[23197,249,437,[46]],[23198,244,491,[10]],[23218,384,338,[4]],[23219,388,356,[4]],[23220,343,393,[4]],[23221,355,429,[4]],[23222,241,454,[52]],[23223,232,472,[7]],[23245,360,338,[12]],[23246,61,361,[12]],[23247,336,377,[12]],[23248,341,413,[12]],[23249,257,435,[13]],[23250,255,489,[49]],[23275,334,339,[16]],[23276,372,357,[16]],[23277,316,370,[16]],[23278,307,407,[16]],[23279,291,460,[29]],[23280,263,485,[36]],[23302,277,339,[19]],[23303,367,360,[19]],[23304,359,384,[19]],[23305,270,417,[22]],[23306,319,447,[19]],[23307,295,498,[19]],[23333,373,340,[14]],[23334,333,358,[14]],[23335,302,441,[14]],[23336,289,466,[14]],[23337,259,479,[34]],[23338,314,504,[14]],[23358,321,340,[21]],[23359,342,359,[21]],[23360,366,364,[33]],[23361,279,387,[21]],[23362,275,401,[33]],[23363,299,426,[21]],[23388,374,341,[15]],[23389,332,358,[15]],[23390,261,365,[15]],[23391,303,390,[15]],[23392,285,400,[26]],[23393,311,423,[15]],[23416,58,341,[20]],[23417,68,359,[20]],[23418,297,444,[20]],[23419,284,467,[20]],[23420,272,478,[32]],[23421,327,501,[20]],[23449,331,342,[17]],[23450,387,357,[17]],[23451,288,381,[27]],[23452,264,420,[17]],[23453,312,450,[17]],[23454,309,495,[17]],[23477,368,342,[18]],[23478,52,360,[18]],[23479,294,371,[18]],[23480,324,406,[18]],[23481,282,461,[30]],[23482,268,484,[24]],[23512,378,343,[1]],[23513,47,361,[1]],[23514,63,396,[1]],[23515,50,432,[1]],[23516,226,455,[2]],[23517,228,473,[47]],[23545,389,343,[8]],[23546,48,356,[8]],[23547,344,376,[8]],[23548,349,412,[8]],[23549,248,438,[10]],[23550,243,492,[47]],[23568,379,362,[37]],[23569,385,396,[21]],[23570,451,403,[21]],[23571,26,429,[21]],[23572,409,448,[21]],[23573,419,496,[21]],[23596,278,363,[1]],[23597,450,381,[1]],[23598,452,399,[1]],[23599,462,417,[1]],[23600,7,457,[22]],[23601,477,470,[1]],[23622,439,364,[10]],[23623,446,400,[10]],[23624,107,437,[16]],[23625,461,458,[10]],[23626,18,487,[10]],[23627,468,490,[10]],[23653,96,365,[8]],[23654,102,401,[8]],[23655,466,436,[8]],[23656,29,463,[8]],[23657,445,482,[8]],[23658,110,491,[15]],[23686,91,366,[2]],[23687,89,384,[2]],[23688,94,402,[2]],[23689,92,420,[2]],[23690,475,452,[15]],[23691,4,475,[2]],[23717,23,367,[15]],[23718,66,393,[15]],[23719,463,398,[31]],[23720,60,432,[15]],[23721,79,449,[15]],[23722,86,497,[15]],[23742,422,368,[20]],[23743,65,394,[20]],[23744,44,409,[20]],[23745,67,431,[20]],[23746,454,466,[20]],[23747,437,478,[28]],[23773,421,369,[2]],[23774,425,405,[2]],[23775,428,440,[2]],[23776,470,454,[2]],[23777,109,473,[40]],[23778,45,505,[2]],[23801,305,370,[10]],[23802,407,389,[10]],[23803,417,406,[10]],[23804,87,425,[10]],[23805,13,439,[33]],[23806,479,488,[10]],[23829,82,371,[8]],[23830,404,388,[8]],[23831,84,407,[8]],[23832,411,424,[8]],[23833,473,434,[30]],[23834,12,493,[30]],[23868,75,372,[1]],[23869,80,408,[1]],[23870,34,445,[1]],[23871,108,455,[30]],[23872,464,472,[1]],[23873,414,500,[1]],[23896,365,373,[14]],[23897,382,395,[14]],[23898,41,404,[14]],[23899,426,430,[14]],[23900,100,467,[25]],[23901,95,479,[30]],[23922,396,374,[14]],[23923,55,415,[14]],[23924,76,450,[14]],[23925,98,468,[14]],[23926,90,480,[25]],[23927,81,498,[14]],[23952,443,375,[19]],[23953,395,385,[19]],[23954,27,414,[19]],[23955,64,416,[34]],[23956,427,441,[19]],[23957,413,501,[19]],[23979,406,376,[16]],[23980,361,386,[16]],[23981,71,413,[16]],[23982,38,427,[16]],[23983,99,462,[33]],[23984,88,486,[16]],[24009,70,377,[18]],[24010,43,391,[18]],[24011,375,412,[18]],[24012,432,422,[18]],[24013,460,459,[18]],[24014,444,483,[35]],[24039,59,378,[17]],[24040,453,380,[32]],[24041,397,411,[17]],[24042,22,421,[22]],[24043,83,444,[17]],[24044,73,504,[17]],[24073,53,379,[20]],[24074,398,410,[20]],[24075,415,447,[20]],[24076,458,465,[20]],[24077,448,477,[37]],[24078,429,495,[20]],[24102,435,382,[8]],[24103,441,418,[8]],[24104,472,435,[14]],[24105,459,464,[8]],[24106,20,481,[8]],[24107,105,492,[13]],[24133,266,383,[10]],[24134,97,419,[10]],[24135,104,438,[12]],[24136,28,469,[10]],[24137,449,476,[10]],[24138,478,489,[17]],[24159,322,387,[2]],[24160,431,423,[2]],[24161,42,451,[2]],[24162,474,453,[7]],[24163,103,474,[2]],[24164,430,494,[2]],[24190,74,390,[1]],[24191,77,426,[1]],[24192,416,446,[1]],[24193,106,456,[1]],[24194,476,471,[4]],[24195,37,499,[1]],[24218,339,392,[18]],[24219,380,433,[18]],[24220,423,442,[18]],[24221,456,460,[18]],[24222,433,484,[34]],[24223,402,502,[18]],[24246,357,397,[16]],[24247,383,428,[16]],[24248,85,443,[16]],[24249,101,461,[32]],[24250,93,485,[32]],[24251,78,503,[16]],[24364,480,344,[6]],[24365,481,345,[5]],[24366,482,347,[46]],[24367,483,348,[5]],[24368,484,349,[48]],[24369,485,351,[6]],[24370,487,352,[5]],[24371,488,353,[5]],[24372,490,354,[5]],[24373,491,355,[5]],[24374,633,356,[5]],[24375,634,357,[46]],[24376,635,358,[5]],[24377,636,360,[5]],[24378,637,361,[5]],[24383,644,507,[644]],[24492,492,326,[61]],[24493,493,327,[0]],[24494,494,329,[0,32]],[24495,495,330,[3]],[24496,496,331,[61]],[24497,497,332,[0]],[24498,498,333,[0]],[24499,499,334,[0]],[24500,500,336,[3]],[24501,638,337,[0]],[24502,639,338,[0]],[24503,640,339,[0]],[24504,641,340,[62]],[24505,642,341,[61]],[24506,643,342,[0]],[24507,644,343,[0]],[24609,519,416,[27]],[24610,520,417,[19]],[24611,521,418,[8,89]],[24612,523,419,[10,19]],[24613,525,420,[27]],[24614,526,422,[19]],[24615,527,423,[19]],[24616,528,424,[19]],[24617,529,425,[19]],[24618,530,426,[89]],[24619,522,427,[35]],[24620,645,428,[19]],[24621,646,429,[19]],[24622,647,430,[19]],[24623,648,432,[1,65]],[24624,649,433,[19]],[24627,653,509,[653]],[24724,549,380,[33]],[24725,550,381,[33]],[24726,551,382,[8,22]],[24727,552,383,[33]],[24728,554,384,[22]],[24729,555,385,[33]],[24730,557,386,[17]],[24731,558,387,[17]],[24732,559,389,[17]],[24733,560,390,[17]],[24734,553,391,[67]],[24735,556,392,[17]],[24736,650,393,[15,60]],[24737,651,395,[17]],[24738,652,396,[17]],[24739,653,397,[17]],[24824,501,398,[15]],[24825,502,400,[30]],[24826,505,402,[30]],[24827,506,403,[23]],[24828,509,404,[15]],[24829,510,405,[15]],[24830,511,407,[15]],[24831,512,409,[15]],[24832,514,410,[15]],[24833,516,413,[15]],[24834,517,414,[15]],[24835,518,415,[15]],[24916,531,362,[21]],[24917,532,363,[26]],[24918,534,365,[36]],[24919,536,366,[2,21]],[24920,537,368,[21]],[24921,538,369,[21]],[24922,541,370,[21]],[24923,542,373,[21]],[24924,545,375,[21]],[24925,546,377,[21]],[24926,547,378,[21]],[24927,548,379,[21]],[24928,654,367,[102]],[24929,655,371,[51]],[25007,562,488,[32]],[25008,564,489,[13]],[25009,565,492,[10]],[25010,566,493,[13]],[25011,568,494,[13]],[25012,569,495,[10]],[25013,571,496,[10]],[25014,572,498,[10]],[25015,574,500,[10]],[25016,576,502,[10]],[25017,577,503,[10]],[25018,578,504,[10]],[25095,579,471,[1]],[25096,581,472,[24]],[25097,583,473,[24]],[25098,584,474,[24]],[25099,585,476,[1]],[25100,587,477,[1]],[25101,588,479,[1]],[25102,590,480,[1]],[25103,591,482,[1]],[25104,593,484,[1]],[25105,595,486,[1]],[25106,596,487,[1]],[25164,598,452,[2]],[25165,599,453,[2]],[25166,600,454,[14]],[25167,601,457,[2,4]],[25168,603,459,[2]],[25169,605,460,[2]],[25170,606,462,[2]],[25171,608,463,[2]],[25172,609,464,[2]],[25173,612,466,[2]],[25174,613,467,[2]],[25175,614,468,[2]],[25240,615,434,[31]],[25241,616,435,[8]],[25242,617,436,[31]],[25243,620,437,[8]],[25244,621,440,[8]],[25245,622,442,[8]],[25246,623,443,[8]],[25247,626,445,[8]],[25248,627,446,[8]],[25249,628,448,[8]],[25250,631,450,[8]],[25251,632,451,[8]],[25258,246,530,[1]],[25259,247,531,[1]],[25260,492,1,[1]],[25268,238,530,[0]],[25269,230,534,[6]],[25270,493,1,[6]],[25274,240,510,[6]],[25275,223,530,[14]],[25276,405,1,[9]],[25283,224,531,[0]],[25284,236,534,[5]],[25285,494,1,[0]],[25292,234,510,[5]],[25293,231,531,[3]],[25294,495,1,[5]],[25302,252,510,[0]],[25303,6,534,[0]],[25304,496,1,[1,11]],[25312,346,512,[0]],[25313,370,571,[4]],[25314,497,1,[1,4]],[25322,265,571,[0]],[25323,353,579,[17]],[25324,498,1,[5,6,9,17]],[25331,347,571,[15]],[25332,348,581,[0]],[25333,499,1,[5,9,15]],[25337,354,512,[14]],[25338,304,579,[14]],[25339,401,1,[5,9,14]],[25346,46,512,[16]],[25347,393,581,[3]],[25348,500,1,[5,6,9,16]],[25356,329,579,[0]],[25357,330,581,[1]],[25358,638,1,[1,8]],[25366,384,572,[0]],[25367,360,573,[4]],[25368,639,1,[4,11,53]],[25375,334,572,[16]],[25376,277,577,[0]],[25377,640,1,[6,9,17,36]],[25385,373,572,[14]],[25386,321,583,[14]],[25387,641,1,[0,5,9,15,34]],[25395,374,573,[15]],[25396,58,577,[15]],[25397,642,1,[0,5,9,15,34,73]],[25405,331,573,[0]],[25406,368,583,[17]],[25407,643,1,[6,9,17,36,48]],[25414,378,577,[1]],[25415,389,583,[0]],[25416,644,1,[1,11,49]],[25423,251,525,[1]],[25424,338,528,[1]],[25425,480,1,[5,6,9,18]],[25433,239,525,[3]],[25434,442,536,[3]],[25435,481,1,[6,18,20]],[25439,253,511,[3]],[25440,245,525,[3,5]],[25441,250,1,[3]],[25448,237,528,[5]],[25449,235,536,[5]],[25450,482,1,[3,5,8,9,11,20,49,59]],[25458,222,511,[0]],[25459,11,528,[0]],[25460,483,1,[0,32]],[25467,0,511,[9]],[25468,3,536,[9]],[25469,484,1,[1,8,59,61]],[25473,394,515,[4]],[25474,391,587,[4]],[25475,364,1,[54]],[25483,352,515,[6]],[25484,72,594,[16]],[25485,485,1,[5,36,48,54,56]],[25493,62,515,[5]],[25494,328,597,[14]],[25495,487,1,[5,16,18,36,54,56,62]],[25502,400,587,[20]],[25503,56,594,[5]],[25504,488,1,[20,23]],[25512,392,587,[5]],[25513,54,597,[18]],[25514,490,1,[18,19]],[25521,381,594,[1]],[25522,371,597,[1]],[25523,491,1,[8,12]],[25531,388,586,[4]],[25532,48,588,[4]],[25533,633,1,[1,4,49,53,61,68]],[25540,372,516,[16]],[25541,387,586,[16]],[25542,634,1,[3,5,6,8,9,11,19,48,49,59,75]],[25549,333,586,[14]],[25550,332,593,[5]],[25551,635,1,[52]],[25555,390,516,[20]],[25556,342,588,[20]],[25557,68,1,[3,14,23,73,90]],[25565,367,588,[5]],[25566,52,593,[18]],[25567,636,1,[0,19,32,239]],[25575,61,516,[1]],[25576,47,593,[1]],[25577,637,1,[1,5,12,16,18,36,49,53,56,61,62,69]],[25584,440,540,[3]],[25585,379,548,[3]],[25586,531,1,[5,30]],[25594,280,540,[1]],[25595,278,616,[1]],[25596,532,1,[20,23,32,33]],[25603,540,540,[10]],[25604,366,621,[10]],[25605,439,1,[20,23,32,33,46]],[25612,261,548,[8]],[25613,96,616,[8]],[25614,534,1,[15,26]],[25621,260,548,[2]],[25622,91,621,[2]],[25623,536,1,[14,15,34,35]],[25630,15,616,[0]],[25631,23,621,[0]],[25632,654,1,[14,20,23,26,32,33,34,35,46,61,63]],[25639,408,555,[3]],[25640,422,566,[3]],[25641,537,1,[17,18,30,36,75,76]],[25649,369,555,[2]],[25650,421,600,[2]],[25651,538,1,[16,17,36,37]],[25658,316,555,[10]],[25659,305,607,[10]],[25660,541,1,[16,18,36,37,76,80]],[25667,294,566,[8]],[25668,82,600,[8]],[25669,655,1,[18,19,30,31]],[25673,535,566,[1]],[25674,293,607,[1]],[25675,75,1,[14,18,19,26,30,31,34,35,47]],[25683,30,600,[0]],[25684,365,607,[0]],[25685,542,1,[16,17,37,41]],[25689,543,574,[0]],[25690,362,578,[0]],[25691,396,1,[1,8,59,60]],[25699,345,574,[4]],[25700,443,584,[4]],[25701,545,1,[4,8,53,57]],[25708,539,574,[8]],[25709,344,595,[8]],[25710,406,1,[53,55]],[25718,336,578,[12]],[25719,70,584,[12]],[25720,546,1,[1,12,49,50]],[25727,335,578,[1]],[25728,59,595,[1]],[25729,547,1,[1,3,6,8,9,11,12,14,16,17,18,26,34,35,36,37,41,46,55,56,59,62,63,69,75,88]],[25737,356,584,[5]],[25738,53,595,[5]],[25739,548,1,[49,51]],[25746,9,544,[3]],[25747,453,552,[3]],[25748,549,1,[18,19,31,37,88,92]],[25756,288,544,[1]],[25757,450,614,[1]],[25758,550,1,[17,27]],[25766,317,544,[8]],[25767,435,622,[8]],[25768,551,1,[1,8,14,16,17,26,30,34,35,41,46,47,50,53,56,62,69,76,80,226]],[25775,271,552,[10]],[25776,266,614,[10]],[25777,552,1,[18,19,31,44]],[25785,359,552,[2]],[25786,89,622,[2]],[25787,554,1,[19,22]],[25794,19,614,[0]],[25795,395,622,[0]],[25796,555,1,[1,3,5,6,8,9,11,12,15,16,19,23,27,31,32,35,36,37,41,47,53,56,59,62,63,69,75,88,90,91]],[25804,229,560,[3]],[25805,361,568,[3]],[25806,557,1,[14,20,32,35,73,74]],[25813,279,560,[2]],[25814,322,599,[2]],[25815,558,1,[33,43]],[25819,323,517,[8]],[25820,320,560,[8]],[25821,404,1,[8,12,19,27,30,31,36,37,41,44,47,50,53,56,63,72]],[25829,69,568,[10]],[25830,407,599,[10]],[25831,559,1,[8,12,14,16,18,20,22,27,30,31,34,41,43,44,49,50,51,55,56,61,72,76,80,90,102]],[25839,303,517,[1]],[25840,74,568,[1]],[25841,560,1,[35,38]],[25848,35,517,[0]],[25849,43,599,[0]],[25850,553,1,[33,35,74,77]],[25858,377,513,[0]],[25859,339,582,[0]],[25860,556,1,[60,65]],[25867,343,513,[4]],[25868,66,590,[4]],[25869,650,1,[50,57,60,67]],[25873,358,513,[8]],[25874,399,591,[8]],[25875,65,1,[1,3,5,6,8,9,11,12,15,16,18,23,27,32,36,38,41,47,53,56,59,60,62,63,65,69,75,90,91,97]],[25883,351,582,[12]],[25884,382,590,[12]],[25885,651,1,[50,57,65,66]],[25892,63,582,[1]],[25893,385,591,[1]],[25894,652,1,[1,3,5,6,9,11,15,16,18,19,23,30,31,32,37,38,44,46,49,51,53,55,57,59,60,66,75,90,91,97,104]],[25902,5,590,[5]],[25903,357,591,[5]],[25904,653,1,[3,5,6,8,9,11,15,16,18,19,23,30,31,32,37,38,44,46,49,50,51,53,55,59,65,67,75,90,91,97,103]],[25911,447,546,[3]],[25912,463,551,[3]],[25913,501,1,[14,26,32,34,90,94]],[25917,503,546,[1]],[25918,286,619,[1]],[25919,452,1,[5,14,15,16,18,19,20,22,23,34,35,36,37,38,43,44,49,50,51,57,59,61,62,63,65,66,67,69,72,76,80,90,91,92,94,97,102,103,222]],[25927,285,546,[10]],[25928,446,627,[10]],[25929,502,1,[3,5,6,8,9,11,12,15,16,18,23,27,32,36,38,41,47,49,51,55,56,59,62,63,65,67,69,75,90,91,97,103,104,225]],[25933,504,551,[8]],[25934,275,619,[8]],[25935,102,1,[0,23,26,32,94,102,222,223]],[25942,274,551,[2]],[25943,94,627,[2]],[25944,505,1,[0,1,3,6,8,9,11,12,16,17,18,20,22,26,27,30,31,43,44,46,49,50,51,53,56,57,59,60,61,66,72,75,76,80,92,94,102,104,222,223,224]],[25952,21,619,[0]],[25953,451,627,[0]],[25954,506,1,[1,6,9,11,12,14,20,22,23,26,30,31,32,37,43,49,50,51,59,61,62,65,67,69,72,73,76,88,90,91,94,102,103,222,224,225,226,261]],[25961,418,561,[3]],[25962,41,569,[3]],[25963,509,1,[3,6,9,11,12,16,18,27,36,41,44,46,47,50,55,56,57,62,63,66,69,75,88,97,222,263]],[25971,325,561,[2]],[25972,425,605,[2]],[25973,510,1,[3,8,16,17,18,27,37,44,46,53,56,57,60,62,65,66,67,69,75,80,88,92,103,104,222,225,226,230]],[25977,513,561,[10]],[25978,324,609,[10]],[25979,417,1,[0,1,6,9,11,12,20,22,23,26,30,31,37,43,49,50,51,59,61,62,65,67,69,72,76,88,91,94,102,103,223,225,226,230,261,274]],[25986,307,569,[8]],[25987,84,605,[8]],[25988,511,1,[3,8,12,16,17,18,19,30,31,36,41,47,49,50,51,57,60,63,65,66,67,75,80,88,92,103,222,226,230,234]],[25995,515,569,[1]],[25996,287,609,[1]],[25997,80,1,[6,8,9,11,17,27,37,46,49,51,55,56,60,62,65,67,69,76,92,97,103,223,226,230,234,239,307]],[26004,36,605,[0]],[26005,44,609,[0]],[26006,512,1,[6,8,9,11,12,19,30,31,36,47,50,53,55,60,63,65,67,75,76,80,97,103,104,225,226,230,231]],[26014,376,576,[0]],[26015,398,580,[0]],[26016,514,1,[49,51,53,55,59,64]],[26023,508,576,[4]],[26024,350,589,[4]],[26025,397,1,[3,8,9,11,19,27,30,31,41,46,49,51,55,56,60,62,65,67,69,75,80,88,97,103,222,223,226,238]],[26029,507,576,[8]],[26030,349,596,[8]],[26031,375,1,[0,1,8,12,20,22,23,26,27,30,31,37,41,43,46,49,50,51,53,56,60,61,64,72,75,80,91,94,102,223,225,231,234,261,274,294]],[26039,341,580,[12]],[26040,71,589,[12]],[26041,516,1,[3,9,19,27,30,31,41,46,49,50,51,53,56,62,65,69,75,80,88,97,222,230,234,238,247]],[26048,340,580,[1]],[26049,27,596,[1]],[26050,517,1,[0,1,11,12,20,22,23,26,27,30,31,37,41,43,46,53,56,61,64,67,72,75,80,91,94,102,103,225,226,230,231,247,261,274,294,350]],[26058,49,589,[5]],[26059,55,596,[5]],[26060,518,1,[3,8,19,27,30,31,41,46,53,56,57,60,62,65,66,67,69,75,80,88,97,103,104,222,225,226,230,235]],[26068,436,542,[3]],[26069,64,547,[3]],[26070,519,1,[6,19,31,76,97,234,235,238,239,264]],[26077,270,542,[1]],[26078,462,617,[1]],[26079,520,1,[6,31,37,76,234,238,239,263,271]],[26086,276,518,[8]],[26087,441,542,[8]],[26088,521,1,[37,92,97,235,263,265]],[26096,306,547,[10]],[26097,97,617,[10]],[26098,523,1,[3,6,8,11,27,30,41,46,53,56,57,60,62,65,66,67,69,75,76,80,88,103,104,222,223,226,234,238,239,247,264,335]],[26106,264,518,[2]],[26107,92,547,[2]],[26108,525,1,[19,37,92,97,235,263,264,265,271,277]],[26112,267,518,[0]],[26113,17,617,[0]],[26114,22,1,[264,270]],[26122,412,558,[3]],[26123,432,563,[3]],[26124,526,1,[33,35,74,77,236]],[26131,311,558,[2]],[26132,431,602,[2]],[26133,527,1,[0,1,11,14,15,19,32,35,38,47,57,65,66,73,88,90,92,97,104,222,226,236,247,261,263,270,271,277,286]],[26140,310,558,[8]],[26141,411,612,[8]],[26142,528,1,[0,1,3,5,8,9,11,12,20,22,23,26,32,35,43,46,57,61,62,66,69,72,88,90,91,94,102,104,226,231,234,236,238,261,263,264,271,274,277,304]],[26150,300,563,[10]],[26151,87,602,[10]],[26152,529,1,[1,3,9,11,12,14,22,23,26,33,43,57,61,66,73,88,90,91,94,102,222,223,224,225,226,230,231,235,236,238,261,263,264,271,274,277,300]],[26160,299,563,[1]],[26161,77,612,[1]],[26162,530,1,[0,1,3,9,19,20,22,23,26,43,49,52,61,62,66,69,72,91,92,94,97,102,103,223,225,226,230,231,235,238,247,261,264,270,274,277,294,300,335,489]],[26169,33,602,[0]],[26170,38,612,[0]],[26171,522,1,[0,222,223,224,303]],[26179,363,514,[0]],[26180,383,575,[0]],[26181,645,1,[9,11,57,66,104,223,225,230,235,238,244]],[26189,355,575,[4]],[26190,26,585,[4]],[26191,646,1,[8,11,57,60,65,66,67,103,104,223,226,230,247,338]],[26198,57,575,[8]],[26199,426,592,[8]],[26200,647,1,[355]],[26204,386,514,[12]],[26205,337,585,[12]],[26206,67,1,[3,11,12,30,36,47,57,63,65,66,75,80,222,235,239,244,247,264,306]],[26213,50,514,[1]],[26214,60,592,[1]],[26215,648,1,[8,9,60,64,65,222,225,235,238,244,247,350,375]],[26223,51,585,[5]],[26224,380,592,[5]],[26225,649,1,[3,12,30,36,47,50,63,75,80,104,222,223,225,230,234,235,239,264,306,338,340]],[26233,467,535,[0]],[26234,473,538,[0]],[26235,615,1,[104,105]],[26242,257,535,[13]],[26243,472,629,[8]],[26244,616,1,[12,13]],[26251,256,535,[8]],[26252,466,632,[8]],[26253,617,1,[103,104,105,226,233]],[26261,249,538,[8]],[26262,107,629,[16]],[26263,620,1,[0,1,3,5,8,13,20,22,23,26,32,43,46,61,62,69,72,88,90,91,94,102,103,104,105,223,225,230,231,233,234,235,236,244,261,263,264,271,274,277,303,311]],[26267,630,538,[10]],[26268,248,632,[10]],[26269,104,1,[8,10]],[26273,625,629,[1]],[26274,10,632,[1]],[26275,13,1,[225,243]],[26283,424,557,[2]],[26284,428,559,[2]],[26285,621,1,[0,14,32,73,90,222,223,224,230,258]],[26292,629,557,[14]],[26293,302,608,[14]],[26294,427,1,[34,40]],[26301,301,557,[15]],[26302,423,610,[8]],[26303,622,1,[32,40,73,83]],[26311,298,559,[8]],[26312,85,608,[16]],[26313,623,1,[32,45]],[26320,619,559,[17]],[26321,297,610,[12]],[26322,83,1,[5,90,234,235,236,259]],[26330,32,608,[0]],[26331,34,610,[0]],[26332,626,1,[0,5,23,32,90,91,222,223,234,235,236,258,259,261,275]],[26339,410,564,[1]],[26340,416,567,[1]],[26341,627,1,[6,18,37,76,88,234,235,238,239,262]],[26348,618,564,[19]],[26349,319,601,[19]],[26350,415,1,[31,42]],[26358,318,564,[8]],[26359,409,604,[18]],[26360,628,1,[18,31,88,235,262,263,296]],[26367,624,567,[15]],[26368,313,601,[15]],[26369,79,1,[37,39]],[26376,312,567,[14]],[26377,76,604,[8]],[26378,631,1,[31,37,76,81]],[26386,39,601,[0]],[26387,42,604,[0]],[26388,632,1,[3,222,223,230,231,235,239,264,293]],[26395,471,526,[0]],[26396,475,532,[0]],[26397,598,1,[105,244,255]],[26404,242,526,[4]],[26405,474,631,[2]],[26406,599,1,[4,7]],[26414,241,526,[2]],[26415,470,633,[2]],[26416,600,1,[0,1,3,10,11,12,13,18,19,20,22,26,31,37,42,43,45,49,50,52,57,60,61,62,67,69,72,76,81,88,92,94,97,102,104,224,225,231,234,235,247,258,262,263,264,270,274,275,277,294,296,303,335,340,343]],[26423,610,532,[0,2]],[26424,226,631,[2,7]],[26425,108,1,[1,2]],[26432,597,532,[1]],[26433,225,633,[1]],[26434,106,1,[103,106]],[26441,1,631,[4]],[26442,7,633,[4]],[26443,601,1,[225,227]],[26447,602,549,[3]],[26448,457,554,[3]],[26449,461,1,[16,18,88,99]],[26457,292,549,[2]],[26458,460,624,[18]],[26459,603,1,[16,29]],[26466,291,549,[18]],[26467,456,626,[2]],[26468,605,1,[3,16,18,19,27,88,92,97,99,222,230,231,265,271,277,288]],[26475,611,554,[16]],[26476,282,624,[30]],[26477,101,1,[2,5,8,10,13,22,26,31,42,43,61,88,90,94,102,103,104,105,223,227,233,234,236,239,243,255,259,263,271,274,275,277,293,303,321]],[26485,281,554,[2]],[26486,99,626,[24]],[26487,606,1,[18,24]],[26495,24,624,[0]],[26496,29,626,[0]],[26497,608,1,[223,239,264,293,295]],[26504,455,550,[3]],[26505,459,553,[2]],[26506,609,1,[14,20,90,98]],[26510,604,550,[14]],[26511,290,623,[20]],[26512,458,1,[14,28]],[26520,289,550,[2]],[26521,454,625,[14]],[26522,612,1,[14,20,90,91,98,261,280]],[26529,284,553,[20]],[26530,100,623,[2]],[26531,613,1,[20,25]],[26538,283,553,[14]],[26539,98,625,[2]],[26540,614,1,[5,20,90,234,235,236,258,259,284]],[26544,607,623,[0]],[26545,25,625,[0]],[26546,28,1,[224,258,260]],[26550,586,527,[0]],[26551,465,529,[0]],[26552,477,1,[103,106,226,228]],[26560,233,527,[0,1]],[26561,476,628,[4]],[26562,579,1,[0,4,5,7,14,19,20,24,25,27,29,31,39,45,46,53,62,72,73,76,81,83,88,90,92,97,99,103,104,105,222,223,225,227,228,233,234,236,260,261,265,271,284,288,294,295,321,335,338,347]],[26569,232,527,[0,1,4]],[26570,464,634,[1]],[26571,581,1,[233,242]],[26578,228,529,[40]],[26579,109,628,[24]],[26580,583,1,[2,3,5,8,10,13,22,26,27,37,42,43,61,76,81,90,94,102,103,104,105,222,227,230,231,233,234,236,243,255,259,264,265,270,271,274,275,277,288,295,303,321,332]],[26588,227,529,[2]],[26589,103,634,[2]],[26590,584,1,[0,3,18,20,25,31,45,62,69,72,88,223,226,230,231,255,258,260,262,263,277,284,294,295,296,321,336]],[26594,592,628,[1]],[26595,2,634,[4]],[26596,4,1,[227,248]],[26603,438,539,[3]],[26604,449,545,[1]],[26605,585,1,[5,90,234,235,236,259,273]],[26613,273,539,[1]],[26614,448,615,[20]],[26615,587,1,[0,3,18,20,25,31,45,62,69,72,88,223,230,231,255,258,260,262,263,277,284,294,295,296,321,330]],[26622,594,539,[28]],[26623,272,620,[28]],[26624,437,1,[23,32,260,273,275,280,297]],[26631,259,545,[30]],[26632,95,615,[1]],[26633,588,1,[0,14,25,45,73,83,222,223,258,259,260,284,302]],[26640,258,545,[14]],[26641,90,620,[1]],[26642,590,1,[0,23,25,32,45,222,223,259,275,280,284,297,311,329]],[26646,580,615,[0]],[26647,14,620,[0]],[26648,20,1,[224,260,283]],[26655,434,541,[3]],[26656,445,543,[1]],[26657,591,1,[3,88,222,230,231,263,269]],[26661,582,541,[7]],[26662,269,613,[18]],[26663,444,1,[0,3,18,19,23,24,25,27,29,32,39,45,54,62,69,72,76,81,92,97,99,223,224,230,231,235,255,260,262,263,265,271,275,277,280,283,284,288,296,297,330,347,348]],[26671,268,541,[1]],[26672,433,618,[24]],[26673,593,1,[24,262,269,282]],[26680,589,543,[32]],[26681,263,613,[29]],[26682,93,1,[3,6,16,22,26,29,30,31,34,36,42,43,47,61,63,75,80,81,90,91,94,98,102,222,230,234,235,238,239,259,261,263,264,269,271,273,274,275,277,280,284,293,295,296,297,302,303,306,321,333]],[26689,262,543,[16]],[26690,88,618,[1]],[26691,595,1,[19,27,29,92,97,99,262,265,271,277,282,288,309]],[26699,16,613,[0]],[26700,18,618,[0]],[26701,596,1,[262,281]],[26709,469,533,[0]],[26710,479,537,[0]],[26711,562,1,[1,8,10,11,50,57,103,105,223,226,227,228,230,233,234,247,248,255,333,338,340,355,356]],[26718,255,533,[17]],[26719,478,630,[13]],[26720,564,1,[8,10,13,103,104,105,228,233,243,255,498]],[26724,573,533,[10]],[26725,254,635,[10]],[26726,468,1,[0,3,18,23,25,32,39,45,54,56,62,69,72,76,81,223,224,230,231,235,255,260,262,263,269,275,280,282,283,284,296,297,309,329,330,348,353]],[26733,570,537,[0,10]],[26734,244,630,[10]],[26735,110,1,[8,10,243,244,248,249]],[26743,243,537,[14]],[26744,105,635,[10,13]],[26745,565,1,[1,225,226,249,333,337]],[26752,8,630,[1]],[26753,12,635,[1]],[26754,566,1,[225,227,243,247,252]],[26761,420,556,[2]],[26762,430,562,[2]],[26763,568,1,[31,76,81,295,309,313]],[26770,309,556,[17]],[26771,429,606,[10]],[26772,569,1,[3,22,23,26,27,31,32,37,42,43,61,94,102,222,230,231,235,260,264,265,270,271,274,277,280,288,297,303,309,313,321,332,366]],[26780,308,556,[10]],[26781,419,611,[16]],[26782,571,1,[3,39,222,230,231,235,263,277,294,313,328]],[26786,563,562,[10]],[26787,296,606,[15]],[26788,86,1,[6,30,31,75,76,80,231,234,238,239,269,293,295,296,307,313,317]],[26795,295,562,[14]],[26796,81,611,[10]],[26797,572,1,[3,6,22,30,42,75,76,80,222,230,234,235,238,239,264,269,271,277,293,296,307,313,317,368]],[26804,575,606,[0]],[26805,31,611,[0]],[26806,37,1,[3,222,230,231,235,312]],[26814,403,565,[1]],[26815,414,570,[1]],[26816,574,1,[0,25,45,73,83,222,223,224,283,284,302,315]],[26820,567,565,[19]],[26821,327,598,[19]],[26822,413,1,[23,26,32,43,94,102,260,274,280,297,303,321,367]],[26829,326,565,[18]],[26830,402,603,[10]],[26831,576,1,[23,32,260,275,280,297,298]],[26838,315,570,[15]],[26839,78,598,[10]],[26840,577,1,[0,23,25,32,45,222,223,224,260,261,275,280,283,284,297,302,329,369]],[26848,314,570,[10]],[26849,73,603,[14]],[26850,578,1,[26,34,43,47,63,90,91,94,98,102,259,261,273,274,275,280,284,297,302,303,321,332,333,366,367,373]],[26854,561,598,[0]],[26855,40,603,[0]],[26856,45,1,[0,222,223,224,314]],[26861,770,0,[0]],[26862,240,1,[6,234,238,239,240]],[26863,234,1,[19,27,92,97,99,265,271,277,282,288,292]],[26864,252,1,[103,104,105,228,233,244,249,255,257]],[26869,771,0,[0,14]],[26870,253,1,[11,223,230,252,253]],[26871,222,1,[234,237]],[26872,0,1,[18,23,25,31,32,45,54,56,69,72,103,104,105,228,233,234,237,244,249,255,257,260,262,269,275,277,280,282,283,284,294,295,296,297,314,328,329,348,353,369,370]],[26877,772,0,[4]],[26878,346,1,[222,229]],[26879,354,1,[56,329,347,353,354]],[26880,46,1,[234,237,277,294,328,483]],[26885,773,0,[8]],[26886,377,1,[264,276]],[26887,343,1,[1,225,226,244,333,337,345]],[26888,358,1,[30,75,76,80,231,240,264,269,276,293,307,313,317,319]],[26893,774,0,[1]],[26894,363,1,[270,287]],[26895,386,1,[30,57,75,76,80,231,240,264,269,270,276,287,293,307,313,317,319,355,356,357]],[26896,50,1,[1,18,23,25,31,32,45,54,56,69,72,222,225,226,229,234,237,244,260,262,269,270,275,277,280,282,283,284,287,294,295,296,297,314,328,329,333,337,345,348,353,366,369,370,372]],[26901,775,0,[0,4,8,9]],[26902,394,1,[8,60,243,244,270,287,337,355,364]],[26903,352,1,[235,245]],[26904,62,1,[234,235,237,238,245,246]],[26909,776,0,[4,8,9,14,59]],[26910,372,1,[61,238,246,332,367,368,372,373,500]],[26911,390,1,[25,45,283,284,298,314,327]],[26912,61,1,[238,246,332,342]],[26917,777,0,[1,2]],[26918,323,1,[43,270,287,303,321,322]],[26919,303,1,[236,264,276,297,310]],[26920,35,1,[6,73,77,236,237,238,239,240,246,297,300,310,311,315,327,482]],[26925,778,0,[2,4,9,30]],[26926,276,1,[11,90,91,98,223,230,252,253,259,261,273,280,284,290]],[26927,264,1,[270,287,358]],[26928,267,1,[17,264,265,266]],[26933,251,1,[9,50,64,229,237,245,246,247,253,264,270,276,287,337,338,340,350,357,358,364,366,372,375,378]],[26934,239,1,[238,246,329,351]],[26935,245,1,[11,17,25,45,68,90,91,98,223,230,244,252,253,259,261,264,265,266,273,280,283,290,298,314,327,345,367,373,389]],[26940,471,1,[23,32,54,56,72,235,236,245,260,270,275,280,287,298,310,327,328,329,332,342,348,353,354,370,392]],[26941,242,1,[323]],[26942,241,1,[262,268]],[26947,586,1,[24,29,99,101]],[26948,233,1,[225,241]],[26949,232,1,[236,297,299]],[26954,338,1,[3,222,223,225,230,231,241,245,264,276,293,295,299,310,312,323,329,351,493]],[26955,237,1,[8,60,69,222,229,236,243,244,270,277,287,294,297,310,337,355,364,366,369,372,392,393]],[26956,11,1,[3,54,56,72,222,223,225,230,231,234,237,241,245,264,276,293,295,299,310,312,323,328,329,348,351,353,354,369,370,392,493,495]],[26961,465,1,[22,24,29,99,101,225,241,276,277,278]],[26962,228,1,[41,262,268,293,317,511]],[26963,227,1,[225,241,283,289]],[26968,246,1,[9,64,229,237,245,246,247,264,270,276,287,350,358,364,366,372,375,378,480]],[26969,238,1,[222,229,230,251]],[26970,223,1,[6,8,12,49,52,60,69,73,77,230,237,238,239,240,244,246,251,255,270,277,287,294,300,311,315,327,329,335,336,337,342,343,351,355,364,366,369,372,392,393,482,491]],[26975,247,1,[229,237,366,372,480,492]],[26976,224,1,[5,230,234,235,236,494]],[26977,231,1,[222,223,229,250]],[26982,475,1,[228,464]],[26983,610,1,[1,8,12,17,18,25,31,45,49,52,60,68,69,225,226,230,244,251,255,265,266,268,269,270,276,277,282,283,284,287,294,295,296,298,314,327,332,333,335,336,343,354,355,356,364,366,367,369,372,373,389,392,491,529]],[26984,597,1,[30,43,57,67,75,76,80,223,225,230,231,240,241,250,251,262,264,268,269,270,276,287,293,299,303,307,310,313,317,319,321,322,323,338,355,356,357,358,364,385]],[26989,469,1,[39,42,76,79]],[26990,255,1,[267]],[26991,573,1,[35,39,42,76,79,303,304,305]],[26996,230,1,[30,35,43,57,67,75,76,80,223,230,231,240,250,251,262,264,268,269,270,276,287,293,299,305,307,310,313,317,319,321,322,323,338,355,356,357,358,364,385,526]],[26997,236,1,[638]],[26998,6,1,[229,237,366,372,480,492,638,639]],[27003,467,1,[295,308]],[27004,257,1,[8,60,69,230,243,244,251,270,277,287,299,310,337,355,364,366,369,372,392,393,508]],[27005,256,1,[17,25,26,35,45,47,63,94,102,264,265,266,267,274,275,284,289,295,298,303,304,305,308,314,322,327,332,333,367,372,373,374]],[27010,442,1,[3,229,230,231,235,238,246,329,351,481]],[27011,235,1,[47,48,52,58]],[27012,3,1,[47,48,52,54,56,58,72,234,237,328,348,353,354,369,370,392,495,633]],[27017,479,1,[35,39,42,76,79,303,304,305,312,318]],[27018,570,1,[8,17,25,26,39,42,45,47,60,63,69,76,79,94,102,230,243,244,251,265,266,267,270,274,275,276,284,287,289,295,298,299,308,310,312,314,318,322,327,332,333,337,355,364,366,367,369,373,374,392,393,394]],[27019,243,1,[17,25,39,42,45,68,76,79,264,265,266,267,284,289,295,298,308,312,314,318,327,367,373,389,390]],[27024,473,1,[30,35,43,262,268,269,270,287,293,294,295,299,304,305,308,310,321,322,323,325]],[27025,249,1,[40,45,73,78]],[27026,630,1,[327,403]],[27031,438,1,[12,18,31,39,49,52,230,235,243,245,251,255,263,268,269,282,295,296,309,312,313,327,332,335,336,343,354,366,370,372,393,403,483,491,496]],[27032,273,1,[281,283,289,291]],[27033,594,1,[17,25,45,62,67,68,230,251,255,257,264,265,266,267,281,283,284,291,295,298,299,308,310,314,327,329,330,347,351,364,367,369,370,373,385,389,390,485]],[27038,440,1,[65,270,287,355,378,379]],[27039,280,1,[306,324]],[27040,540,1,[40,45,73,78,280,312,318,327,403,504]],[27045,434,1,[17,25,40,57,62,68,73,75,78,230,251,255,257,264,265,266,267,280,281,283,284,291,294,295,298,308,312,314,317,318,329,330,338,347,351,355,356,357,358,367,369,370,373,389,390,403,485,504,512]],[27046,582,1,[1,7,106,108]],[27047,268,1,[50,337,338,339]],[27052,436,1,[17,25,45,68,264,265,266,267,281,283,284,291,295,298,308,313,314,327,367,373,389,390,409]],[27053,270,1,[22,23,32,50,54,56,72,235,245,260,261,275,276,277,278,280,297,298,299,306,310,324,327,328,329,332,337,338,339,342,348,353,354,358,370,392,502]],[27054,441,1,[270,271,287,435]],[27059,445,1,[24,29,99,101,225,241,281,282,283,289,291,456]],[27060,589,1,[270,287,356,358,380]],[27061,262,1,[74,304,321,406]],[27066,9,1,[17,25,45,68,92,264,266,267,277,281,283,284,291,295,298,308,313,314,327,367,373,389,390,409,443]],[27067,288,1,[264,276,364,384]],[27068,317,1,[264,276,299,310,311,364,384,412]],[27073,449,1,[25,281,283,284,291,458]],[27074,259,1,[60,264,276,299,310,337,364,365]],[27075,258,1,[59,336,345,518]],[27080,447,1,[39,65,74,230,235,245,251,260,263,270,287,304,309,312,313,321,329,332,342,351,355,366,370,372,378,379,406,483,496,501]],[27081,503,1,[15,23,91,96]],[27082,285,1,[336,361]],[27087,64,1,[92,261,264,276,277,299,310,311,356,364,380,384,412,443,502,550]],[27088,306,1,[270,287,303,320]],[27089,92,1,[261,265,270,271,287,356,380,435,502,550,645]],[27094,379,1,[274,285]],[27095,261,1,[23,26,47,63,68,91,94,96,102,260,261,274,275,322,332,333,336,361,372,374,389,390,503]],[27096,260,1,[32,50,54,56,72,235,245,261,264,275,276,297,298,299,310,327,328,329,332,337,338,339,342,348,353,354,358,364,370,384,392,502,505]],[27101,602,1,[2,4,103,109]],[27102,292,1,[228,233,262,268,464,465]],[27103,291,1,[24,50,282,291,337,338,339,460]],[27108,455,1,[74,244,277,288,299,304,310,311,321,345,364,384,390,394,406,412,508,522]],[27109,604,1,[14,20,90,95]],[27110,289,1,[14,20,90,95,259,437]],[27115,463,1,[261,439]],[27116,504,1,[280,440]],[27117,274,1,[32,50,54,56,72,235,245,264,271,275,276,297,298,299,310,327,328,329,332,337,338,339,342,348,353,354,358,364,370,384,392,505,520]],[27122,453,1,[33,38,77,87]],[27123,271,1,[19,267,270,271,303,320,356,380,521]],[27124,359,1,[264,265,276,441]],[27129,459,1,[258,262,268,272]],[27130,284,1,[45,68,92,277,295,298,299,308,310,311,313,314,327,361,364,367,373,384,389,390,409,412,441,443,458,514]],[27131,283,1,[59,284,336,345,518,592]],[27136,457,1,[2,4,14,20,40,45,73,78,90,95,103,109,228,233,258,259,261,272,274,285,286,306,312,318,324,327,336,361,403,437,439,464,465,534]],[27137,611,1,[16,262,263,303,320,356,380,611]],[27138,281,1,[262,268,269,434]],[27143,408,1,[57,65,67,75,264,276,294,299,310,317,338,355,356,357,358,378,379,384,385,512,528]],[27144,369,1,[44,306,325,426]],[27145,316,1,[35,303,304,305,317,336,361,510]],[27150,420,1,[312,323,573]],[27151,309,1,[259,281,283,289,291,335,437,513]],[27152,308,1,[42,313,318,319,409,416]],[27157,424,1,[243,254]],[27158,629,1,[270,519]],[27159,301,1,[32,50,54,56,72,235,245,264,276,297,298,299,310,327,328,329,332,337,338,339,342,348,353,354,358,364,370,384,392,505,532]],[27164,412,1,[303,320,355,377]],[27165,311,1,[38,310,311,323,556]],[27166,310,1,[24,30,35,50,264,276,282,291,293,294,299,303,304,305,310,321,325,336,337,338,339,355,361,364,377,384,434,460,527]],[27171,428,1,[41,44,83,243,254,293,298,302,306,317,325,426,511,572]],[27172,298,1,[243,254,295,308,315,402]],[27173,619,1,[17,264,265,266,267,276,549]],[27178,229,1,[264,276,299,310,337,363]],[27179,279,1,[7,24,38,225,242,281,282,310,311,460,556,583]],[27180,320,1,[24,30,35,43,50,282,291,293,294,303,304,305,311,320,321,322,323,325,336,338,339,361,363,364,384,434,460,555]],[27185,418,1,[60,80,306,307,324,325,363,364,365,542]],[27186,325,1,[49,53,59,70]],[27187,513,1,[49,53,59,70,260,279]],[27192,430,1,[10,13,104,107]],[27193,563,1,[10,13,39,42,76,79,104,107,312,313,318,319,409,410]],[27194,295,1,[59,260,279,336,345,409,518,574]],[27199,432,1,[1,7,10,13,18,24,31,42,65,74,76,77,79,104,106,107,108,230,235,245,251,262,263,291,295,296,300,304,309,318,319,321,329,332,342,351,354,366,370,372,377,378,379,393,406,409,410,412,434,460,483,496,557]],[27200,300,1,[19,271,287,303,320,355,356,377,380,452]],[27201,299,1,[27,271,287,288,356,380,435,453]],[27206,410,1,[39,79,299,304,310,312,313,364,384,416,526,578]],[27207,618,1,[42,49,53,59,70,260,279,318,319,335,513,577]],[27208,318,1,[31,296,308,429]],[27213,403,1,[32,34,83,85]],[27214,567,1,[297,301]],[27215,326,1,[50,302,338,339,363,364,384,570]],[27220,422,1,[26,94,102,274,275,462]],[27221,294,1,[24,30,35,36,49,50,53,59,70,282,291,293,294,303,304,305,306,307,325,336,338,339,361,363,364,384,434,460,539]],[27222,535,1,[26,285,286,463]],[27227,416,1,[295,308,314,326]],[27228,624,1,[1,7,10,13,18,24,42,49,65,74,76,79,104,106,107,108,230,235,245,251,262,263,264,276,291,295,299,303,304,308,309,310,318,319,320,321,329,332,335,336,337,342,351,354,355,363,366,370,372,378,379,393,406,409,410,429,434,460,483,496,515]],[27229,312,1,[284,409,437,574,592,604]],[27234,361,1,[74,264,276,303,304,310,320,321,337,355,363,377,406,552]],[27235,69,1,[38,77,87,264,276,300,310,337,363,364,384,431]],[27236,74,1,[24,29,38,77,87,99,101,226,264,276,282,299,300,304,337,363,431,456,526,580]],[27241,41,1,[49,53,59,70,260,279,335,344]],[27242,307,1,[24,30,35,36,38,42,49,50,53,59,70,77,87,104,249,257,264,276,282,291,293,294,300,303,304,305,306,307,310,311,313,318,321,325,336,337,338,339,355,361,377,409,410,416,431,434,460,527,539,555,566]],[27243,515,1,[294,307,508,538]],[27248,414,1,[26,32,34,83,85,233,285,286,294,297,301,307,463,508,538,600]],[27249,315,1,[32,297,298,358,569]],[27250,314,1,[32,34,42,83,85,297,298,301,318,319,416,423]],[27255,370,1,[40,45,49,53,59,62,65,67,70,73,78,230,251,255,261,312,318,327,329,330,335,336,337,344,347,351,361,363,369,370,378,379,384,385,403,439,440,485,504,528,564]],[27256,265,1,[230,251,366,370,372,399]],[27257,347,1,[54,235,245,328,332,342,347,348,401]],[27262,384,1,[230,251,366,369,372,391]],[27263,334,1,[47,52,58,329,333,343,351,368,490]],[27264,373,1,[47,63,68,322,332,333,372,374,389,390,533]],[27269,360,1,[12,39,52,76,79,230,249,251,254,255,312,313,327,329,342,343,351,366,369,372,391,403,409,410,416,491,515,562]],[27270,374,1,[366,367,372,387]],[27271,331,1,[367,373,387,388]],[27276,543,1,[51,55,64,71]],[27277,345,1,[51,55,64,71,340,349]],[27278,539,1,[74,303,304,320,321,345,355,377,406,516]],[27283,383,1,[355,356,358,377,380,384,560]],[27284,355,1,[321,355,377,405]],[27285,57,1,[60,66,356,363,364,365,378,382]],[27290,376,1,[30,41,75,82]],[27291,508,1,[17,97,264,265,266,267,361,452,453,514,524]],[27292,507,1,[293,316]],[27297,277,1,[24,35,38,50,77,87,264,276,282,291,300,303,304,305,310,325,335,337,338,339,344,367,373,387,388,431,434,460,509]],[27298,58,1,[17,38,45,68,77,87,92,265,266,267,277,297,299,300,301,311,326,327,337,361,363,366,367,372,388,389,390,412,423,431,441,443,514,549,593]],[27299,378,1,[333,390,486]],[27304,362,1,[49,53,70,335,336,340,344,345,518,543]],[27305,336,1,[51,55,64,71,306,324,340,349,350,376]],[27306,335,1,[55,349,361,376,514,547]],[27311,353,1,[1,7,18,35,38,39,47,49,50,51,55,63,64,65,68,71,74,77,87,106,108,230,235,245,251,260,262,263,264,276,282,295,299,300,305,306,308,309,310,312,313,320,321,322,324,325,329,333,336,337,338,339,340,342,344,345,349,350,351,354,355,356,363,367,370,372,374,376,378,379,387,389,390,393,406,429,431,483,496,501,509,515,516,529,533,552,558]],[27312,304,1,[56,72,347,353,354,369,391,392,399,401,484]],[27313,329,1,[369,391,392,400]],[27318,398,1,[28,30,41,75,82,259,281,283,290,291,293,316,344,437,513,595]],[27319,341,1,[49,53,59,70,260,279,317,335,336,344,361,408]],[27320,340,1,[38,51,55,64,71,77,87,92,264,276,277,299,300,311,337,340,349,363,375,412,431,441,443,544]],[27325,348,1,[46,328,329,330,369,391,400,497]],[27326,393,1,[46,328,329,330,369,391,400,497,641]],[27327,330,1,[24,35,38,46,47,50,63,68,77,87,230,251,264,276,282,291,300,303,304,305,310,322,325,328,329,330,332,333,335,337,338,339,344,367,370,372,374,387,389,390,392,399,431,434,460,497,509,533,640]],[27332,339,1,[292,302,327,329,337,363,364,384,484,505,532,569,570,588]],[27333,351,1,[264,276,299,300,310,337,363,411]],[27334,63,1,[65,377,378,379,386]],[27339,321,1,[24,35,38,47,50,63,68,77,87,230,251,282,291,292,299,302,303,304,305,322,325,327,329,332,333,335,337,338,339,344,364,367,369,372,374,384,387,389,390,391,411,431,434,460,484,505,509,532,533,569,570,588,642]],[27340,368,1,[24,35,38,50,77,87,282,291,292,299,302,303,304,305,325,327,329,335,337,338,339,344,364,366,367,372,384,387,411,431,434,460,484,505,509,532,569,570,588,643]],[27341,389,1,[230,251,366,367,369,372,373,387,388,391,643,644]],[27346,443,1,[30,38,41,49,51,55,59,64,70,71,75,77,82,87,92,277,293,310,311,316,335,336,340,345,349,361,411,412,431,441,443,517]],[27347,70,1,[1,7,14,20,24,51,55,64,71,90,95,106,108,228,233,258,259,262,268,269,272,282,291,293,306,316,320,324,340,349,350,376,434,437,460,464,465,525]],[27348,356,1,[55,349,376,398]],[27353,26,1,[30,31,41,42,49,53,59,65,70,75,82,91,293,296,308,313,316,318,319,321,335,336,344,355,361,378,379,386,405,409,416,429,439,440,506]],[27354,337,1,[67,337,363,377,384,385,386,528,559]],[27355,51,1,[356,378,380,381]],[27360,388,1,[235,245,328,332,342,346]],[27361,387,1,[47,235,245,328,332,333,346,359]],[27362,333,1,[63,372,373,374,488]],[27367,391,1,[46,69,328,329,330,365,391,393,394,497,528,617]],[27368,400,1,[24,50,282,291,292,302,327,329,337,338,339,356,378,380,381,434,460,484,505,532,569,570,588,612]],[27369,392,1,[52,58,329,342,343,351,359,360]],[27374,48,1,[13,42,47,244,248,257,298,318,333,342,359,390,410,416,423,516,565]],[27375,342,1,[47,68,332,333,367,387,388,389,390,488,499]],[27376,367,1,[61,342,366,367,368,487]],[27381,350,1,[30,41,49,59,70,75,82,293,316,335,336,345,361,396]],[27382,71,1,[49,51,53,59,70,74,260,279,303,304,306,317,320,324,335,336,340,344,361,375,405,406,408,545]],[27383,49,1,[49,53,59,70,335,336,344,345,361,362]],[27388,66,1,[23,27,265,274,279,280,285,287,288,306,324,364,384,441,505,523]],[27389,382,1,[60,264,276,299,300,310,316,337,364,365,411,507]],[27390,5,1,[31,40,243,254,295,296,314,358,402,429,629]],[27395,399,1,[14,20,57,90,95,259,290,338,355,356,357,358,437,559,594]],[27396,385,1,[651]],[27397,357,1,[23,27,31,40,243,254,265,274,279,280,285,287,288,295,296,306,314,324,358,364,384,402,429,441,505,523,629,651,652]],[27402,426,1,[648]],[27403,60,1,[50,337,338,339,356,378,380,530]],[27404,380,1,[50,337,338,339,381,530,649]],[27409,332,1,[10,13,44,49,55,59,61,70,74,76,79,91,94,104,107,235,245,262,263,268,269,274,275,285,286,303,304,309,313,320,324,325,329,332,335,336,349,350,351,361,362,366,367,368,386,396,398,399,405,406,410,416,426,434,439,440,483,487,496,506,536]],[27410,52,1,[47,52,58,61,332,333,343,360,366,367,368,486,487,558,581]],[27411,47,1,[52,58,332,343,359,360,486,558,581,636]],[27416,72,1,[10,13,44,49,55,59,70,74,76,79,91,94,104,107,262,263,268,269,274,275,285,286,303,304,309,313,320,324,325,335,336,349,350,361,362,369,386,396,398,399,405,406,410,416,426,434,439,440,483,484,495,496,506,536,634]],[27417,56,1,[329,347,351,352]],[27418,381,1,[62,330,369,370,371]],[27423,344,1,[36,44,80,84]],[27424,59,1,[51,306,324,340,375,397]],[27425,53,1,[51,55,64,306,324,340,344,349,397,398,513,548]],[27430,349,1,[29,49,291,292,293,316,320,335,336,515,525,589]],[27431,27,1,[30,49,53,59,70,293,294,335,336,344,361,421]],[27432,55,1,[30,59,284,293,294,295,296,308,345,349,361,421,437,518,543,592,604,622]],[27437,328,1,[328,346,347,352,369,484,495,634,636,637]],[27438,54,1,[52,58,342,343,347,352,359,360,394,508,551]],[27439,371,1,[635]],[27444,327,1,[38,45,77,87,92,277,297,301,310,311,326,327,411,412,431,441,443,631]],[27445,78,1,[32,42,297,298,318,319,416,427]],[27446,561,1,[248,256]],[27451,322,1,[337,338,363,383]],[27452,407,1,[23,27,35,38,77,87,265,274,279,280,285,287,288,299,303,304,305,306,324,325,335,344,411,431,441,505,523,540]],[27453,43,1,[38,310,311,337,338,363,383,432]],[27458,421,1,[41,44,49,53,59,70,248,256,306,314,316,317,325,335,344,426,511,627]],[27459,82,1,[44,51,80,84,307,324,340,375,397,425]],[27460,30,1,[275,306,324,446]],[27465,319,1,[8,12,105,110]],[27466,313,1,[31,37,81,86]],[27467,39,1,[295,296,308,419]],[27472,431,1,[303,304,320,404]],[27473,87,1,[19,271,287,303,320,321,325,335,344,356,380,405,431,452,540,554]],[27474,33,1,[74,282,299,345,397,404,405,406,516,545,552,586]],[27479,402,1,[32,34,42,297,301,302,318,319,416,423,427,428]],[27480,73,1,[17,83,85,97,264,265,266,267,298,302,402,427,428,452,453,524,628]],[27481,40,1,[1,7,24,41,85,106,108,242,248,256,282,291,316,317,427,428,460,511,572,582]],[27486,409,1,[31,49,59,70,91,295,335,336,361,362,386,396,410,419,429,439,440,506,576]],[27487,76,1,[31,37,81,86,295,296,308,309,419,420]],[27488,42,1,[24,31,37,81,86,225,241,281,282,309,312,323,420,460,464,573,598]],[27493,425,1,[41,49,53,59,70,316,317,335,344,426,511,541]],[27494,84,1,[41,49,53,59,70,316,335,344,408,422]],[27495,36,1,[82,324,421,422,512,537]],[27500,429,1,[39,76,79,249,312,313,409,410,416,466]],[27501,296,1,[10,13,34,42,44,55,76,79,94,104,107,248,256,274,285,286,298,301,302,306,318,319,325,349,350,398,409,410,423,426,428,446,536,575]],[27502,575,1,[24,29,99,101,226,282,295,456,580,621]],[27507,305,1,[44,55,274,285,286,306,325,349,350,398,426,447]],[27508,293,1,[26,285,286,294,301,463,508,567]],[27509,365,1,[14,44,55,60,66,80,258,259,274,275,285,286,306,307,316,349,350,363,364,365,380,381,382,398,426,446,447,507,542,605]],[27514,302,1,[40,314,315,413]],[27515,85,1,[31,32,243,254,295,296,297,298,315,384,402,429,460,560,569,587]],[27516,32,1,[45,314,327,414]],[27521,324,1,[248,325,335,344,540,561]],[27522,287,1,[49,335,336,395]],[27523,44,1,[30,41,59,70,75,82,293,294,316,345,361,395,396,407]],[27528,423,1,[8,12,31,37,81,86,105,110,255,309,420,469]],[27529,297,1,[12,254,255,479]],[27530,34,1,[8,31,37,45,78,81,86,105,110,233,254,307,309,314,327,413,420,469,479,538,600,632]],[27535,419,1,[30,39,41,42,75,76,79,82,91,249,293,294,309,312,316,318,319,345,362,386,407,410,439,440,466,506,624]],[27536,81,1,[13,249,256,257,313,319,409,410,466,473]],[27537,31,1,[39,312,313,415]],[27542,411,1,[288,304,321,404,405,436]],[27543,77,1,[27,271,287,300,303,304,320,321,356,380,405,435,436,453,526,553]],[27544,38,1,[288,304,321,404,405,436,647]],[27549,269,1,[1,7,14,20,24,49,90,95,106,108,228,233,258,259,262,268,269,272,282,291,320,335,336,350,434,437,460,464,465,515,525,546]],[27550,263,1,[24,29,99,101,281,282,291,292,456,457]],[27551,16,1,[24,99,101,281,282,456,457,461]],[27556,450,1,[23,27,38,77,87,265,274,275,279,280,285,287,288,310,311,411,412,431,441,446,505,523,650]],[27557,266,1,[38,77,87,277,310,311,411,412,431,442]],[27558,19,1,[270,375,428,519,544,571]],[27563,448,1,[37,42,259,281,283,289,291,308,309,318,319,344,437,513,577,625]],[27564,95,1,[1,7,99,101,106,108,242,281,291,456,457,460,461,471]],[27565,580,1,[226,470]],[27570,278,1,[23,225,274,275,279,280,285,446,505,579]],[27571,96,1,[44,51,80,84,275,306,307,340,375,397,425,446,655]],[27572,15,1,[31,39,260,295,296,312,313,356,363,501,529,558,575,623]],[27577,462,1,[270,283,287,321,405,452,466,521,562,591]],[27578,97,1,[283,452,466,521,562,591,646]],[27579,17,1,[17,264,265,266,267,276,398,423,547,549,568]],[27584,433,1,[99,101,281,291,292,302,327,381,434,456,457,460,461,530,570,588,612,630]],[27585,88,1,[25,28,281,284,290,291,458,459]],[27586,18,1,[8,24,25,28,31,37,73,78,81,86,99,101,105,110,254,268,282,284,290,291,309,312,315,318,403,413,414,420,440,447,456,457,458,459,461,469,479,504,534,609]],[27591,286,1,[15,30,41,75,82,91,96,260,293,294,316,345,362,407,440,463,505,535]],[27592,275,1,[23,30,34,41,42,75,76,79,82,91,96,249,257,261,279,281,293,294,298,301,302,316,318,319,345,362,407,409,410,415,423,428,466,503,564,585]],[27593,21,1,[23,261,279,280,439,451]],[27598,272,1,[25,28,98,100]],[27599,90,1,[25,28,98,100,290,455]],[27600,14,1,[34,38,42,77,87,226,249,265,272,301,302,310,311,313,318,319,409,411,412,416,428,431,441,442,466,470,473,551,565,603]],[27605,366,1,[325,418]],[27606,91,1,[306,307,324,417]],[27607,23,1,[306,307,324,417,654]],[27612,435,1,[34,38,42,77,87,100,249,265,301,302,310,311,313,318,319,409,411,412,416,428,431,441,442,458,459,466,473,551,565,596]],[27613,89,1,[1,7,25,28,38,77,87,99,101,108,226,242,264,271,275,276,277,281,284,290,291,310,311,411,412,431,439,441,442,456,457,458,459,460,461,502,520,532,550,584]],[27614,395,1,[33,264,265,276,277,310,311,411,412,431,441,442,653]],[27619,290,1,[20,28,259,272,273,289,290,437,595,607]],[27620,100,1,[20,90,95,272,437,448]],[27621,607,1,[20,272,273,449]],[27626,460,1,[14,18,228,233,258,259,262,434,448,461,464,465,589,613]],[27627,282,1,[16,18,88,93]],[27628,24,1,[18,88,93,262,263,444]],[27633,454,1,[14,258,259,273,324,377,448,528,537,606]],[27634,98,1,[258,272,273,438]],[27635,25,1,[20,95,272,273,283,448,591,608]],[27640,456,1,[88,93,262,263,268,434,444,445]],[27641,99,1,[18,262,263,269,282,299,345,397,445,516,545,552,586,610]],[27642,29,1,[18,23,30,34,41,42,75,76,79,82,88,91,96,249,257,261,262,263,279,280,281,293,294,298,301,302,316,318,319,345,362,407,409,410,415,423,428,440,445,462,466,503,533,564,585,614]],[27647,446,1,[8,13,23,30,31,34,37,41,42,73,75,76,78,79,81,82,86,104,105,107,110,249,254,256,279,280,293,294,298,301,302,309,315,316,318,319,345,362,403,407,409,410,413,414,415,420,423,428,440,451,469,479,504,563]],[27648,94,1,[23,30,41,75,82,91,96,261,279,280,293,294,316,345,362,407,440,450]],[27649,451,1,[23,96,261,279,280,285,439,450,506,531]],[27654,476,1,[4,25,28,79,227,228,233,284,290,292,300,415,416,457,458,459,464,553,578,601]],[27655,109,1,[7,99,101,225,242,281,291,456,457,460,461,475]],[27656,592,1,[284,454]],[27661,472,1,[31,37,73,78,81,86,243,244,254,309,315,403,413,414,420,468]],[27662,107,1,[8,99,105,110,243,244,312,318,440,447,456,457,468,469,479,504,534,590]],[27663,625,1,[37,308,309,430]],[27668,478,1,[13,34,42,76,79,104,107,249,256,298,301,302,318,319,409,410,415,423,428,472]],[27669,244,1,[302,424]],[27670,8,1,[107,243,472,473,566,615]],[27675,474,1,[2,14,227,259,262,268,269,272,273,434,438,448,464,476]],[27676,226,1,[263,433]],[27677,1,1,[22,27,103,225,276,277,278,287,288,463,464,465,523,535,579,602]],[27682,466,1,[8,73,78,244,254,315,403,413,414,478]],[27683,248,1,[327,403,466,479,562,619]],[27684,10,1,[35,37,105,248,303,304,305,308,309,408,430,431,468,469,510,554,561,620]],[27689,470,1,[2,18,227,268,269,445,464,471,582,599]],[27690,225,1,[227,232]],[27691,7,1,[4,228,232,233,464,477]],[27696,464,1,[1,25,28,225,226,284,290,458,459,474]],[27697,103,1,[25,28,86,99,101,225,241,281,284,290,291,323,429,430,456,457,458,459,460,461,464,598,626]],[27698,2,1,[108,232,284,454,474,475,584,597]],[27703,254,1,[255,312,318,472,563,618]],[27704,105,1,[13,76,79,104,107,244,256,298,313,410,415,416,423,466,472,473,565,616]],[27705,12,1,[34,42,76,79,249,257,298,301,302,318,319,409,410,415,423,428,466,467]],[31590,544,1,[658]],[31953,489,1,[657]],[31975,486,1,[656]],[32927,111,5,[0]],[32929,111,525,[0]],[32934,112,108,[0]],[32936,112,526,[1]],[32947,113,105,[0]],[32949,113,527,[2]],[32954,114,506,[0]],[32956,114,528,[3]],[32961,115,111,[0]],[32963,115,529,[4]],[32972,116,11,[0]],[32974,116,530,[5]],[32979,117,7,[0]],[32981,117,531,[6]],[32990,118,110,[0]],[32992,118,532,[7]],[32999,119,14,[0]],[33001,119,533,[8]],[33008,120,507,[0]],[33010,120,534,[9]],[33019,121,109,[0]],[33021,121,535,[10]],[33030,122,2,[3]],[33032,122,536,[11]],[33039,123,10,[0]],[33041,123,537,[12]],[33048,124,106,[0]],[33050,124,538,[13]],[33057,125,92,[1]],[33059,125,539,[14]],[33064,126,98,[1]],[33066,126,540,[15]],[33073,127,95,[1]],[33075,127,541,[16]],[33082,128,94,[1]],[33084,128,542,[17]],[33089,129,90,[1]],[33091,129,543,[18]],[33098,130,91,[1]],[33100,130,544,[19]],[33107,131,97,[1]],[33109,131,545,[20]],[33116,132,28,[1]],[33118,132,546,[21]],[33125,133,508,[2]],[33127,133,547,[22]],[33134,134,93,[2]],[33136,134,548,[23]],[33145,135,31,[2]],[33147,135,549,[24]],[33152,136,100,[2]],[33154,136,550,[25]],[33161,137,23,[2]],[33163,137,551,[26]],[33170,138,99,[2]],[33172,138,552,[27]],[33179,139,27,[2]],[33181,139,553,[28]],[33188,140,103,[2]],[33190,140,554,[29]],[33197,141,43,[2]],[33199,141,555,[30]],[33204,142,83,[2]],[33206,142,556,[31]],[33211,143,87,[2]],[33213,143,557,[32]],[33220,144,40,[2]],[33222,144,558,[33]],[33229,145,34,[2]],[33231,145,559,[34]],[33238,146,76,[2]],[33240,146,560,[35]],[33245,147,82,[2]],[33247,147,561,[36]],[33252,148,88,[2]],[33254,148,562,[37]],[33259,149,79,[1]],[33261,149,563,[38]],[33268,150,81,[1]],[33270,150,564,[39]],[33277,151,47,[1]],[33279,151,565,[40]],[33286,152,77,[1]],[33288,152,566,[41]],[33295,153,41,[1]],[33297,153,567,[42]],[33304,154,37,[1]],[33306,154,568,[43]],[33311,155,38,[1]],[33313,155,569,[44]],[33320,156,75,[1]],[33322,156,570,[45]],[33331,157,507,[0]],[33333,157,571,[46]],[33340,158,60,[0]],[33342,158,572,[47]],[33349,159,49,[0]],[33351,159,573,[48]],[33356,160,55,[0]],[33358,160,574,[49]],[33365,161,62,[0]],[33367,161,575,[50]],[33374,162,66,[0]],[33376,162,576,[51]],[33383,163,50,[0]],[33385,163,577,[52]],[33390,164,61,[0]],[33392,164,578,[53]],[33401,165,48,[0]],[33403,165,579,[54]],[33408,166,53,[0]],[33410,166,580,[55]],[33417,167,56,[0]],[33419,167,581,[56]],[33428,168,67,[0]],[33430,168,582,[57]],[33437,169,54,[0]],[33439,169,583,[58]],[33448,170,72,[4]],[33450,170,584,[59]],[33457,171,508,[4]],[33459,171,585,[60]],[33466,172,506,[4]],[33469,172,586,[61]],[33476,173,74,[4]],[33478,173,587,[62]],[33485,174,63,[4]],[33487,174,588,[63]],[33492,175,73,[4]],[33494,175,589,[64]],[33501,176,68,[4]],[33503,176,590,[65]],[33512,177,509,[1]],[33514,177,591,[66]],[33521,178,52,[1]],[33523,178,592,[67]],[33530,179,65,[1]],[33532,179,593,[68]],[33539,180,64,[1]],[33541,180,594,[69]],[33548,181,51,[1]],[33550,181,595,[70]],[33555,182,57,[1]],[33557,182,596,[71]],[33564,183,506,[1]],[33566,183,597,[72]],[33571,184,80,[0]],[33573,184,598,[73]],[33580,185,599,[74]],[33589,186,84,[0]],[33591,186,600,[75]],[33596,187,44,[0]],[33598,187,601,[76]],[33605,188,89,[0]],[33607,188,602,[77]],[33612,189,42,[0]],[33614,189,603,[78]],[33619,190,78,[0]],[33621,190,604,[79]],[33630,191,86,[0]],[33632,191,605,[80]],[33639,192,33,[0]],[33641,192,606,[81]],[33648,193,32,[0]],[33650,193,607,[82]],[33657,194,36,[0]],[33659,194,608,[83]],[33666,195,46,[0]],[33668,195,609,[84]],[33677,196,85,[0]],[33679,196,610,[85]],[33686,197,39,[0]],[33688,197,611,[86]],[33693,198,35,[0]],[33695,198,612,[87]],[33700,199,20,[0]],[33702,199,613,[88]],[33709,200,29,[0]],[33711,200,614,[89]],[33720,201,22,[0]],[33722,201,615,[90]],[33729,202,17,[0]],[33731,202,616,[91]],[33738,203,24,[0]],[33740,203,617,[92]],[33745,204,18,[0]],[33747,204,618,[93]],[33752,205,104,[0]],[33754,205,619,[94]],[33761,206,16,[0]],[33763,206,620,[95]],[33770,207,25,[0]],[33772,207,621,[96]],[33779,208,21,[0]],[33781,208,622,[97]],[33788,209,102,[0]],[33790,209,623,[98]],[33799,210,26,[0]],[33801,210,624,[99]],[33808,211,30,[0]],[33810,211,625,[100]],[33815,212,101,[0]],[33817,212,626,[101]],[33824,213,96,[0]],[33826,213,627,[102]],[33835,214,6,[1]],[33837,214,628,[103]],[33844,215,15,[1]],[33846,215,629,[104]],[33851,216,112,[1]],[33853,216,630,[105]],[33858,217,3,[2]],[33860,217,631,[106]],[33865,218,12,[1]],[33867,218,632,[107]],[33874,219,9,[1]],[33876,219,633,[108]],[33881,220,4,[1]],[33883,220,634,[109]],[33888,221,107,[1]],[33890,221,635,[110]]] diff --git a/research/bit-destination-span-bound/LICENSE b/research/bit-destination-span-bound/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/bit-destination-span-bound/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/bit-destination-span-bound/NOTICE b/research/bit-destination-span-bound/NOTICE new file mode 100644 index 0000000000..7d73cf6715 --- /dev/null +++ b/research/bit-destination-span-bound/NOTICE @@ -0,0 +1,10 @@ +Fixed destination-chart BIT span ceiling, Apache-2.0. + +The original native word, invoice and inherited attribution are retained +under NOTICE-7001. The identical public source copy is pinned at #7289. +Relevant retained source and comparison work appears in #6726, #7001, +#7244, #7274, #7275, #7277 and #7289. See PROVENANCE.tsv for exact Git +and SHA-256 pins. + +OpenAI Codex and subagents materially assisted proof, implementation, +verification and packaging. diff --git a/research/bit-destination-span-bound/NOTICE-7001 b/research/bit-destination-span-bound/NOTICE-7001 new file mode 100644 index 0000000000..32c2936ea0 --- /dev/null +++ b/research/bit-destination-span-bound/NOTICE-7001 @@ -0,0 +1,26 @@ +Paired E-free BIT specialization and complete accounting, with substantial +OpenAI Codex assistance, for the integer-multiplication research project. +Apache-2.0; LICENSE is retained from the source project. + +DreamingOfClouds (Claude Opus assistance) receives credit for #6834's chain-root +BIT caller, #6937's E-free roots and the underlying two-chain construction. +@CubeJerry (OpenAI assistance) receives credit for #6980's four-input three-query +identity, separated interval replacement and QUERY-only caller. The complete +#6980 proof is retained byte-for-byte in data/6980_PROOF.md. + +The new contribution specializes that existing caller to the actual #6726 BIT +native, supplies the parity-driven pairing of two real 111-port invocations, +and checks the complete E-free finite/compiler/ordinary budget from the selected +ordinary backend. No general QUERY-only mechanism, chain root or new raw kappa +is claimed as new here. + +independent/bit_review.py and independent/interval_gate.py were written by a +separate OpenAI Codex research worker for an implementation-independent scalar +and arithmetic audit. This is model-run checking, not external human review. + +zxv and retained predecessor authors receive credit for #6726's source-native +export, integer-before-mod2 transfer, complete source checking and admission +framework. Ali Romman and Cinna Davis retain the root/native lineage credit. +The copied arithmetic and native checker retain their original headers; see +retained/NOTICE. The selected .0034 backend retains the source and contributor +credits in data/selected_record.json and data/selected_review.md. diff --git a/research/bit-destination-span-bound/PROOF.md b/research/bit-destination-span-bound/PROOF.md new file mode 100644 index 0000000000..7b5ae20b35 --- /dev/null +++ b/research/bit-destination-span-bound/PROOF.md @@ -0,0 +1,79 @@ +# Whole-word fixed destination-chart span ceiling + +## Scope and necessity + +Fix the #7001/#6726 retained BIT word, original event clocks, charts, +coefficient rows and signed caller. The local normalized scalar at each +lane is a linear functional on all original GF(2) public coordinates. +For a native paid MOVE, grant arbitrary ordinary XOR synthesis from every +other lane already live in the original destination chart just before the +MOVE. Give away new source cleanup, allocation, routing, precision, +ownership and restoration costs. The scope retains original coefficients +and chronology at every clock. + +If the moving row is not in the span of those destination rows, no XOR +of those rows can supply the required arbitrary-input value. A dual +annihilating every eligible row and pairing to one with the moving row +is an exact certificate. In particular the all-zero public input and +the input specified by the dual have identical observations on the +permitted destination lanes and differ on the required arrival. Only +already-live original destination rows are granted. Future arrivals, +new source stock, altered chart sets, changed chronology and paid +delivery changes are outside this proof. + +## Complete census and independent certificate + +The bitmask replay follows each MOVE, ADD, SWAP and owned lifetime at +its literal clock. It verifies the complete scalar endpoint on all basis +columns, namely X stays fixed, Y receives its matching X, each helper +retains its required value, and the owned output slots are clear. +The independent replay maintains a live-frame dictionary and exact +set-valued coefficient rows. It performs elimination in the opposite +coordinate order and verifies the dual by direct pairings against every +eligible row and the moving row. The largest live destination library +has 544 lanes. The 2,871 ordered duals include 552 with support larger +than one and maximum support 87. Their SHA-256 is +`506e53a26609781c8f677a80bf42efbca63f5bbf9da44c6ba895fc240ec158fd`. + +All 2,871 original native MOVE clocks were checked with zero members +and zero unresolved. The scope permits every individually eligible +removal simultaneously, with shared stock and all new ordinary work +granted free. The eligible set is empty, so its whole-invoice savings +upper is exactly zero. + +## Full signed bill + +Reconstruct the unchanged 36 native instances, all 107,352 paid jobs, +19,950 productive fields and rank surplus 1,506, including the fixed +caller query, idle and target terms. The primary directed power bounds +use rational logarithm and alternating exponential intervals. A +separate rational logarithm and reciprocal positive exponential +calculation encloses the same signed moment. + +At target `10018846261809/2500000000000000`, the raw upper remains +about −60.10389921914735 even with the free synthesis grant. Exact +fractions are preserved in the two JSON receipts. No old ideal +terminal-donor, fusion or retarget savings are added. The directed +negative complete bill closes this exact fixed-library reuse family. +No changed physical word or κ improvement results. + +## Evidence and lineage + +This package retains the sealed Round 29 scientific census and audit. +The independent audit and the ordered dual array match those original +bytes. The primary receipt keeps only the two inputs used by these +algorithms. Each of those exact inputs is present at public #7289 and +at the canonical paths recorded in the source manifest. The inherited +native and caller assumptions still apply. + +#7289 tests balanced changes to arrival charts. The present test keeps +the original charts and asks whether their already-live values suffice. +#4633 studies an ambient quotient with changed charts. #302 uses a +different retiming and shared-donor construction. This package does +not establish a ceiling for those changes. + +Original source and invoice credit belong to #7001 and #6726. The +retained BIT premise and signed comparison are carried by #7244, #7274 +and #7277. Public source packaging builds on #7275 and #7289. OpenAI +Codex and subagents materially assisted the proof, implementation, +independent audit and packaging. diff --git a/research/bit-destination-span-bound/PROVENANCE.tsv b/research/bit-destination-span-bound/PROVENANCE.tsv new file mode 100644 index 0000000000..39eefcc8af --- /dev/null +++ b/research/bit-destination-span-bound/PROVENANCE.tsv @@ -0,0 +1,4 @@ +LICENSE c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64 https://github.com/CrocSwap/integer-mult-bounds/blob/a9637b6dc4d81bfe415b106575d52af5134c5518/research/bit-balanced-retarget-bound/LICENSE +NOTICE-7001 8c73eaf46327f01b4cfc18640b5e5f552648fc5e4427cbccd42af5e7ecd3b732 32c2936ea041e8f3e78638572a73f5f4079d4180 https://github.com/CrocSwap/integer-mult-bounds/blob/a9637b6dc4d81bfe415b106575d52af5134c5518/research/bit-balanced-retarget-bound/NOTICE-7001 +inputs/research/paired-query-only-bit/EFREE-RESULT.json a46b6c6040f75184cab5467656811ad988c216e3bc8e44d595a5015b6e49620b 575f76487f9999ecc3e7b1b70f9f71bc582ef8a8 https://github.com/CrocSwap/integer-mult-bounds/blob/a9637b6dc4d81bfe415b106575d52af5134c5518/research/bit-balanced-retarget-bound/inputs/research/paired-query-only-bit/EFREE-RESULT.json +inputs/research/paired-query-only-bit/retained/inputs/BIT-NATIVE-WORD.json.gz 51203e7fc75ba10bd3ac3f8e675759f47e13d262bea66b6600d1e515095cad78 b718d6b2848215ad785022106dfa9f871a3d1c0c https://github.com/CrocSwap/integer-mult-bounds/blob/a9637b6dc4d81bfe415b106575d52af5134c5518/research/bit-balanced-retarget-bound/inputs/research/paired-query-only-bit/retained/inputs/BIT-NATIVE-WORD.json.gz diff --git a/research/bit-destination-span-bound/README.md b/research/bit-destination-span-bound/README.md new file mode 100644 index 0000000000..a8568e7ee3 --- /dev/null +++ b/research/bit-destination-span-bound/README.md @@ -0,0 +1,41 @@ +# Fixed destination-chart span ceiling for the retained BIT word + +The exact 2,871-arrival census finds zero native paid MOVEs that can be +replaced by local XOR using only the already-live original rows in the +destination chart. An independent replay verifies a separating +GF(2) dual at every arrival. With the complete original 36-copy bill, +the savings upper is zero. Conditional κ is unchanged. + +## Replay + +From a clean repository checkout with CPython 3.12 and assertions enabled: + +```sh +python3.12 -B scripts/research_package.py --package research/bit-destination-span-bound +``` + +From this directory, the standalone replay also works without Git, network +access or an earlier research checkout. + +```sh +python3.12 -I -B replay.py --controls +``` + +The verifier authenticates two exact bundled inputs. It reconstructs all +2,871 original arrival spans and independently verifies the ordered duals, +literal endpoint and complete directed price. Mutated source, forged +membership and an incomplete cap exercise the failure paths. See +[Proof](PROOF.md), [census](RESULT.json), [independent audit](AUDIT.json), +and [exact provenance](PROVENANCE.tsv). + +## Open next questions + +Can changing the chronology of coframed operations produce a different +destination library? First bound a declared whole-word edit family against +one complete signed invoice. Charge the old and new transport, source +preparation, typed contacts, ownership and restoration. A price-clearing +case needs exact arbitrary-input action and full replay before a build. + +The original native word and invoice are credited to #7001 and #6726. +The public source copy is pinned through #7289. OpenAI Codex and subagents +materially assisted. [Notices](NOTICE) diff --git a/research/bit-destination-span-bound/RESULT.json b/research/bit-destination-span-bound/RESULT.json new file mode 100644 index 0000000000..dc2698dd57 --- /dev/null +++ b/research/bit-destination-span-bound/RESULT.json @@ -0,0 +1,29 @@ +{ + "all_eligible": [], + "cases_cap": 2871, + "cases_visited": 2871, + "decision": "PIVOT_NEGATIVE_UPPER", + "eligible_paid_moves": 0, + "native_instances": 36, + "net_after_free_synthesis": [ + "-300519496095736769319964186406477641296364427008833/5000000000000000000000000000000000000000000000000", + "-150259748047868384659982093203238820648182213480307/2500000000000000000000000000000000000000000000000" + ], + "physical_sites": 0, + "pins": { + "research/paired-query-only-bit/EFREE-RESULT.json": "a46b6c6040f75184cab5467656811ad988c216e3bc8e44d595a5015b6e49620b", + "research/paired-query-only-bit/retained/inputs/BIT-NATIVE-WORD.json.gz": "51203e7fc75ba10bd3ac3f8e675759f47e13d262bea66b6600d1e515095cad78" + }, + "raw_comparator_net": [ + "-300519496095736769319964186406477641296364427008833/5000000000000000000000000000000000000000000000000", + "-150259748047868384659982093203238820648182213480307/2500000000000000000000000000000000000000000000000" + ], + "removed_rank_counts": {}, + "saving_interval": [ + "0", + "0" + ], + "seconds_cap": 240, + "status": "PASS_GLOBAL_DESTINATION_SPAN_UPPER", + "target": "10018846261809/2500000000000000" +} diff --git a/research/bit-destination-span-bound/SOURCES.json b/research/bit-destination-span-bound/SOURCES.json new file mode 100644 index 0000000000..5335fa97d9 --- /dev/null +++ b/research/bit-destination-span-bound/SOURCES.json @@ -0,0 +1,18 @@ +{ + "schema_version": 1, + "base_commit": "e54523517d0f03e58352e647c403a5af3e525a57", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "75d77b328ea02ded535e7f23aee5b1e55d0bb1a8", + "sha256": "154c3d30455d778fd3343b6b4851f0fa4665f0f7625b0adb3675e2bafbbf6bf1" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "3404fbdd5e7529a0674eef26114b5071e4586cec", + "sha256": "ead6cdc9d0af6d58e8a49744d8ec8c7c15e13d2ba93c276c434bcf9b51b93a81" + } + ] +} diff --git a/research/bit-destination-span-bound/SOURCES.tsv b/research/bit-destination-span-bound/SOURCES.tsv new file mode 100644 index 0000000000..4248381d9b --- /dev/null +++ b/research/bit-destination-span-bound/SOURCES.tsv @@ -0,0 +1,2 @@ +research/paired-query-only-bit/EFREE-RESULT.json a46b6c6040f75184cab5467656811ad988c216e3bc8e44d595a5015b6e49620b https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/e54523517d0f03e58352e647c403a5af3e525a57/research/paired-query-only-bit/EFREE-RESULT.json +research/paired-query-only-bit/retained/inputs/BIT-NATIVE-WORD.json.gz 51203e7fc75ba10bd3ac3f8e675759f47e13d262bea66b6600d1e515095cad78 https://raw.githubusercontent.com/CrocSwap/integer-mult-bounds/e54523517d0f03e58352e647c403a5af3e525a57/research/paired-query-only-bit/retained/inputs/BIT-NATIVE-WORD.json.gz diff --git a/research/bit-destination-span-bound/TASK.json b/research/bit-destination-span-bound/TASK.json new file mode 100644 index 0000000000..eef47025e4 --- /dev/null +++ b/research/bit-destination-span-bound/TASK.json @@ -0,0 +1,77 @@ +{ + "schema_version": 1, + "task_id": "bit-helper-contract", + "priority_revision": 8, + "base_commit": "e54523517d0f03e58352e647c403a5af3e525a57", + "original_card": { + "id": "bit-helper-contract", + "question": "Can a changed G20 helper path or independent-target split improve the complete BIT moment without losing its physical endpoint?", + "starting_points": [ + "docs/research/current-priorities.md", + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md", + "research/g20-helper-split/README.md", + "research/g20-conjugation-admission/README.md" + ], + "methods": [ + "Construct and independently check one source-bound instance of the stated first experiment.", + "Seek an exact counterexample or target-specific complete-budget obstruction to that same proposed change." + ], + "acceptance_gate": "A full boundary contract and paid profile; unchanged scalar counts alone are insufficient. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_selected_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read revision 8, the selected review and live exact-source handoffs. Then follow this card's bounded first_experiment.", + "scope": "Source-bound orientation only, not a supplier replay or theorem proof." + }, + "first_experiment": "First read #5679/#5708 and their audits as pending component proposals. Choose one uncovered helper group/cut on an exact word; compare arbitrary-input native action, targets, owned storage, both orientations and full signed bill. Stop if the gain is only a scalar count or repaid by lost targets. Do not rerun the frozen #5609 common-frame domain without changing its hypothesis.", + "bottleneck_link": "Judge the actual current supplier contract and complete signed target/paid bill; frozen-profile ceilings require an applicability proof.", + "allowed_variations": [ + "One exact source head, helper/cut region or quantified proposition and changed hypothesis; check live handoffs first. Different seeds are not different scopes." + ], + "scope_change_triggers": [ + "Changing source head, helper/cut domain, operation alphabet or caller boundary without recording the new scope.", + "Treating an archived proposal or local numerical pass as complete supplier admission." + ], + "overlap_terms": [ + "G20", + "helper split", + "5679", + "5708", + "independent target" + ], + "existing_checks": [ + { + "scope": "Selected PR5599: complete helper-subspace construction and independent caller replay; five framework assumptions remain.", + "evidence": "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md", + "remaining": "The next experiment must identify uncovered source-specific work. Successor archive intake does not transfer this admission.", + "status": "reviewed", + "source_commit": "09dd0965711ca7eeb169057a420abab1c9052137", + "selected_record_sha256": "2a0220e866417774606e0f991e41b9c1d26b1f43b97857238cf478dbc7d330b5" + } + ] + }, + "scope_status": "changed", + "actual_scope": "All 2,871 paid MOVE clocks of the retained #7001/#6726 BIT word. At each clock test exact moving-row membership in the span of already-live original destination-chart peers.", + "scope_change_reason": "Whole-stock delivery at the fixed original charts after #7289 excluded balanced changes to receiving charts.", + "bottleneck_link": "The complete retained BIT invoice has a raw target shortfall near 60.1039. This screen checks whether eliminating otherwise unchanged native arrivals can pay any of it.", + "budget_minutes": 4, + "stop_rule": "Exhaust 2,871 original MOVE clocks or 240 seconds. Preserve unvisited clocks on a cap. Stop at a negative whole-invoice upper. A surviving scope requires exact new native action, phase, ownership and restoration before any claim.", + "outcome": "negative-result", + "evidence": "PROOF.md, RESULT.json, AUDIT.json, all 2,871 ordered DUALS.json witnesses, and clean registered replay with changed-input, cap, and forged-membership controls.", + "author": "Round 30 research campaign", + "ai_assistance": "OpenAI Codex and subagents materially assisted proof, implementation, independent audit and packaging.", + "open_questions": [ + { + "question": "Can earlier coframed operations generate a different destination library on the same word?", + "why_it_matters": "The fixed original live library cannot eliminate any paid arrival.", + "first_step": "Bound all distinct eligible chronology edits against the full signed invoice, including source preparation, both endpoints, ownership and restoration.", + "blocked_by": "Any target-clearing scope still needs an exact typed arbitrary-input action and full charged replay." + } + ] +} diff --git a/research/bit-destination-span-bound/VERIFY.json b/research/bit-destination-span-bound/VERIFY.json new file mode 100644 index 0000000000..608d7da341 --- /dev/null +++ b/research/bit-destination-span-bound/VERIFY.json @@ -0,0 +1,20 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/replay.py", + "--controls" + ], + "timeout_seconds": 300, + "checks": "Authenticate exact bundled word and invoice, replay all 2,871 destination libraries, check independent dual and directed price, and reject changed input and forged membership." + } + ] +} diff --git a/research/bit-destination-span-bound/audit.py b/research/bit-destination-span-bound/audit.py new file mode 100644 index 0000000000..212fe0544c --- /dev/null +++ b/research/bit-destination-span-bound/audit.py @@ -0,0 +1,247 @@ +"""Independent per-MOVE GF(2) dual and signed invoice replay.""" + +from argparse import ArgumentParser +from collections import Counter, defaultdict +from fractions import Fraction as F +from functools import cache +import gzip +from hashlib import sha256 +import json +from pathlib import Path + +HERE = Path(__file__).resolve().parent +WORD = "research/paired-query-only-bit/retained/inputs/BIT-NATIVE-WORD.json.gz" +INVOICE = "research/paired-query-only-bit/EFREE-RESULT.json" +KAPPA = F(10018846261809, 2500000000000000) +GRID = 10**50 + + +def authenticate(root): + manifest = HERE / "SOURCES.tsv" + pins, data = {}, {} + for line in manifest.read_text().splitlines(): + key, expected, _ = line.split("\t") + name = Path(key) + if name.is_absolute() or ".." in name.parts or key in pins: + raise ValueError(f"ambiguous input path {key}") + raw = (root / name).read_bytes() + if sha256(raw).hexdigest() != expected: + raise ValueError(f"changed source {key}") + pins[key], data[key] = expected, raw + return pins, json.loads(gzip.decompress(data[WORD])), json.loads(data[INVOICE]) + + +def separating_dual(library, target): + """Find a linear functional that annihilates the library and hits target.""" + pivots = {} + for row in library: + reduced = set(row) + while reduced: + key = min(reduced) + if key not in pivots: + pivots[key] = reduced + break + reduced ^= pivots[key] + remainder = set(target) + for p, row in sorted(pivots.items()): + if p in remainder: + remainder ^= row + if not remainder: + return None, len(pivots) + free = min(remainder) + assert free not in pivots + dual = {free} + for p, row in sorted(pivots.items(), reverse=True): + if len(row & dual) & 1: + dual.add(p) + assert all(not (len(row & dual) & 1) for row in library) + assert len(target & dual) & 1 + return sorted(dual), len(pivots) + + +def control(): + lib = [{0, 1}, {0, 2}] + assert separating_dual(lib, {1, 2}) == (None, 2) + assert separating_dual(lib, {0}) == ([0, 1, 2], 2) + assert separating_dual([], set()) == (None, 0) + + +def census(word): + n = word["public"] + frames = [*word["start"], *([None] * word["owned_fields"])] + values = [frozenset([j]) if j < n else frozenset() for j in range(len(frames))] + live = defaultdict(dict) + for i, (frame, row) in enumerate(zip(frames, values, strict=True)): + if frame is not None: + live[frame][i] = row + rank = {int(f): d["dim"] for f, d in word["frames"].items()} + library_sizes, library_ranks, paid, removed = (Counter() for _ in range(4)) + duals, members = [], [] + + def place(i, frame, value): + if frames[i] is not None: + del live[frames[i]][i] + frames[i], values[i] = frame, value + if frame is not None: + live[frame][i] = value + + for t, (op, i, *rest) in enumerate(word["program"]): + if op == "MOVE": + src, dst = rest + assert frames[i] == src and i not in live[dst] + library = tuple(live[dst].values()) + dual, span_rank = separating_dual(library, values[i]) + library_sizes[len(library)] += 1 + library_ranks[span_rank] += 1 + r = abs(rank[src] - rank[dst]) + paid[r] += 1 + if dual is None: + members.append(t) + removed[r] += 1 + else: + duals.append([t, i, dst, dual]) + place(i, dst, values[i]) + elif op == "ADD": + j, frame = rest + assert frames[i] == frames[j] == frame + place(i, frame, values[i] ^ values[j]) + elif op == "SWAP": + (j,) = rest + first, second = (frames[i], values[i]), (frames[j], values[j]) + place(i, *second) + place(j, *first) + elif op == "INIT": + assert frames[i] is None and i >= n + place(i, rest[0], frozenset()) + else: + assert op == "CLEAR" and frames[i] == rest[0] and i >= n + place(i, None, frozenset()) + assert frames == word["final"] + [None]*word["owned_fields"] + expected = [frozenset([j]) if j < n else frozenset() for j in range(len(frames))] + for i in range(111): + expected[i+111] = frozenset([i, i+111]) + assert values == expected + assert len(duals) + len(members) == sum(paid.values()) == 2871 + return duals, members, library_sizes, library_ranks, paid, removed + + +def floor(x): + return F((x*GRID).numerator // (x*GRID).denominator, GRID) + + +def ceil(x): + return -floor(-x) + + +@cache +def natural_log(x): + z = (x-1)/(x+1) + term, lower = 2*z, F(0) + for i in range(55): + lower += term / (2*i+1) + term *= z*z + return floor(lower), ceil(lower + term/(111*(1-z*z))) + + +def exp_bounds(x): + term, total = F(1), F(1) + for j in range(1, 34): + term *= x/j + total += term + tail = (term*x/34)/(1-x/35) + return total, total+tail + + +@cache +def power(rank): + e = rank.bit_length() - 1 + lo, hi = natural_log(F(rank, 2**e)) + log2_lo, log2_hi = natural_log(F(2)) + lo, hi = KAPPA*(lo+e*log2_lo), KAPPA*(hi+e*log2_hi) + assert 0 <= lo <= hi < 1 + return floor(rank/exp_bounds(hi)[1]), ceil(rank/exp_bounds(lo)[0]) + + +def signed_price(coeffs): + lo = hi = F(0) + for rank, n in coeffs.items(): + interval = [n*v for v in power(rank)] + lo += min(interval) + hi += max(interval) + return lo, hi + + +def audit(root, receipt): + pins, word, invoice = authenticate(root) + assert invoice["native_source_sha256"] == pins[WORD] + duals, members, sizes, ranks, paid, removed = census(word) + expected_moves = [e["clock"] for e in receipt["all_eligible"]] + if expected_moves != members or receipt["eligible_paid_moves"] != len(members): + raise ValueError("forged destination membership") + assert receipt["status"] == "PASS_GLOBAL_DESTINATION_SPAN_UPPER" + assert receipt["pins"] == pins + assert receipt["cases_visited"] == 2871 and receipt["physical_sites"] == 0 + assert receipt["removed_rank_counts"] == {str(r): n for r, n in removed.items()} + assert receipt["target"] == str(KAPPA) + + assert invoice["native_paid"] == {str(r): n for r, n in paid.items()} + copies = len(invoice["native_instances"]) + assert copies == invoice["native_calls"] == receipt["native_instances"] == 36 + full_paid = Counter({int(r): n for r, n in invoice["paid"].items()}) + full_targets = Counter({int(r): n for r, n in invoice["targets"].items()}) + assert full_paid - Counter({r: copies*n for r, n in paid.items()}) == { + 1: 444, **{r: 444 for r in range(7, 57, 7)} + } + native_helpers = Counter( + word["frames"][str(end)]["dim"] - word["frames"][str(start)]["dim"] + for start, end in zip(word["start"][222:], word["final"][222:], strict=True) + ) + assert native_helpers == Counter({int(r): n for r, n in invoice["native_helpers"].items()}) + derived_targets = Counter({r: copies*n for r, n in native_helpers.items()}) + derived_targets.update({**{r: 444 for r in range(8, 65, 7)}, 127: 222}) + assert full_targets == derived_targets + assert sum(full_paid.values()) == invoice["paid_jobs"] == 107352 + assert sum(full_targets.values()) == invoice["productive_fields"] == 19950 + signed = full_targets.copy() + signed.subtract(full_paid) + assert sum(r*n for r,n in signed.items()) == invoice["rank_surplus"] == 1506 + baseline = signed_price(signed) + saving = signed_price({r: copies*n for r, n in removed.items()}) + net = tuple(x+y for x,y in zip(baseline, saving, strict=True)) + for key, values in (("raw_comparator_net", baseline), ("saving_interval", saving), + ("net_after_free_synthesis", net)): + lo, hi = map(F, receipt[key]) + assert max(lo, values[0]) <= min(hi, values[1]) + if net[1] < 0: + assert receipt["decision"] == "PIVOT_NEGATIVE_UPPER" + witness_bytes = (json.dumps(duals, separators=(",", ":")) + "\n").encode() + return { + "status": "PASS_INDEPENDENT_DESTINATION_DUAL_AND_SIGNED_PRICE", + "pinned_word": pins[WORD], "pinned_invoice": pins[INVOICE], + "dual_count": len(duals), "member_count": len(members), + "duals_sha256": sha256(witness_bytes).hexdigest(), + "destination_library_size_histogram": dict(sizes), + "destination_library_rank_histogram": dict(ranks), + "independent_signed_baseline": list(map(str, baseline)), + "independent_saving": list(map(str, saving)), + "independent_signed_net": list(map(str, net)), + }, witness_bytes + + +def main(): + parser = ArgumentParser(description=__doc__) + parser.add_argument("input_root", type=Path) + parser.add_argument("receipt", type=Path) + parser.add_argument("--dual-out", type=Path) + args = parser.parse_args() + assert __debug__ + control() + report, witnesses = audit(args.input_root, json.loads(args.receipt.read_bytes())) + if args.dual_out is not None: + with args.dual_out.open("xb") as f: + f.write(witnesses) + print(json.dumps(report, sort_keys=True, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/research/bit-destination-span-bound/inputs/research/paired-query-only-bit/EFREE-RESULT.json b/research/bit-destination-span-bound/inputs/research/paired-query-only-bit/EFREE-RESULT.json new file mode 100644 index 0000000000..575f76487f --- /dev/null +++ b/research/bit-destination-span-bound/inputs/research/paired-query-only-bit/EFREE-RESULT.json @@ -0,0 +1,19787 @@ +{ + "status": "PASS_PAIRED_EFREE_BIT_EXISTING_00385248", + "ordinary_admitted": "12039/3125000", + "previous_ordinary": "17/5000", + "ordinary_gain": null, + "existing_same_profile_ordinary": "12039/3125000", + "raw_tested": "385253/100000000", + "raw_crossing": [ + "19262696967/5000000000000", + "7705078787/2000000000000" + ], + "covered_saving": "19262649/5000000000", + "caller_sha256": "757b3523798f840bdb02028b23708c3416627a99ea09e7a3c4bcdc5cd0c7ce4b", + "native_source_sha256": "51203e7fc75ba10bd3ac3f8e675759f47e13d262bea66b6600d1e515095cad78", + "source_pins": { + "bit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "main_wire": "d360b1182b6d21b1ee2354856abcb50646ad618b", + "main": "7c49fe32c55de02c2c873655c804b16e4c3fef0a", + "query_only": "617903497387a98f7ca929ad0b6928dd32abffec", + "prior_same_invoice": "79603d1f7d243f1d034613df84991673a94ad5ae" + }, + "forward_coefficients": 1444, + "reverse_coefficients": 1444, + "source": { + "public": 659, + "owned_labels": 237, + "owned_lifetimes": 237, + "peak_owned": 237, + "nonzero_owned_erasures": 237, + "checked_public_matrix_coefficients": 434281, + "exact_scalar_endpoint": "X_i\u2192X_i; Y_i\u2192Y_i+X_i; each helper independent", + "native_edges": 2871, + "charts": [ + { + "port": 0, + "input_frame": 2, + "output_frame": 525, + "basis": [ + [ + 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, + 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, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "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", + "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", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "1" + }, + { + "port": 1, + "input_frame": 3, + "output_frame": 526, + "basis": [ + [ + 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, + 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, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "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", + "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", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-1" + }, + { + "port": 2, + "input_frame": 4, + "output_frame": 527, + "basis": [ + [ + 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, + 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, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "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" + ], + [ + "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", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "1" + }, + { + "port": 3, + "input_frame": 5, + "output_frame": 528, + "basis": [ + [ + 0, + 1, + 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, + 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, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "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", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-1" + }, + { + "port": 4, + "input_frame": 6, + "output_frame": 529, + "basis": [ + [ + 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, + 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, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "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", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "1" + }, + { + "port": 5, + "input_frame": 7, + "output_frame": 530, + "basis": [ + [ + 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, + 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, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "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", + "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", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-1" + }, + { + "port": 6, + "input_frame": 8, + "output_frame": 531, + "basis": [ + [ + 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, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "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" + ], + [ + "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", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "1" + }, + { + "port": 7, + "input_frame": 9, + "output_frame": 532, + "basis": [ + [ + 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, + 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, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ], + [ + "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", + "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", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-1" + }, + { + "port": 8, + "input_frame": 10, + "output_frame": 533, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + -1, + 0, + -1, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "1/4", + "0", + "1/4", + "0", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "-1/4", + "0", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "-1/4", + "3/4", + "0", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "-1/4", + "0", + "3/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 9, + "input_frame": 11, + "output_frame": 534, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 1, + 1, + 0, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "1/4", + "0", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "-1/4", + "0", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "-1/4", + "3/4", + "0", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "-1/4", + "0", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 10, + "input_frame": 12, + "output_frame": 535, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 1, + 1, + 0, + -1, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "1/4", + "0", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "-1/4", + "0", + "1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "-1/4", + "3/4", + "0", + "1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "1/4", + "0", + "3/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 11, + "input_frame": 13, + "output_frame": 536, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 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, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + 1, + 0, + -1, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "-1/4", + "0", + "1/4", + "0", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "1/4", + "0", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "1/4", + "3/4", + "0", + "1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "1/4", + "0", + "3/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 12, + "input_frame": 14, + "output_frame": 537, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 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, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 1, + -1, + 0, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "-1/4", + "0", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "1/4", + "0", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "1/4", + "3/4", + "0", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "1/4", + "0", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 13, + "input_frame": 15, + "output_frame": 538, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 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, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + 1, + 0, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "-1/4", + "0", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "1/4", + "0", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "1/4", + "3/4", + "0", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "-1/4", + "0", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 14, + "input_frame": 16, + "output_frame": 539, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + -1, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "1/4", + "0", + "1/4", + "0" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 15, + "input_frame": 17, + "output_frame": 540, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + 1, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 16, + "input_frame": 18, + "output_frame": 541, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + -1, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 17, + "input_frame": 19, + "output_frame": 542, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + 1, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 18, + "input_frame": 20, + "output_frame": 543, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + 1, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "1/4", + "0" + ], + [ + "3/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 19, + "input_frame": 21, + "output_frame": 544, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + -1, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 20, + "input_frame": 22, + "output_frame": 545, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + 1, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "3/4", + "0", + "1/4", + "0", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 21, + "input_frame": 23, + "output_frame": 546, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + -1, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "1/4", + "0", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 22, + "input_frame": 24, + "output_frame": 547, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 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, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + -1, + 0, + 0, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "0", + "0", + "1/4", + "1/4" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "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", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "-1/4", + "-1/4", + "0", + "0", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 23, + "input_frame": 25, + "output_frame": 548, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 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, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 1, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "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", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "-1/4", + "-1/4", + "0", + "0", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "4" + }, + { + "port": 24, + "input_frame": 26, + "output_frame": 549, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 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, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + -1, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "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", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "1/4", + "1/4", + "0", + "0", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 25, + "input_frame": 27, + "output_frame": 550, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 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, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 1, + 0, + 0, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "0", + "0", + "1/4", + "1/4" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "0", + "0", + "1/4", + "1/4" + ], + [ + "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", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "1/4", + "1/4", + "0", + "0", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "4" + }, + { + "port": 26, + "input_frame": 28, + "output_frame": 551, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 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, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 1, + 0, + 0, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "0", + "0", + "1/4", + "1/4" + ], + [ + "3/4", + "1/4", + "0", + "0", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "1/4", + "3/4", + "0", + "0", + "0", + "0", + "1/4", + "1/4" + ], + [ + "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", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "-1/4", + "1/4", + "0", + "0", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 27, + "input_frame": 29, + "output_frame": 552, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 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, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + -1, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "3/4", + "1/4", + "0", + "0", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "1/4", + "3/4", + "0", + "0", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "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", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "-1/4", + "1/4", + "0", + "0", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "4" + }, + { + "port": 28, + "input_frame": 30, + "output_frame": 553, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 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, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 1, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "3/4", + "1/4", + "0", + "0", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "1/4", + "3/4", + "0", + "0", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "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", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "1/4", + "-1/4", + "0", + "0", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 29, + "input_frame": 31, + "output_frame": 554, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 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, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + -1, + 0, + 0, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "3/4", + "1/4", + "0", + "0", + "0", + "0", + "1/4", + "1/4" + ], + [ + "1/4", + "3/4", + "0", + "0", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "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", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "1/4", + "-1/4", + "0", + "0", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "4" + }, + { + "port": 30, + "input_frame": 32, + "output_frame": 555, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 1, + -1, + -1, + 0, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "-1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 31, + "input_frame": 33, + "output_frame": 556, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "-1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 32, + "input_frame": 34, + "output_frame": 557, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 1, + -1, + -1, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 33, + "input_frame": 35, + "output_frame": 558, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 34, + "input_frame": 36, + "output_frame": 559, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 1, + -1, + 1, + 0, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0" + ], + [ + "3/4", + "1/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "1/4", + "3/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 35, + "input_frame": 37, + "output_frame": 560, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + -1, + 1, + -1, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "3/4", + "1/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "1/4", + "3/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 36, + "input_frame": 38, + "output_frame": 561, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 1, + -1, + 1, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "3/4", + "1/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "1/4", + "3/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "-1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 37, + "input_frame": 39, + "output_frame": 562, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + -1, + 1, + -1, + 0, + 0, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "3/4", + "1/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0" + ], + [ + "1/4", + "3/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "-1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 38, + "input_frame": 40, + "output_frame": 563, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 0, + -1, + 0, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "0", + "1/4", + "0", + "1/4" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "-1/4", + "0", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 39, + "input_frame": 41, + "output_frame": 564, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 0, + 1, + 0, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "-1/4", + "0", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 40, + "input_frame": 42, + "output_frame": 565, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 0, + -1, + 0, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "1/4", + "0", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 41, + "input_frame": 43, + "output_frame": 566, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 0, + 1, + 0, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "1/4", + "0", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "-1/4", + "0", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "3/4", + "0", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "1/4", + "0", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 42, + "input_frame": 44, + "output_frame": 567, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 0, + 1, + 0, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "0", + "1/4", + "0", + "1/4" + ], + [ + "3/4", + "0", + "1/4", + "0", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "1/4", + "0", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 43, + "input_frame": 45, + "output_frame": 568, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 0, + -1, + 0, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "1/4", + "0", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "1/4", + "0", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 44, + "input_frame": 46, + "output_frame": 569, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + -1, + 0, + 1, + 0, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "3/4", + "0", + "1/4", + "0", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "-1/4", + "0", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 45, + "input_frame": 47, + "output_frame": 570, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 1, + 0, + -1, + 0, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "-1/4", + "0", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "1/4", + "0", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "3/4", + "0", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "-1/4", + "0", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 46, + "input_frame": 48, + "output_frame": 571, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + -1, + 0, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "1/4", + "0", + "0", + "1/4", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "-1/4", + "0", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "-1/4", + "3/4", + "0", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "-1/4", + "0", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 47, + "input_frame": 49, + "output_frame": 572, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 1, + 1, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "1/4", + "0", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "-1/4", + "0", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "-1/4", + "3/4", + "0", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "-1/4", + "0", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 48, + "input_frame": 50, + "output_frame": 573, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + -1, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "1/4", + "0", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "-1/4", + "0", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "-1/4", + "3/4", + "0", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "1/4", + "0", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 49, + "input_frame": 51, + "output_frame": 574, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + 1, + 0, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "-1/4", + "0", + "0", + "1/4", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "1/4", + "0", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "1/4", + "3/4", + "0", + "0", + "1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "1/4", + "0", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 50, + "input_frame": 52, + "output_frame": 575, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + 1, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "-1/4", + "0", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "1/4", + "0", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "1/4", + "3/4", + "0", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "-1/4", + "0", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 51, + "input_frame": 53, + "output_frame": 576, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 1, + -1, + 0, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "-1/4", + "0", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "1/4", + "0", + "0", + "1/4", + "1/4", + "0" + ], + [ + "0", + "1/4", + "3/4", + "0", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "-1/4", + "0", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 52, + "input_frame": 54, + "output_frame": 577, + "basis": [ + [ + 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, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 1, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "1/4", + "1/4", + "-1/4" + ], + [ + "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", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "-1/4", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "-1/4", + "3/4", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "-1/4", + "-1/4", + "3/4", + "1/4" + ] + ], + "determinant": "4" + }, + { + "port": 53, + "input_frame": 55, + "output_frame": 578, + "basis": [ + [ + 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, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + -1, + -1, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "1/4", + "-1/4", + "1/4" + ], + [ + "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", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "-1/4", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "-1/4", + "3/4", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "1/4", + "3/4", + "1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 54, + "input_frame": 56, + "output_frame": 579, + "basis": [ + [ + 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, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 1, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "1/4", + "-1/4", + "-1/4" + ], + [ + "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", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "-1/4", + "1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "-1/4", + "3/4", + "1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "1/4", + "3/4", + "-1/4" + ] + ], + "determinant": "4" + }, + { + "port": 55, + "input_frame": 57, + "output_frame": 580, + "basis": [ + [ + 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, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + -1, + 1, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "-1/4", + "1/4", + "1/4" + ], + [ + "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", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "1/4", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "3/4", + "1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "-1/4", + "1/4", + "3/4", + "-1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 56, + "input_frame": 58, + "output_frame": 581, + "basis": [ + [ + 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, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + -1, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "-1/4", + "1/4", + "-1/4" + ], + [ + "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", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "1/4", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "3/4", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "-1/4", + "1/4", + "3/4", + "1/4" + ] + ], + "determinant": "4" + }, + { + "port": 57, + "input_frame": 59, + "output_frame": 582, + "basis": [ + [ + 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, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + -1, + 1, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "-1/4", + "-1/4", + "1/4" + ], + [ + "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", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "1/4", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "3/4", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "-1/4", + "3/4", + "1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 58, + "input_frame": 60, + "output_frame": 583, + "basis": [ + [ + 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, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + -1, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "0", + "0", + "1/4", + "-1/4", + "-1/4", + "-1/4" + ], + [ + "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", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "3/4", + "1/4", + "1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "3/4", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1/4", + "-1/4", + "3/4", + "-1/4" + ] + ], + "determinant": "4" + }, + { + "port": 59, + "input_frame": 61, + "output_frame": 584, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "-1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "-1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "-1/4", + "3/4", + "-1/4", + "0", + "0", + "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", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 60, + "input_frame": 62, + "output_frame": 585, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "-1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "-1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "-1/4", + "3/4", + "1/4", + "0", + "0", + "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", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 61, + "input_frame": 63, + "output_frame": 586, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "1/4", + "-1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "-1/4", + "1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "3/4", + "1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "1/4", + "3/4", + "-1/4", + "0", + "0", + "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", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 62, + "input_frame": 64, + "output_frame": 587, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "1/4", + "-1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "3/4", + "1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "1/4", + "3/4", + "-1/4", + "0", + "0", + "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", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 63, + "input_frame": 65, + "output_frame": 588, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "1/4", + "-1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "3/4", + "1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "1/4", + "3/4", + "1/4", + "0", + "0", + "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", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 64, + "input_frame": 66, + "output_frame": 589, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "-1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "1/4", + "1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "3/4", + "-1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "-1/4", + "3/4", + "1/4", + "0", + "0", + "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", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 65, + "input_frame": 67, + "output_frame": 590, + "basis": [ + [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "-1/4", + "-1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "3/4", + "1/4", + "1/4", + "1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "3/4", + "-1/4", + "-1/4", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "-1/4", + "3/4", + "-1/4", + "0", + "0", + "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", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 66, + "input_frame": 68, + "output_frame": 591, + "basis": [ + [ + 1, + 1, + 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, + 1, + 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, + 1 + ], + [ + -1, + 1, + 0, + 0, + 1, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "-1/4", + "0", + "0", + "-1/4", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 67, + "input_frame": 69, + "output_frame": 592, + "basis": [ + [ + 1, + 1, + 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, + 1, + 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, + 1 + ], + [ + 1, + -1, + 0, + 0, + -1, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "1/4", + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 68, + "input_frame": 70, + "output_frame": 593, + "basis": [ + [ + 1, + 1, + 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, + 1, + 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, + 1 + ], + [ + -1, + 1, + 0, + 0, + 1, + -1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "1/4" + ], + [ + "1/4", + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 69, + "input_frame": 71, + "output_frame": 594, + "basis": [ + [ + 1, + 1, + 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, + 1, + 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, + 1 + ], + [ + 1, + -1, + 0, + 0, + 1, + -1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0", + "1/4" + ], + [ + "3/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "1/4" + ], + [ + "-1/4", + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 70, + "input_frame": 72, + "output_frame": 595, + "basis": [ + [ + 1, + 1, + 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, + 1, + 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, + 1 + ], + [ + -1, + 1, + 0, + 0, + -1, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "-1/4", + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 71, + "input_frame": 73, + "output_frame": 596, + "basis": [ + [ + 1, + 1, + 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, + 1, + 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, + 1 + ], + [ + 1, + -1, + 0, + 0, + 1, + 1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "3/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0", + "1/4" + ], + [ + "1/4", + "0", + "0", + "-1/4", + "3/4", + "0", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 72, + "input_frame": 74, + "output_frame": 597, + "basis": [ + [ + 1, + 1, + 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, + 1, + 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, + 1 + ], + [ + -1, + 1, + 0, + 0, + -1, + -1, + 0, + 0 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "3/4", + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "1/4" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "-1/4", + "0", + "0", + "-1/4" + ], + [ + "1/4", + "0", + "0", + "-1/4", + "3/4", + "0", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 73, + "input_frame": 75, + "output_frame": 598, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + 0, + -1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "1/4", + "0", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "-1/4", + "0", + "-1/4", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 74, + "input_frame": 76, + "output_frame": 599, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 1, + 0, + 1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "-1/4", + "0", + "-1/4", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 75, + "input_frame": 77, + "output_frame": 600, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + 0, + -1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "1/4", + "0", + "1/4", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 76, + "input_frame": 78, + "output_frame": 601, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 1, + 0, + 1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "1/4", + "0", + "1/4", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 77, + "input_frame": 79, + "output_frame": 602, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + 0, + 1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "1/4", + "0", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "-1/4", + "0", + "1/4", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 78, + "input_frame": 80, + "output_frame": 603, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 1, + 0, + -1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "-1/4", + "0", + "1/4", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 79, + "input_frame": 81, + "output_frame": 604, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + 0, + -1, + 0, + 1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "-1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "1/4", + "0", + "-1/4", + "3/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 80, + "input_frame": 82, + "output_frame": 605, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 0, + 1, + 0, + -1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "1/4", + "0", + "1/4", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "-1/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "1/4", + "0", + "-1/4", + "3/4", + "0", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 81, + "input_frame": 83, + "output_frame": 606, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + -1, + -1, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "1/4", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "-1/4", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 82, + "input_frame": 84, + "output_frame": 607, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + -1, + -1, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 83, + "input_frame": 85, + "output_frame": 608, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 1, + 1, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "0", + "0", + "1/4", + "1/4" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "0", + "0", + "1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "1/4", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "4" + }, + { + "port": 84, + "input_frame": 86, + "output_frame": 609, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + -1, + 1, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "1/4", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "1/4", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 85, + "input_frame": 87, + "output_frame": 610, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 1, + -1, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "1/4", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "4" + }, + { + "port": 86, + "input_frame": 88, + "output_frame": 611, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + 0, + -1, + 1, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "1/4", + "-1/4" + ], + [ + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "-1/4", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "3/4", + "1/4" + ] + ], + "determinant": "-4" + }, + { + "port": 87, + "input_frame": 89, + "output_frame": 612, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 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, + 1, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 0, + 1, + -1, + 0, + 0, + -1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "0", + "0", + "1/4", + "1/4" + ], + [ + "0", + "0", + "1/4", + "3/4", + "0", + "0", + "-1/4", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "-1/4", + "0", + "0", + "3/4", + "-1/4" + ] + ], + "determinant": "4" + }, + { + "port": 88, + "input_frame": 90, + "output_frame": 613, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + -1, + -1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "1/4", + "1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "-1/4", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 89, + "input_frame": 91, + "output_frame": 614, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "-1/4", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 90, + "input_frame": 92, + "output_frame": 615, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + -1, + -1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "1/4", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 91, + "input_frame": 93, + "output_frame": 616, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + 1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "1/4", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "-1/4", + "1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "3/4", + "1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "1/4", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 92, + "input_frame": 94, + "output_frame": 617, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + -1, + 1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "1/4", + "1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "3/4", + "1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "1/4", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 93, + "input_frame": 95, + "output_frame": 618, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + -1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "3/4", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "-1/4", + "1/4", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 94, + "input_frame": 96, + "output_frame": 619, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + -1, + 1, + 1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "3/4", + "-1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "-1/4", + "3/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 95, + "input_frame": 97, + "output_frame": 620, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 1, + -1, + -1, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "0", + "0", + "1/4", + "-1/4", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "3/4", + "1/4", + "1/4", + "1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "3/4", + "-1/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "1/4", + "-1/4", + "3/4", + "-1/4", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 96, + "input_frame": 98, + "output_frame": 621, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + 0, + -1, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "0", + "1/4", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 97, + "input_frame": 99, + "output_frame": 622, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 1, + 0, + 1, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 98, + "input_frame": 100, + "output_frame": 623, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + 0, + -1, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 99, + "input_frame": 101, + "output_frame": 624, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 1, + 0, + 1, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 100, + "input_frame": 102, + "output_frame": 625, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + 0, + 1, + 0, + -1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 101, + "input_frame": 103, + "output_frame": 626, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + -1, + 0, + 1, + 0, + -1, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "-1/4", + "0", + "1/4", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "4" + }, + { + "port": 102, + "input_frame": 104, + "output_frame": 627, + "basis": [ + [ + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 1, + 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, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 1, + 0, + -1, + 0, + 1, + 0, + 1, + 0 + ] + ], + "inverse": [ + [ + "0", + "1/4", + "0", + "-1/4", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "3/4", + "0", + "1/4", + "0", + "1/4", + "0", + "-1/4" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "3/4", + "0", + "-1/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "1/4", + "0", + "-1/4", + "0", + "3/4", + "0", + "1/4" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ] + ], + "determinant": "-4" + }, + { + "port": 103, + "input_frame": 105, + "output_frame": 628, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + 0, + -1, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "0", + "1/4", + "1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "-1/4", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 104, + "input_frame": 106, + "output_frame": 629, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + 0, + 1, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "-1/4", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 105, + "input_frame": 107, + "output_frame": 630, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + 0, + -1, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "1/4", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 106, + "input_frame": 108, + "output_frame": 631, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + 0, + 1, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "1/4", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "-1/4", + "0", + "1/4", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "3/4", + "0", + "1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "1/4", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 107, + "input_frame": 109, + "output_frame": 632, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + 0, + 1, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "0", + "1/4", + "1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "1/4", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "0", + "1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "1/4", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 108, + "input_frame": 110, + "output_frame": 633, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + 0, + -1, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "1/4", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "-1/4", + "0", + "0", + "1/4", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + }, + { + "port": 109, + "input_frame": 111, + "output_frame": 634, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + 1, + -1, + 0, + 0, + 1, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "1/4", + "0", + "1/4", + "-1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "0", + "-1/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "-1/4", + "0", + "3/4", + "1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "4" + }, + { + "port": 110, + "input_frame": 112, + "output_frame": 635, + "basis": [ + [ + 1, + 1, + 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, + 1, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 0 + ], + [ + -1, + 1, + 0, + 0, + -1, + 0, + -1, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + ], + "inverse": [ + [ + "1/4", + "0", + "0", + "-1/4", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "3/4", + "0", + "0", + "1/4", + "0", + "1/4", + "1/4", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "3/4", + "0", + "-1/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "1/4", + "0", + "0", + "-1/4", + "0", + "3/4", + "-1/4", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ] + ], + "determinant": "-4" + } + ] + }, + "native_paid": { + "1": 1386, + "2": 1253, + "3": 62, + "4": 47, + "5": 9, + "6": 104, + "7": 10 + }, + "native_helpers": { + "2": 1, + "4": 25, + "6": 1, + "8": 410 + }, + "paid": { + "1": 50340, + "2": 45108, + "3": 2232, + "4": 1692, + "5": 324, + "6": 3744, + "7": 804, + "14": 444, + "21": 444, + "28": 444, + "35": 444, + "42": 444, + "49": 444, + "56": 444 + }, + "targets": { + "2": 36, + "4": 900, + "6": 36, + "8": 15204, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 444, + "127": 222 + }, + "paid_jobs": 107352, + "productive_fields": 19950, + "rank_surplus": 1506, + "native_calls": 36, + "native_instances": [ + { + "stage": 1, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage1_copy0", + "body_axes": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + { + "stage": 1, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage1_copy1", + "body_axes": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + { + "stage": 2, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage2_copy0", + "body_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ] + }, + { + "stage": 2, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage2_copy1", + "body_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ] + }, + { + "stage": 3, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage3_copy0", + "body_axes": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ] + }, + { + "stage": 3, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage3_copy1", + "body_axes": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ] + }, + { + "stage": 4, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage4_copy0", + "body_axes": [ + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + }, + { + "stage": 4, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage4_copy1", + "body_axes": [ + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ] + }, + { + "stage": 5, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage5_copy0", + "body_axes": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + }, + { + "stage": 5, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage5_copy1", + "body_axes": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ] + }, + { + "stage": 6, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage6_copy0", + "body_axes": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ] + }, + { + "stage": 6, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage6_copy1", + "body_axes": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ] + }, + { + "stage": 7, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage7_copy0", + "body_axes": [ + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] + }, + { + "stage": 7, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage7_copy1", + "body_axes": [ + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ] + }, + { + "stage": 8, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage8_copy0", + "body_axes": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + }, + { + "stage": 8, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage8_copy1", + "body_axes": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ] + }, + { + "stage": 9, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage9_copy0", + "body_axes": [ + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ] + }, + { + "stage": 9, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage9_copy1", + "body_axes": [ + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ] + }, + { + "stage": 10, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage10_copy0", + "body_axes": [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + }, + { + "stage": 10, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage10_copy1", + "body_axes": [ + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ] + }, + { + "stage": 11, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage11_copy0", + "body_axes": [ + 71, + 72, + 73, + 74, + 75, + 76, + 77 + ] + }, + { + "stage": 11, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage11_copy1", + "body_axes": [ + 71, + 72, + 73, + 74, + 75, + 76, + 77 + ] + }, + { + "stage": 12, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage12_copy0", + "body_axes": [ + 78, + 79, + 80, + 81, + 82, + 83, + 84 + ] + }, + { + "stage": 12, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage12_copy1", + "body_axes": [ + 78, + 79, + 80, + 81, + 82, + 83, + 84 + ] + }, + { + "stage": 13, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage13_copy0", + "body_axes": [ + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ] + }, + { + "stage": 13, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage13_copy1", + "body_axes": [ + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ] + }, + { + "stage": 14, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage14_copy0", + "body_axes": [ + 92, + 93, + 94, + 95, + 96, + 97, + 98 + ] + }, + { + "stage": 14, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage14_copy1", + "body_axes": [ + 92, + 93, + 94, + 95, + 96, + 97, + 98 + ] + }, + { + "stage": 15, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage15_copy0", + "body_axes": [ + 99, + 100, + 101, + 102, + 103, + 104, + 105 + ] + }, + { + "stage": 15, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage15_copy1", + "body_axes": [ + 99, + 100, + 101, + 102, + 103, + 104, + 105 + ] + }, + { + "stage": 16, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage16_copy0", + "body_axes": [ + 106, + 107, + 108, + 109, + 110, + 111, + 112 + ] + }, + { + "stage": 16, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage16_copy1", + "body_axes": [ + 106, + 107, + 108, + 109, + 110, + 111, + 112 + ] + }, + { + "stage": 17, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage17_copy0", + "body_axes": [ + 113, + 114, + 115, + 116, + 117, + 118, + 119 + ] + }, + { + "stage": 17, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage17_copy1", + "body_axes": [ + 113, + 114, + 115, + 116, + 117, + 118, + 119 + ] + }, + { + "stage": 18, + "copy": 0, + "source_register": 1, + "destination_register": 0, + "ports": 111, + "fresh_helper_namespace": "stage18_copy0", + "body_axes": [ + 120, + 121, + 122, + 123, + 124, + 125, + 126 + ] + }, + { + "stage": 18, + "copy": 1, + "source_register": 20, + "destination_register": 19, + "ports": 111, + "fresh_helper_namespace": "stage18_copy1", + "body_axes": [ + 120, + 121, + 122, + 123, + 124, + 125, + 126 + ] + } + ], + "independent_moment_intervals": { + "385253/100000000": { + "lower": "0.0036436256394743949296533752", + "upper": "0.0036436256394743949296533753" + }, + "19262696967/5000000000000": { + "lower": "0.0000000177738444696303501702", + "upper": "0.0000000177738444696303501703" + }, + "7705078787/2000000000000": { + "lower": "-0.0000000210151754464759206813", + "upper": "-0.0000000210151754464759206812" + } + }, + "finite_admission": { + "label": "paired_efree_bit", + "source_status": "Integral caller with38independent roles; unchanged #6726 BIT native111 ports per actual call; 36actual calls; all1444forward and reverse coefficients", + "targets": { + "2": 36, + "4": 900, + "6": 36, + "8": 15204, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 444, + "127": 222 + }, + "paid": { + "1": 50340, + "2": 45108, + "3": 2232, + "4": 1692, + "5": 324, + "6": 3744, + "7": 804, + "14": 444, + "21": 444, + "28": 444, + "35": 444, + "42": 444, + "49": 444, + "56": 444 + }, + "tested_saving": "385253/100000000", + "tensor_power": 768, + "cutoff_base": 15, + "floor_base": 16, + "paid_tail_offset": "1/5", + "target_tail_offset": "1/5", + "alpha": { + "lower": "0.999999987456792518482620787614", + "upper": "0.999999987456792518482620787615" + }, + "gamma": { + "lower": "0.873285149195037839608624837051", + "upper": "0.873285149195037839608624837052" + }, + "lambda": { + "lower": "0.949370882291320583076906294105", + "upper": "0.949370882291320583076906294106" + }, + "rational_upper_limits": [ + "999999987456793/1000000000000000", + "436642574597519/500000000000000", + "949370882291321/1000000000000000" + ], + "normalized_paid_plus_lost_target_upper": { + "lower": "0.999990366909821325001257063996", + "upper": "0.999990366909821325001257063997" + }, + "strict_normalized_gap": { + "lower": "0.000009633090178674998742936003", + "upper": "0.000009633090178674998742936004" + }, + "ambient": "127^768", + "maximum_paid": "15^768", + "minimum_retained_target": "16^768", + "source_public_fields": 19950, + "source_paid_calls": 107352, + "source_paid_rank_mass": 292512, + "retained_productive_fields": "W = sum over target tuples with product >= 16^768 of their multiplicities", + "specialized_owned_fields": "D = 19950^768 - W", + "specialized_initial_and_final": 0, + "owned_allocation_records_bound": "2*19950^768", + "product_raw_invocation_count": "sum(i=0..767, 19950^(767-i)*107352^i)", + "split_paid_calls_upper": "292512^768", + "product_or_uniform_word_materialized": false, + "rank_mass_surplus": "positive by separated t-moment advantage; no discarded target mass retained as credit", + "construction": "chronological product; specialize low complete targets to owned zero; retain all original paid calls; split paid calls on disjoint axes", + "uniform_compiler": { + "uniform_saving": "38525299/10000000000", + "gap": "1/10000000000", + "theta": "42/43", + "logarithm_power": 610, + "eta": { + "lower": "0.000000593894111688079899290956", + "upper": "0.000000593894111688079899290957" + }, + "ordinary_base_bound": { + "lower": "1677314.946209111847437090130884726124", + "upper": "1677314.946209111847437090130884726125" + }, + "previous_logarithm_power_fails": true, + "H": 293160000000000, + "N": "2^293160000000000", + "integer_test_exponent": 29316, + "preceding_integer_grid_fails": true, + "proof": "retained separated finite compiler and logarithmic majorant, with all new owned fields charged" + } + }, + "independent_finite_ratios": [ + { + "lower": "0.9999999874567925184826207876", + "upper": "0.9999999874567925184826207877" + }, + { + "lower": "0.8732851491950378396086248370", + "upper": "0.8732851491950378396086248371" + }, + { + "lower": "0.9493708822913205830769062941", + "upper": "0.9493708822913205830769062942" + } + ], + "independent_normalized_upper": { + "lower": "0.9999903669098213250012570639", + "upper": "0.9999903669098213250012570640" + }, + "event_counts": { + "ADD": 362, + "SWAP": 364, + "LOCAL": 36, + "IDLE_ONE": 32, + "QUERY": 4 + }, + "events": 798, + "discarded_source_stream": { + "ADD": 1682, + "SCALE": 100, + "LAMBDA": 82, + "IDLE_ONE": 68, + "SWAP": 91, + "QUERY": 4 + }, + "empty_body_targets": { + "count": 0, + "rank1_productive_credit": 0 + }, + "ordinary_basis_records": 1291152, + "ordinary_visible_records": 363507600, + "whole_job_route_count": 569592, + "whole_job_route_records": 740743004160, + "ordinary_record_allowance": 1000000000000, + "owned_bank_bound": 6878988, + "compiler_constants": { + "U_raw": "sum(i=0..767,19950^(767-i)*107352^i)", + "D": "19950^768-W", + "O": "6878988*U_raw+D", + "G": "1000000000000*U_raw+8*R+2*19950^768", + "E": "64*(Z+N+P+G+1)^3", + "B_constant": "P+E", + "C0": "32*N*B_constant^2" + }, + "ordinary_bootstrap": [ + { + "previous": "17/5000", + "covered": "19262649/5000000000", + "atom": "1/250", + "envelope": "4813399601/1250000000000", + "admitted": "38507/10000000", + "strict_debit": "24601/1250000000000" + }, + { + "previous": "38507/10000000", + "covered": "19262649/5000000000", + "atom": "1/250", + "envelope": "4815653101/1250000000000", + "admitted": "12039/3125000", + "strict_debit": "53101/1250000000000" + } + ], + "negative_controls": { + "missing_LOCAL": "reverse coefficient 0,0", + "missing_QUERY": "reverse coefficient 0,0", + "missing_IDLE_ONE": "reverse coefficient 0,1", + "missing_ADD": "reverse coefficient 0,1", + "missing_SWAP": "reverse coefficient 1,0", + "missing_second_native_in_pair": "reverse coefficient 19,19", + "division_by2_after_specialization": "integral A coefficient after lambda removal", + "QUERY_replaced_by_ADD_despite_q1_pass": "reverse coefficient 1,0", + "root_header_target_declared_identity": "reverse coefficient 19,19" + }, + "odd_port_determinant": { + "ring": "F2[q]/(q^2-1)", + "q_ne_1": true, + "single_layer_root_targets": 2109, + "single_layer_target_determinant": "q", + "allowed_D1_gate_determinants": "1", + "doubled_root_targets": 4218, + "doubled_target_determinant": "1", + "scope": "Fixed19q-targets per chain,111ports,existing scalar caller operations; no extra target or QSELF/owned operator. Not a general obstruction on BIT algorithms." + }, + "assumptions": [ + "native_all_columns", + "owned_erasure", + "compiler", + "precision_tape", + "analytic_recovery" + ], + "scope": "Paired E-free BIT specialization of#6980 with two actual native copies per stage; removes empty-body credit with unchanged complete signed moment crossing of#6834; inherited framework; no new kappa or native theorem reproof.", + "new_global_kappa_claim": false, + "seconds": 11.418902893999984 +} diff --git a/research/bit-destination-span-bound/inputs/research/paired-query-only-bit/retained/inputs/BIT-NATIVE-WORD.json.gz b/research/bit-destination-span-bound/inputs/research/paired-query-only-bit/retained/inputs/BIT-NATIVE-WORD.json.gz new file mode 100644 index 0000000000..b718d6b284 Binary files /dev/null and b/research/bit-destination-span-bound/inputs/research/paired-query-only-bit/retained/inputs/BIT-NATIVE-WORD.json.gz differ diff --git a/research/bit-destination-span-bound/replay.py b/research/bit-destination-span-bound/replay.py new file mode 100644 index 0000000000..c9ea6d9c0e --- /dev/null +++ b/research/bit-destination-span-bound/replay.py @@ -0,0 +1,88 @@ +"""Authenticate the bundled word and replay the complete destination census.""" + +import argparse +from hashlib import sha1, sha256 +import json +from pathlib import Path +import runpy +import shutil +from tempfile import TemporaryDirectory + +ROOT = Path(__file__).resolve().parent + + +def json_data(path): + return json.loads(path.read_bytes()) + + +def check_provenance(): + seen = set() + for line in (ROOT / "PROVENANCE.tsv").read_text().splitlines(): + key, digest, blob, _ = line.split("\t") + path = Path(key) + if path.is_absolute() or ".." in path.parts or path in seen: + raise ValueError(f"ambiguous provenance path {key}") + seen.add(path) + raw = (ROOT / path).read_bytes() + exact_blob = sha1(f"blob {len(raw)}\0".encode() + raw).hexdigest() + if sha256(raw).hexdigest() != digest or exact_blob != blob: + raise ValueError(f"changed provenance source {key}") + assert len(seen) == 4 + + +def rejects(call, reason): + try: + call() + except ValueError as error: + if reason not in str(error): + raise + else: + raise AssertionError(f"missing rejection for {reason}") + + +def check_controls(verify, audit, receipt): + verify["control"]() + audit["control"]() + base = ROOT / "inputs" + first = json_data(ROOT / "DUALS.json")[0][0] + forged = dict(receipt, eligible_paid_moves=1, all_eligible=[{"clock": first}]) + rejects(lambda: audit["audit"](base, forged), "forged destination membership") + + capped = verify["run"](base, 240, 1) + assert capped["status"] == "INCOMPLETE_CAP" + assert capped["cases_visited"] == 1 and len(capped["unvisited_move_ids"]) == 2870 + assert not ({"decision", "net_after_free_synthesis"} & capped.keys()) + + with TemporaryDirectory() as tmp: + altered = Path(tmp) / "inputs" + shutil.copytree(base, altered) + word = altered / audit["WORD"] + raw = word.read_bytes() + word.write_bytes(bytes([raw[0] ^ 1]) + raw[1:]) + rejects(lambda: verify["run"](altered, 240, 2871), "changed source") + rejects(lambda: audit["audit"](altered, receipt), "changed source") + print("PASS_BIT_DESTINATION_SPAN_CONTROLS changed_source=2 forged_membership=1 cap=1") + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--controls", action="store_true") + args = parser.parse_args() + assert __debug__, "run with assertions enabled" + check_provenance() + verify = runpy.run_path(str(ROOT / "verify.py")) + audit = runpy.run_path(str(ROOT / "audit.py")) + receipt = verify["run"](ROOT / "inputs", 240, 2871) + assert receipt == json_data(ROOT / "RESULT.json") + report, duals = audit["audit"](ROOT / "inputs", receipt) + encoded = (json.dumps(report, sort_keys=True, indent=2) + "\n").encode() + assert encoded == (ROOT / "AUDIT.json").read_bytes() + assert duals == (ROOT / "DUALS.json").read_bytes() + assert receipt["decision"] == "PIVOT_NEGATIVE_UPPER" and receipt["eligible_paid_moves"] == 0 + print("PASS_BIT_DESTINATION_SPAN moves=2871 duals=2871 eligible=0 savings=0 kappa_change=0") + if args.controls: + check_controls(verify, audit, receipt) + + +if __name__ == "__main__": + main() diff --git a/research/bit-destination-span-bound/trace_price.py b/research/bit-destination-span-bound/trace_price.py new file mode 100644 index 0000000000..f1c22fc721 --- /dev/null +++ b/research/bit-destination-span-bound/trace_price.py @@ -0,0 +1,172 @@ +"""Whole signed invoice and exact bitmask scalar replay from Round 29.""" + +from collections import Counter, defaultdict +from fractions import Fraction +from functools import cache +import gzip +from hashlib import sha256 +import json +from pathlib import Path + +HERE = Path(__file__).resolve().parent +WORD = "research/paired-query-only-bit/retained/inputs/BIT-NATIVE-WORD.json.gz" +INVOICE = "research/paired-query-only-bit/EFREE-RESULT.json" +SCALE = 10**49 + + +def read_inputs(root): + pins = {} + sources = HERE / "SOURCES.tsv" + for line in sources.read_text().splitlines(): + key, expected, _ = line.split("\t") + path = Path(key) + if path.is_absolute() or ".." in path.parts or key in pins: + raise ValueError(f"invalid source key {key}") + contents = (root / path).read_bytes() + if sha256(contents).hexdigest() != expected: + raise ValueError(f"changed source {key}") + pins[key] = expected + return ( + json.loads(gzip.decompress((root / WORD).read_bytes())), + json.loads((root / INVOICE).read_bytes()), + pins, + ) + + +def walk(word, observe_move=None): + """Track logical owner identities through transparent physical SWAPs.""" + public = word["public"] + slots = [(j, f, 1 << j) for j, f in enumerate(word["start"])] + slots.extend((None, None, 0) for _ in range(word["owned_fields"])) + history = defaultdict(list) + moves = {} + ownership = Counter() + for clock, (op, i, *args) in enumerate(word["program"]): + owner, frame, row = slots[i] + if op == "SWAP": + (j,) = args + slots[i], slots[j] = slots[j], slots[i] + continue + if op == "INIT": + (f,) = args + assert i >= public and slots[i] == (None, None, 0) + slots[i] = (public + clock, f, 0) + ownership["init"] += 1 + continue + assert owner is not None + history[owner].append((clock, op)) + if op == "MOVE": + src, dst = args + assert src == frame and src != dst + if observe_move is not None: + observe_move(clock, i, src, dst, row, slots) + moves[clock] = (src, dst, row) + slots[i] = (owner, dst, row) + elif op == "ADD": + j, f = args + other, other_frame, other_row = slots[j] + assert other is not None and frame == f == other_frame + if other != owner: + history[other].append((clock, op)) + slots[i] = (owner, frame, row ^ other_row) + else: + assert op == "CLEAR" and i >= public and args == [frame] + ownership["clear"] += 1 + slots[i] = (None, None, 0) + assert [x[1] for x in slots] == word["final"] + [None] * word["owned_fields"] + expected = [1 << j if j < public else 0 for j in range(len(slots))] + for j in range(111): + expected[j + 111] ^= 1 << j + assert [x[2] for x in slots] == expected + + runs = [] + for records in history.values(): + chain = [] + for clock, op in records: + if op == "MOVE": + chain.append(clock) + elif chain: + runs.append(tuple(chain)) + chain.clear() + if chain: + runs.append(tuple(chain)) + runs.sort() + covered = [t for run in runs for t in run] + assert len(covered) == len(set(covered)) == len(moves) and set(covered) == set(moves) + assert all(moves[i][1] == moves[j][0] for run in runs for i, j in zip(run, run[1:])) + return moves, runs, ownership + + +def rounded(x, upper): + scaled = SCALE*x + if upper: + return Fraction(-((-scaled.numerator) // scaled.denominator), SCALE) + return Fraction(scaled.numerator // scaled.denominator, SCALE) + + +@cache +def log_bounds(x): + z = (x-1)/(x+1) + terms = 60 + exact_partial = 2*sum(z**(2*i+1)/(2*i+1) for i in range(terms)) + tail = 2*z**(2*terms+1)/((2*terms+1)*(1-z*z)) + return rounded(exact_partial, False), rounded(exact_partial+tail, True) + + +@cache +def power_bounds(rank, k): + binary = 2**(rank.bit_length()-1) + shift = binary.bit_length()-1 + l2, u2 = log_bounds(Fraction(2)) + lo, hi = log_bounds(Fraction(rank, binary)) + lo, hi = k*(lo+shift*l2), k*(hi+shift*u2) + assert 0 <= lo <= hi < 1 + + def exponential(z, terms): + total = term = Fraction(1) + for i in range(1, terms+1): + term *= -z/i + total += term + return total + + return rounded(rank*exponential(hi, 35), False), rounded(rank*exponential(lo, 34), True) + + +def cost(hist, k): + lower = upper = Fraction(0) + for r, n in hist.items(): + a, b = (n*x for x in power_bounds(r, k)) + lower += min(a, b) + upper += max(a, b) + return lower, upper + + +def profile(invoice, native, word, ranks): + copies = invoice["native_calls"] + assert copies == len(invoice["native_instances"]) == 36 + assert {tuple((r["stage"], r["copy"])) for r in invoice["native_instances"]} == { + (stage, which) for stage in range(1, 19) for which in (0, 1) + } + assert all(r["ports"] == 111 for r in invoice["native_instances"]) + assert native == Counter({int(r): n for r, n in invoice["native_paid"].items()}) + assert sum(native.values()) == 2871 + caller_paid = {1: 444, **{r: 444 for r in range(7, 57, 7)}} + assert invoice["event_counts"]["QUERY"]*111 == caller_paid[1] + assert invoice["event_counts"]["IDLE_ONE"]*111 == 8*444 + full_paid = Counter({r: copies*n for r, n in native.items()}) + full_paid.update(caller_paid) + + helpers = Counter(ranks[word["final"][j]]-ranks[word["start"][j]] + for j in range(222, word["public"])) + assert helpers == Counter({int(r): n for r, n in invoice["native_helpers"].items()}) + caller_targets = {**{r: 444 for r in range(8, 65, 7)}, 127: 222} + full_targets = Counter({r: copies*n for r, n in helpers.items()}) + full_targets.update(caller_targets) + assert full_paid == Counter({int(r): n for r, n in invoice["paid"].items()}) + assert full_targets == Counter({int(r): n for r, n in invoice["targets"].items()}) + assert sum(full_paid.values()) == invoice["paid_jobs"] + assert sum(full_targets.values()) == invoice["productive_fields"] + signed = full_targets.copy() + signed.subtract(full_paid) + assert sum(r*n for r, n in signed.items()) == invoice["rank_surplus"] + return signed, copies diff --git a/research/bit-destination-span-bound/verify.py b/research/bit-destination-span-bound/verify.py new file mode 100644 index 0000000000..20c534101d --- /dev/null +++ b/research/bit-destination-span-bound/verify.py @@ -0,0 +1,118 @@ +"""Optimistic whole-word price of independently synthesizable BIT arrivals.""" + +from argparse import ArgumentParser +from collections import Counter +from fractions import Fraction +import json +from pathlib import Path +import runpy +from time import monotonic + +HERE = Path(__file__).resolve().parent +TARGET = Fraction(10018846261809, 2500000000000000) + + +def support(library, target): + """Return one exact destination-slot XOR witness, or None.""" + pivots = {} + for slot, row in library: + certificate = 1 << slot + while row: + p = row.bit_length() - 1 + if p not in pivots: + pivots[p] = (row, certificate) + break + u, s = pivots[p] + row ^= u + certificate ^= s + certificate = 0 + while target: + p = target.bit_length() - 1 + if p not in pivots: + return None + row, s = pivots[p] + target ^= row + certificate ^= s + return [i for i in range(certificate.bit_length()) if certificate & (1 << i)] + + +def control(): + basis = [(3, 0b011), (5, 0b101)] + assert support(basis, 0b110) == [3, 5] + assert support(basis, 0b1000) is None + assert support([], 0) == [] + + +def run(root, seconds, cases): + started = monotonic() + audit = runpy.run_path(str(HERE / "trace_price.py")) + word, invoice, pins = audit["read_inputs"](root) + move_ids = [i for i, event in enumerate(word["program"]) if event[0] == "MOVE"] + assert len(move_ids) == 2871 + ranks = {int(frame): x["dim"] for frame, x in word["frames"].items()} + visited, eligible = 0, [] + + def inspect(clock, slot, src, dst, row, slots): + nonlocal visited + if visited >= cases or monotonic() - started >= seconds: + raise TimeoutError + assert clock == move_ids[visited] + visited += 1 + witness = support([(j, s[2]) for j, s in enumerate(slots) + if j != slot and s[1] == dst], row) + if witness is None: + return + reconstruct = 0 + for j in witness: + assert slots[j][1] == dst + reconstruct ^= slots[j][2] + assert reconstruct == row + eligible.append({ + "clock": clock, "slot": slot, "from": src, "to": dst, + "rank": abs(ranks[src] - ranks[dst]), "xor": witness, + }) + + try: + moves, _, _ = audit["walk"](word, inspect) + except TimeoutError: + return { + "status": "INCOMPLETE_CAP", "cases_visited": visited, + "unvisited_move_ids": move_ids[visited:], "eligible_so_far": eligible, + "pins": pins, "physical_sites": 0, + } + native = Counter(abs(ranks[src] - ranks[dst]) for src, dst, _ in moves.values()) + signed, copies = audit["profile"](invoice, native, word, ranks) + saved = Counter(e["rank"] for e in eligible) + lo, hi = audit["cost"]({r: copies*n for r, n in saved.items()}, TARGET) + blo, bhi = audit["cost"](signed, TARGET) + return { + "status": "PASS_GLOBAL_DESTINATION_SPAN_UPPER", + "target": str(TARGET), "cases_visited": visited, "native_instances": copies, + "eligible_paid_moves": len(eligible), "all_eligible": eligible, + "removed_rank_counts": dict(saved), "saving_interval": [str(lo), str(hi)], + "raw_comparator_net": [str(blo), str(bhi)], + "net_after_free_synthesis": [str(blo+lo), str(bhi+hi)], + "decision": "PIVOT_NEGATIVE_UPPER" if bhi+hi < 0 else "EXACT_PHYSICAL_GATE_NEEDED", + "seconds_cap": seconds, "cases_cap": cases, "pins": pins, "physical_sites": 0, + } + + +def main(): + p = ArgumentParser(description=__doc__) + p.add_argument("input_root", type=Path, nargs="?") + p.add_argument("--seconds", type=int, default=240) + p.add_argument("--cases", type=int, default=2871) + p.add_argument("--self-test", action="store_true") + args = p.parse_args() + assert __debug__ + control() + if args.self_test: + print("PASS XOR reconstruction, missing coordinate and empty-value controls") + return + if args.input_root is None or not 1 <= args.seconds <= 240 or not 1 <= args.cases <= 2871: + p.error("input root and caps of 240 seconds and 2,871 cases required") + print(json.dumps(run(args.input_root, args.seconds, args.cases), indent=2, sort_keys=True)) + + +if __name__ == "__main__": + main() diff --git a/research/historical-selected-replay-gap/README.md b/research/historical-selected-replay-gap/README.md index 55d8cc3b49..36d9a873ca 100644 --- a/research/historical-selected-replay-gap/README.md +++ b/research/historical-selected-replay-gap/README.md @@ -69,7 +69,11 @@ python3 -B scripts/research_package.py --package research/historical-selected-re The direct command prints `PASS_HISTORICAL_SELECTED_REPLAY_GAP`. A registered replay prints `PASS_REGISTERED_RESEARCH_PACKAGE`. Both require Git history -containing the two inspected commits. +containing the two inspected commits and the source and manifest objects at +`2485805a6d47f36ea83ddde6327d453ac82d44dc`. The verifier uses a temporary +sparse checkout of that commit, checks the declared source digests there, and +uses its planner and manifest inventory. The recorded rejections and selection +therefore remain reproducible after later changes to the live Makefile or CI guide. ## Open next questions diff --git a/research/historical-selected-replay-gap/SOURCES.json b/research/historical-selected-replay-gap/SOURCES.json index c1010eec95..62bb8b3950 100644 --- a/research/historical-selected-replay-gap/SOURCES.json +++ b/research/historical-selected-replay-gap/SOURCES.json @@ -4,13 +4,13 @@ "files": [ { "path": "Makefile", - "usage": "input", + "usage": "provenance", "git_blob": "0d683a06b9e7ee162496108ce9a7c5d2ee94fccf", "sha256": "4f2d4f2dcd15139ec82658a975f85ed300897385f85799218539f4c8d60567da" }, { "path": "certificates/partial-swap-network.json", - "usage": "input", + "usage": "provenance", "git_blob": "eccafa830c16170c36faf93045ddf1f638f7bcd4", "sha256": "4c0b9d37e1034b2076e30a70f8e514416298c462d9ee98bc87fe6556b14df786" }, @@ -22,7 +22,7 @@ }, { "path": "docs/ci-verification.md", - "usage": "input", + "usage": "provenance", "git_blob": "63ba3e9aa8bdc5e942b56e34244b92b16f854085", "sha256": "c7d3027e9ad8bcbff68f07aa9576b30fb2f3c76c44d876d40c7fdbf4a3e2228a" }, @@ -34,163 +34,163 @@ }, { "path": "research/clifford-state-performance/SOURCE.json", - "usage": "input", + "usage": "provenance", "git_blob": "6f98a0061a5104dfab82c9e806f819b41811f684", "sha256": "396d0f08df24952248140d5c65c51b8c902ef1c580892ff7ea182890530f67ee" }, { "path": "research/community-batch1047-audit/CONTENT-COVERAGE.json", - "usage": "input", + "usage": "provenance", "git_blob": "5e0f92af463ec12c5e1dcc3effd44081a88af647", "sha256": "07a9daeaf2bda308a92e9a4684f13d5fc766c7772d74801fceb7f4599fdab226" }, { "path": "research/community-batch1099-audit/CONTENT-COVERAGE.json", - "usage": "input", + "usage": "provenance", "git_blob": "9e13266bf85e627f1b7dc225e9530ea69fd2c7f0", "sha256": "421e1211fb1897c45621dc6801c276e53f2e6f335583c9c9049e535f87c0a3b1" }, { "path": "research/community-batch932-audit/CONTENT-COVERAGE.json", - "usage": "input", + "usage": "provenance", "git_blob": "cc4d03eb59b9ab3f952735f7e88ff18c2d15d7af", "sha256": "184629cac91a5cfaca50330a88596008b824221433867dcf8117539c913c284a" }, { "path": "research/community-batch970-audit/CONTENT-COVERAGE.json", - "usage": "input", + "usage": "provenance", "git_blob": "8b9f4111badf7de5d97684799560b55110e9da79", "sha256": "23188ed920e38a54006cb883e181585620821c63bf7e8b5e05d32719417cc37e" }, { "path": "research/community-frontier741-audit/CONTENT-COVERAGE.json", - "usage": "input", + "usage": "provenance", "git_blob": "a5300d4e7a5381a3f443fc54c768ca6f0f236d68", "sha256": "3c820fb30e1b4d9bcfc6a7ab524375e5b2abd66b940af2c509146104f0bcd79c" }, { "path": "research/community-frontier890-audit/CONTENT-COVERAGE.json", - "usage": "input", + "usage": "provenance", "git_blob": "d7ff6d777b01d69b6ce84caf25d3b7e4a4d2f211", "sha256": "6b185a9902652f893f3ebd8ada92d2f11b6de6533a9a4d11718a8a4496101128" }, { "path": "research/community-hyperplane599-audit/SOURCE.json", - "usage": "input", + "usage": "provenance", "git_blob": "546f37d326d10a99910ae8f908e71ef768524d98", "sha256": "65099d764bfcc39bda5e4d9966783611b094c3522dbdd1435cd498d657a8ef8e" }, { "path": "research/community-k492-audit/SOURCE.json", - "usage": "input", + "usage": "provenance", "git_blob": "e538481e4cb16ed936d3195f2dfb5b5a9ca0a76b", "sha256": "2c0f4fa5bc150d05658af2e7c54c4d2c337dd52b7efd3d69530ae73bcbdf452a" }, { "path": "research/community-reconciliation92-audit/MANIFEST.json", - "usage": "input", + "usage": "provenance", "git_blob": "2a2e93685173d5f13cbb5abe740f5d90352e0228", "sha256": "5f501f3c118131e7d069f30ad77186eb2ad6961f9680a0ef105f4514ed41808a" }, { "path": "research/partial-swap-digest/baseline.py", - "usage": "input", + "usage": "provenance", "git_blob": "a2f0190704db83bd8ef48e46e723c49b925804fe", "sha256": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34" }, { "path": "research/r420-two-sided-basis/SOURCES.json", - "usage": "input", + "usage": "provenance", "git_blob": "5d718e11e62f4bcadecf1e02d6b61f87dbe190b0", "sha256": "d9810b0d139c5a1211fd2c1f0d142187cc1fca30026e1e7bc4f9ecfacf1596d1" }, { "path": "research/skip-clones/SOURCE.json", - "usage": "input", + "usage": "provenance", "git_blob": "8d1bb3b9c8189e35e5d8bfdfa632d7473e8be0d5", "sha256": "0b68e63e35a97ce6b0cdb6e291b88ebaa8f2dd4afb70b2498f10ee89428258dc" }, { "path": "research/split-skip/SOURCE.json", - "usage": "input", + "usage": "provenance", "git_blob": "2ab610b6ea2edd2865fda793ef2168b0c76afb4f", "sha256": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134" }, { "path": "scripts/historical-ci-inputs/Makefile", - "usage": "input", + "usage": "provenance", "git_blob": "aff68409021c9d401a6f8013b9dfd7dbcc30f2a8", "sha256": "ea8830dd79da493e2d75baf753d733ff7efbcf2b4794afe41fae0ac8f3055646" }, { "path": "scripts/historical-ci-inputs/ledger-batch932-run_isolated_tests.py", - "usage": "input", + "usage": "provenance", "git_blob": "65db599ab0b1dea0312c4ca048e0bd0f44c3736f", "sha256": "96ea543e6c707424afe247e77bd86c82152f90fc76a0773c4232145da5cdf8d1" }, { "path": "scripts/historical-ci-inputs/ledger-batch932-test_isolated_test_runner.py", - "usage": "input", + "usage": "provenance", "git_blob": "34820a8f24678f918f4d0e7a35380d8013fc3495", "sha256": "628391b6abfbc8674ceec1751867a4392f2cc0b5b66886243e139af86cf355ac" }, { "path": "scripts/historical-ci-inputs/ledger-batch970-verify_selected_result.py", - "usage": "input", + "usage": "provenance", "git_blob": "c755b76e0d44ba4917aa94440ebe54daefce5b2a", "sha256": "d7fd929726b326aeeaf0a3996475adec88eee9aac09ae0bebeeaa0bc1fc8f199" }, { "path": "scripts/historical-ci-inputs/ledger-frontier741-ci-verification.md", - "usage": "input", + "usage": "provenance", "git_blob": "7f3c012504187917a728b9fe87043f0fc8cd006a", "sha256": "a854022e0e1d5d4db4d60e586be3ea56005013ef14a1fc06d02bc06e8529c4b0" }, { "path": "scripts/historical-ci-inputs/partial-swap-context.json", - "usage": "input", + "usage": "provenance", "git_blob": "ad65114886bf34a4fd27e79f3be502389e689faa", "sha256": "833a9642f33aeab2ffea17ec9c6b82e0a953f90192b2c82e10bef21538dccba9" }, { "path": "scripts/historical-ci-inputs/partial-swap-network.json", - "usage": "input", + "usage": "provenance", "git_blob": "52075f2463f60af5e16571347f24274fce73a1ea", "sha256": "f3c4be597b2f2136da4ae2cc80c7454f63c90aa01f84e5b8131cee4dd55de815" }, { "path": "scripts/partial_swap/shared.py", - "usage": "input", + "usage": "provenance", "git_blob": "44a0e454c70f9c4b98e258b8443612e6a119904b", "sha256": "5a0646a50b9f3e8ea55168620a78e8853b0ab810517cefc8cfb8696aedee278a" }, { "path": "scripts/replay_historical_check.py", - "usage": "input", + "usage": "provenance", "git_blob": "1e92fff2782970ef71378f594f2350d245a4db26", "sha256": "5467619c78183d3adc82b0cb55af28e5c1a01fca2b0588677816244b53e2bafd" }, { "path": "scripts/research_package.py", - "usage": "input", + "usage": "provenance", "git_blob": "091b4c8f58bac9a9580d76025b887dc5c873d05f", "sha256": "e1256016e7f51827d04fa2179255989f639ae1d97afaa9c16265f85a0c6abd70" }, { "path": "scripts/run_isolated_tests.py", - "usage": "input", + "usage": "provenance", "git_blob": "a96ab35b315ce492e7fbbfd6c5ae211aa066b541", "sha256": "49eb56dd0fc0d8d8ffdb209970a7adf2176223580646f575d5c22e59543b381c" }, { "path": "scripts/verify_selected_result.py", - "usage": "input", + "usage": "provenance", "git_blob": "6882a4700e410dec569b51ae2eaf1a19cc019195", "sha256": "d6b305eac5b9bdb8172c469ad30a1655a60fa0aceac8b1bf610e1b73f51babd8" }, { "path": "tests/test_isolated_test_runner.py", - "usage": "input", + "usage": "provenance", "git_blob": "343b24abf6719b81805eba5a84c74e57634c8288", "sha256": "3a5470d0b139828b90e19bf9583ddeafcd69f8e34f2824664eb3a2958a52e34d" } diff --git a/research/historical-selected-replay-gap/VERIFY.json b/research/historical-selected-replay-gap/VERIFY.json index 98553e72ed..ab7efa3471 100644 --- a/research/historical-selected-replay-gap/VERIFY.json +++ b/research/historical-selected-replay-gap/VERIFY.json @@ -4,36 +4,7 @@ "python": "3.12", "requirements": [], "inputs": [ - "Makefile", - "certificates/partial-swap-network.json", - "docs/ci-verification.md", - "research/clifford-state-performance/SOURCE.json", - "research/community-batch1047-audit/CONTENT-COVERAGE.json", - "research/community-batch1099-audit/CONTENT-COVERAGE.json", - "research/community-batch932-audit/CONTENT-COVERAGE.json", - "research/community-batch970-audit/CONTENT-COVERAGE.json", - "research/community-frontier741-audit/CONTENT-COVERAGE.json", - "research/community-frontier890-audit/CONTENT-COVERAGE.json", - "research/community-hyperplane599-audit/SOURCE.json", - "research/community-k492-audit/SOURCE.json", - "research/community-reconciliation92-audit/MANIFEST.json", - "research/partial-swap-digest/baseline.py", - "research/r420-two-sided-basis/SOURCES.json", - "research/skip-clones/SOURCE.json", - "research/split-skip/SOURCE.json", - "scripts/historical-ci-inputs/Makefile", - "scripts/historical-ci-inputs/ledger-batch932-run_isolated_tests.py", - "scripts/historical-ci-inputs/ledger-batch932-test_isolated_test_runner.py", - "scripts/historical-ci-inputs/ledger-batch970-verify_selected_result.py", - "scripts/historical-ci-inputs/ledger-frontier741-ci-verification.md", - "scripts/historical-ci-inputs/partial-swap-context.json", - "scripts/historical-ci-inputs/partial-swap-network.json", - "scripts/partial_swap/shared.py", - "scripts/replay_historical_check.py", - "scripts/research_package.py", - "scripts/run_isolated_tests.py", - "scripts/verify_selected_result.py", - "tests/test_isolated_test_runner.py" + "scripts/research_package.py" ], "commands": [ { diff --git a/research/historical-selected-replay-gap/verify.py b/research/historical-selected-replay-gap/verify.py index 83b995941a..9d266c5a4e 100644 --- a/research/historical-selected-replay-gap/verify.py +++ b/research/historical-selected-replay-gap/verify.py @@ -6,8 +6,10 @@ """ import hashlib import importlib.util +import json import subprocess import sys +import tempfile from pathlib import Path ROOT = Path(__file__).resolve().parents[2] @@ -61,31 +63,47 @@ def require(ok, message): raise SystemExit(message) -def load_checker(): - path = ROOT / "scripts/replay_historical_check.py" - spec = importlib.util.spec_from_file_location("historical_selected_replay_gap_checker", path) +def load_module(path): + spec = importlib.util.spec_from_file_location(path.stem, path) module = importlib.util.module_from_spec(spec) spec.loader.exec_module(module) return module +def checkout_snapshot(snapshot, sources, runner, env): + paths = [runner.canonical_relative_path(row["path"]) for row in sources["files"]] + git = ["git", "-c", "maintenance.auto=false", "-c", "gc.auto=0", + "-c", "core.autocrlf=false"] + subprocess.run([*git, "clone", "--quiet", "--shared", "--no-tags", "--no-checkout", + "--", str(ROOT), str(snapshot)], cwd=ROOT, env=env, check=True) + subprocess.run([*git, "update-ref", "--no-deref", "HEAD", INSPECTED], + cwd=snapshot, env=env, check=True) + # The pinned planner reads omitted manifests from the sparse HEAD/index. + patterns = "".join(f"/{path.as_posix()}\n" for path in paths) + subprocess.run([*git, "sparse-checkout", "set", "--no-cone", "--stdin"], + cwd=snapshot, env=env, input=patterns.encode("utf-8"), check=True) + subprocess.run([*git, "read-tree", "-mu", "HEAD"], cwd=snapshot, env=env, check=True) + for path, row in zip(paths, sources["files"], strict=True): + require(hashlib.sha256((snapshot / path).read_bytes()).hexdigest() == row["sha256"], + "historical checkout source digest changed: " + path.as_posix()) + + def entries(checker): for name, config in checker.CONFIG.items(): for entry in [config, *config.get("additional_inputs", [])]: yield name, entry -def reject(checker, entry): +def reject(root, checker, entry): try: - checker.authenticated_input(ROOT, entry) + checker.authenticated_input(root, entry) except ValueError as exc: return str(exc) raise SystemExit("historical input was admitted: " + entry["path"]) -def main(): - require(not sys.flags.optimize, "assertions must stay enabled") - checker = load_checker() +def check_snapshot(root, env): + checker = load_module(root / "scripts/replay_historical_check.py") selected = [entry for name, entry in entries(checker) if name == "tooling-ledger" and entry["path"] == SELECTED_PATH] require(len(selected) == 1, "selected-result checker overlay is not unique") @@ -94,7 +112,7 @@ def main(): require(entry["accepted_live_sha256"] == [SELECTED_ACCEPTED], "accepted selected-checker successors changed") frozen = (checker.INPUTS / entry["input"]).read_bytes() - live = (ROOT / SELECTED_PATH).read_bytes() + live = (root / SELECTED_PATH).read_bytes() require(hashlib.sha256(frozen).hexdigest() == SELECTED_PIN, "frozen selected checker bytes changed") require(hashlib.sha256(live).hexdigest() == SELECTED_LIVE, "live selected checker digest changed") require(SELECTED_LIVE not in (SELECTED_PIN, SELECTED_ACCEPTED), "live checker was already admitted") @@ -102,7 +120,7 @@ def main(): # live successor, not a broken comparison. require(SELECTED_PIN in (SELECTED_PIN, *entry["accepted_live_sha256"]), "pin membership control failed") - require(reject(checker, entry) == REJECTIONS[SELECTED_PATH][1], + require(reject(root, checker, entry) == REJECTIONS[SELECTED_PATH][1], "selected checker rejection text changed") counts = {path: 0 for path in REJECTIONS} @@ -110,7 +128,7 @@ def main(): for _name, item in entries(checker): if item["path"] not in REJECTIONS: continue - message = reject(checker, item) + message = reject(root, checker, item) counts[item["path"]] += 1 messages.setdefault(item["path"], message) for path, (count, message) in REJECTIONS.items(): @@ -118,20 +136,31 @@ def main(): require(messages[path] == message, "rejection text changed for " + path) require(sum(counts.values()) == 19, "rejection total changed") ci = [item for _name, item in entries(checker) if item["path"] == CI_PATH] - require(len(ci) == 1 and hashlib.sha256((ROOT / CI_PATH).read_bytes()).hexdigest() == CI_LIVE, + require(len(ci) == 1 and hashlib.sha256((root / CI_PATH).read_bytes()).hexdigest() == CI_LIVE, "selected CI note digest changed") diff = subprocess.check_output( - ["git", "diff", "--name-only", PARENT, INSPECTED], cwd=ROOT, text=True) + ["git", "diff", "--name-only", PARENT, INSPECTED], cwd=root, env=env, text=True) changed = sorted(name for name in diff.splitlines() if name) require(changed == CHANGED, "inspected commit diff changed") - sys.path.insert(0, str(ROOT / "scripts")) - from research_package import plan_details - details = plan_details(ROOT, set(changed)) + planner = load_module(root / "scripts/research_package.py") + details = planner.plan_details(root, set(changed)) require([row["package"] for row in details] == PLAN_PACKAGES, "helper plan selection changed") matched = {name for row in details for names in row["causes"].values() for name in names} require(sorted(set(changed) - matched) == UNMATCHED, "unmatched plan paths changed") - require(plan_details(ROOT, set()) == [], "empty change set selected a package") + require(planner.plan_details(root, set()) == [], "empty change set selected a package") + + +def main(): + require(not sys.flags.optimize, "assertions must stay enabled") + sources = json.loads(Path(__file__).with_name("SOURCES.json").read_bytes()) + require(sources["base_commit"] == INSPECTED, "historical checkout base changed") + runner = load_module(ROOT / "scripts/research_package.py") + env = runner.git_source_env() + with tempfile.TemporaryDirectory(prefix="historical-selected-replay-") as temporary: + snapshot = Path(temporary) / "snapshot" + checkout_snapshot(snapshot, sources, runner, env) + check_snapshot(snapshot, env) print("PASS_HISTORICAL_SELECTED_REPLAY_GAP") print("selected_checker_live=" + SELECTED_LIVE) print("rejections=19 distinct_paths=7 plan_packages=9")