UNPKG

@unruggable/gateways

Version:

Trustless Ethereum Multichain CCIP-Read Gateway

1 lines 54.1 kB
{"abi":[{"type":"constructor","inputs":[{"name":"urls","type":"string[]","internalType":"string[]"},{"name":"window","type":"uint256","internalType":"uint256"},{"name":"hooks","type":"address","internalType":"contract IVerifierHooks"},{"name":"rollup","type":"address","internalType":"contract ILineaRollup"}],"stateMutability":"nonpayable"},{"type":"function","name":"gatewayURLs","inputs":[],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"getHooks","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IVerifierHooks"}],"stateMutability":"view"},{"type":"function","name":"getLatestContext","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStorageValues","inputs":[{"name":"context","type":"bytes","internalType":"bytes"},{"name":"req","type":"tuple","internalType":"struct GatewayRequest","components":[{"name":"ops","type":"bytes","internalType":"bytes"}]},{"name":"proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"},{"name":"exitCode","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getWindow","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setGatewayURLs","inputs":[{"name":"urls","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"GatewayURLsChanged","inputs":[],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"CommitTooNew","inputs":[{"name":"latest","type":"uint256","internalType":"uint256"},{"name":"got","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"CommitTooOld","inputs":[{"name":"latest","type":"uint256","internalType":"uint256"},{"name":"got","type":"uint256","internalType":"uint256"},{"name":"window","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60e060405234801561000f575f80fd5b5060405161142b38038061142b83398101604081905261002e91610205565b838383338061005657604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005f81610099565b5082516100739060019060208601906100e8565b506080919091526001600160a01b0390811660a0529190911660c0525061047e92505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255905f5260205f2090810192821561012c579160200282015b8281111561012c578251829061011c90826103bf565b5091602001919060010190610106565b5061013892915061013c565b5090565b80821115610138575f61014f8282610158565b5060010161013c565b5080546101649061033b565b5f825580601f10610173575050565b601f0160209004905f5260205f209081019061018f9190610192565b50565b5b80821115610138575f8155600101610193565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156101e2576101e26101a6565b604052919050565b80516001600160a01b0381168114610200575f80fd5b919050565b5f805f8060808587031215610218575f80fd5b84516001600160401b038082111561022e575f80fd5b818701915087601f830112610241575f80fd5b8151602082821115610255576102556101a6565b8160051b6102648282016101ba565b928352848101820192828101908c85111561027d575f80fd5b83870192505b8483101561030657825186811115610299575f80fd5b8701603f81018e136102a9575f80fd5b84810151878111156102bd576102bd6101a6565b6102cf601f8201601f191687016101ba565b8181528f60408385010111156102e3575f80fd5b81604084018883015e5f9181018701919091528352509183019190830190610283565b809a5050505080890151965050505050610322604086016101ea565b9150610330606086016101ea565b905092959194509250565b600181811c9082168061034f57607f821691505b60208210810361036d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103ba57805f5260205f20601f840160051c810160208510156103985750805b601f840160051c820191505b818110156103b7575f81556001016103a4565b50505b505050565b81516001600160401b038111156103d8576103d86101a6565b6103ec816103e6845461033b565b84610373565b602080601f83116001811461041f575f84156104085750858301515b5f19600386901b1c1916600185901b178555610476565b5f85815260208120601f198616915b8281101561044d5788860151825594840194600190910190840161042e565b508582101561046a57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a05160c051610f696104c25f395f818161018101526103a701525f818160ba015261049701525f8181608a01528181610606015261064e0152610f695ff3fe608060405234801561000f575f80fd5b5060043610610081575f3560e01c80631d80051d146100855780635cd2525e146100b8578063715018a6146100e757806387c484fe146100f15780638da5cb5b146101065780638e5ea8df1461010e578063b50f2fbc14610121578063e3d1666e14610136578063f2fde38b14610157575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100af919061075f565b6100ef61016a565b005b6100f961017d565b6040516100af91906107a1565b6100da610225565b6100ef61011c366004610881565b610233565b61012961027a565b6040516100af919061093d565b6101496101443660046109bd565b61034e565b6040516100af929190610a80565b6100ef610165366004610aee565b610542565b61017261057f565b61017b5f6105b1565b565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663695378f56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ff9190610b14565b60405160200161021191815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b61023b61057f565b805161024e9060019060208401906106a9565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015610345578382905f5260205f200180546102ba90610b2b565b80601f01602080910402602001604051908101604052809291908181526020018280546102e690610b2b565b80156103315780601f1061030857610100808354040283529160200191610331565b820191905f5260205f20905b81548152906001019060200180831161031457829003601f168201915b50505050508152602001906001019061029d565b50505050905090565b60605f80858060200190518101906103669190610b14565b90505f8480602001905181019061037d9190610c35565b905061038c82825f0151610600565b8051604051638be745d160e01b81525f916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638be745d1916103de9160040190815260200190565b602060405180830381865afa1580156103f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061041d9190610b14565b9050806104685760405162461bcd60e51b8152602060048201526014602482015273131a5b99584e881b9bdd08199a5b985b1a5e995960621b60448201526064015b60405180910390fd5b6040805160a0810182525f81526020808201849052840151818301528382015160608201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016608082015290516324a8807560e21b815273__$011ed85421b307e5206de383929e31be73$__916392a201d4916104f2918b91600401610cdf565b5f60405180830381865af415801561050c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105339190810190610db0565b94509450505050935093915050565b61054a61057f565b6001600160a01b038116610573575f604051631e4fbdf760e01b815260040161045f919061075f565b61057c816105b1565b50565b33610588610225565b6001600160a01b03161461017b573360405163118cdaa760e01b815260040161045f919061075f565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8161062b7f000000000000000000000000000000000000000000000000000000000000000083610e03565b101561067a57604051632a54241d60e21b815260048101839052602481018290527f0000000000000000000000000000000000000000000000000000000000000000604482015260640161045f565b818111156106a55760405163b356ade760e01b8152600481018390526024810182905260440161045f565b5050565b828054828255905f5260205f209081019282156106ed579160200282015b828111156106ed57825182906106dd9082610e74565b50916020019190600101906106c7565b506106f99291506106fd565b5090565b808211156106f9575f6107108282610719565b506001016106fd565b50805461072590610b2b565b5f825580601f10610734575050565b601f0160209004905f5260205f209081019061057c91905b808211156106f9575f815560010161074c565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6107b36020830184610773565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156107f6576107f66107ba565b604052919050565b5f6001600160401b03821115610816576108166107ba565b5060051b60200190565b5f6001600160401b03821115610838576108386107ba565b50601f01601f191660200190565b5f61085861085384610820565b6107ce565b905082815283838301111561086b575f80fd5b828260208301375f602084830101529392505050565b5f6020808385031215610892575f80fd5b82356001600160401b03808211156108a8575f80fd5b818501915085601f8301126108bb575f80fd5b81356108c9610853826107fe565b81815260059190911b830184019084810190888311156108e7575f80fd5b8585015b8381101561093057803585811115610901575f80fd5b8601603f81018b13610911575f80fd5b6109228b8983013560408401610846565b8452509186019186016108eb565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561099257603f19888603018452610980858351610773565b94509285019290850190600101610964565b5092979650505050505050565b5f82601f8301126109ae575f80fd5b6107b383833560208501610846565b5f805f606084860312156109cf575f80fd5b83356001600160401b03808211156109e5575f80fd5b6109f18783880161099f565b94506020860135915080821115610a06575f80fd5b9085019060208288031215610a19575f80fd5b604051602081018181108382111715610a3457610a346107ba565b604052823582811115610a45575f80fd5b610a518982860161099f565b82525093506040860135915080821115610a69575f80fd5b50610a768682870161099f565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b83811015610ad557605f19888703018552610ac3868351610773565b95509382019390820190600101610aa7565b50505050508091505060ff831660208301529392505050565b5f60208284031215610afe575f80fd5b81356001600160a01b03811681146107b3575f80fd5b5f60208284031215610b24575f80fd5b5051919050565b600181811c90821680610b3f57607f821691505b602082108103610b5d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f830112610b72575f80fd5b8151610b8061085382610820565b818152846020838601011115610b94575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112610bbf575f80fd5b81516020610bcf610853836107fe565b82815260059290921b84018101918181019086841115610bed575f80fd5b8286015b84811015610c2a5780516001600160401b03811115610c0e575f80fd5b610c1c8986838b0101610b63565b845250918301918301610bf1565b509695505050505050565b5f60208284031215610c45575f80fd5b81516001600160401b0380821115610c5b575f80fd5b9083019060608286031215610c6e575f80fd5b604051606081018181108382111715610c8957610c896107ba565b60405282518152602083015182811115610ca1575f80fd5b610cad87828601610bb0565b602083015250604083015182811115610cc4575f80fd5b610cd087828601610b63565b60408301525095945050505050565b604081525f83516020806040850152610cfb6060850183610773565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b81811015610d6c5760bf19878603018352610d5a858551610773565b94509285019291850191600101610d3e565b50505050606086015191508281036060840152610d898183610773565b9150506080850151610da660808401826001600160a01b03169052565b5095945050505050565b5f8060408385031215610dc1575f80fd5b82516001600160401b03811115610dd6575f80fd5b610de285828601610bb0565b925050602083015160ff81168114610df8575f80fd5b809150509250929050565b80820180821115610e2257634e487b7160e01b5f52601160045260245ffd5b92915050565b601f821115610e6f57805f5260205f20601f840160051c81016020851015610e4d5750805b601f840160051c820191505b81811015610e6c575f8155600101610e59565b50505b505050565b81516001600160401b03811115610e8d57610e8d6107ba565b610ea181610e9b8454610b2b565b84610e28565b602080601f831160018114610ed4575f8415610ebd5750858301515b5f19600386901b1c1916600185901b178555610f2b565b5f85815260208120601f198616915b82811015610f0257888601518255948401946001909101908401610ee3565b5085821015610f1f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea26469706673582212204f8129161385a81c2f886b96cb3be01d4f53927b58f5919f264648cd738f3cc764736f6c63430008190033","sourceMap":"257:1212:16:-:0;;;343:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;491:4;497:6;505:5;566:10:0;;1269:95:39;;1322:31;;-1:-1:-1;;;1322:31:39;;1350:1;1322:31;;;2592:51:55;2565:18;;1322:31:39;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;588:12:0;;::::1;::::0;:5:::1;::::0;:12:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;610:16:0::1;::::0;;;;-1:-1:-1;;;;;636:14:0;;::::1;;::::0;522:16:16;;;::::1;;::::0;-1:-1:-1;257:1212:16;;-1:-1:-1;;;257:1212:16;2912:187:39;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:39;;;-1:-1:-1;;;;;;3020:17:39;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;257:1212:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;257:1212:16;;;-1:-1:-1;257:1212:16;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;14:127:55;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:55;247:40;;-1:-1:-1;;;;;302:34:55;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:55:o;426:193::-;521:13;;-1:-1:-1;;;;;563:31:55;;553:42;;543:70;;609:1;606;599:12;543:70;426:193;;;:::o;624:1817::-;800:6;808;816;824;877:3;865:9;856:7;852:23;848:33;845:53;;;894:1;891;884:12;845:53;921:16;;-1:-1:-1;;;;;986:14:55;;;983:34;;;1013:1;1010;1003:12;983:34;1051:6;1040:9;1036:22;1026:32;;1096:7;1089:4;1085:2;1081:13;1077:27;1067:55;;1118:1;1115;1108:12;1067:55;1147:2;1141:9;1169:4;1192:2;1188;1185:10;1182:36;;;1198:18;;:::i;:::-;1244:2;1241:1;1237:10;1267:28;1291:2;1287;1283:11;1267:28;:::i;:::-;1329:15;;;1399:11;;;1395:20;;;1360:12;;;;1427:19;;;1424:39;;;1459:1;1456;1449:12;1424:39;1491:2;1487;1483:11;1472:22;;1503:696;1519:6;1514:3;1511:15;1503:696;;;1598:3;1592:10;1634:2;1621:11;1618:19;1615:39;;;1650:1;1647;1640:12;1615:39;1677:20;;1732:2;1724:11;;1720:25;-1:-1:-1;1710:53:55;;1759:1;1756;1749:12;1710:53;1800:2;1796;1792:11;1786:18;1827:2;1823;1820:10;1817:36;;;1833:18;;:::i;:::-;1879:53;1922:2;1903:13;;-1:-1:-1;;1899:27:55;1895:36;;1879:53;:::i;:::-;1959:2;1952:5;1945:17;2003:7;1998:2;1993;1989;1985:11;1981:20;1978:33;1975:53;;;2024:1;2021;2014:12;1975:53;2076:2;2071;2067;2063:11;2058:2;2051:5;2047:14;2041:38;2124:1;2103:14;;;2099:23;;2092:34;;;;2139:18;;-1:-1:-1;1536:12:55;;;;2177;;;;1503:696;;;2218:5;2208:15;;;;;2263:2;2252:9;2248:18;2242:25;2232:35;;;;;;2286:65;2347:2;2336:9;2332:18;2286:65;:::i;:::-;2276:75;;2370:65;2431:2;2420:9;2416:18;2370:65;:::i;:::-;2360:75;;624:1817;;;;;;;:::o;2654:380::-;2733:1;2729:12;;;;2776;;;2797:61;;2851:4;2843:6;2839:17;2829:27;;2797:61;2904:2;2896:6;2893:14;2873:18;2870:38;2867:161;;2950:10;2945:3;2941:20;2938:1;2931:31;2985:4;2982:1;2975:15;3013:4;3010:1;3003:15;2867:161;;2654:380;;;:::o;3165:518::-;3267:2;3262:3;3259:11;3256:421;;;3303:5;3300:1;3293:16;3347:4;3344:1;3334:18;3417:2;3405:10;3401:19;3398:1;3394:27;3388:4;3384:38;3453:4;3441:10;3438:20;3435:47;;;-1:-1:-1;3476:4:55;3435:47;3531:2;3526:3;3522:12;3519:1;3515:20;3509:4;3505:31;3495:41;;3586:81;3604:2;3597:5;3594:13;3586:81;;;3663:1;3649:16;;3630:1;3619:13;3586:81;;;3590:3;;3256:421;3165:518;;;:::o;3859:1345::-;3979:10;;-1:-1:-1;;;;;4001:30:55;;3998:56;;;4034:18;;:::i;:::-;4063:97;4153:6;4113:38;4145:4;4139:11;4113:38;:::i;:::-;4107:4;4063:97;:::i;:::-;4215:4;;4272:2;4261:14;;4289:1;4284:663;;;;4991:1;5008:6;5005:89;;;-1:-1:-1;5060:19:55;;;5054:26;5005:89;-1:-1:-1;;3816:1:55;3812:11;;;3808:24;3804:29;3794:40;3840:1;3836:11;;;3791:57;5107:81;;4254:944;;4284:663;3112:1;3105:14;;;3149:4;3136:18;;-1:-1:-1;;4320:20:55;;;4438:236;4452:7;4449:1;4446:14;4438:236;;;4541:19;;;4535:26;4520:42;;4633:27;;;;4601:1;4589:14;;;;4468:19;;4438:236;;;4442:3;4702:6;4693:7;4690:19;4687:201;;;4763:19;;;4757:26;-1:-1:-1;;4846:1:55;4842:14;;;4858:3;4838:24;4834:37;4830:42;4815:58;4800:74;;4687:201;;;4934:1;4925:6;4922:1;4918:14;4914:22;4908:4;4901:36;4254:944;;;;;3859:1345;;:::o;:::-;257:1212:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"contracts/GatewayVM.sol":{"GatewayVM":[{"start":2444,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610081575f3560e01c80631d80051d146100855780635cd2525e146100b8578063715018a6146100e757806387c484fe146100f15780638da5cb5b146101065780638e5ea8df1461010e578063b50f2fbc14610121578063e3d1666e14610136578063f2fde38b14610157575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100af919061075f565b6100ef61016a565b005b6100f961017d565b6040516100af91906107a1565b6100da610225565b6100ef61011c366004610881565b610233565b61012961027a565b6040516100af919061093d565b6101496101443660046109bd565b61034e565b6040516100af929190610a80565b6100ef610165366004610aee565b610542565b61017261057f565b61017b5f6105b1565b565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663695378f56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ff9190610b14565b60405160200161021191815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b61023b61057f565b805161024e9060019060208401906106a9565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015610345578382905f5260205f200180546102ba90610b2b565b80601f01602080910402602001604051908101604052809291908181526020018280546102e690610b2b565b80156103315780601f1061030857610100808354040283529160200191610331565b820191905f5260205f20905b81548152906001019060200180831161031457829003601f168201915b50505050508152602001906001019061029d565b50505050905090565b60605f80858060200190518101906103669190610b14565b90505f8480602001905181019061037d9190610c35565b905061038c82825f0151610600565b8051604051638be745d160e01b81525f916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638be745d1916103de9160040190815260200190565b602060405180830381865afa1580156103f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061041d9190610b14565b9050806104685760405162461bcd60e51b8152602060048201526014602482015273131a5b99584e881b9bdd08199a5b985b1a5e995960621b60448201526064015b60405180910390fd5b6040805160a0810182525f81526020808201849052840151818301528382015160608201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016608082015290516324a8807560e21b815273__$011ed85421b307e5206de383929e31be73$__916392a201d4916104f2918b91600401610cdf565b5f60405180830381865af415801561050c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105339190810190610db0565b94509450505050935093915050565b61054a61057f565b6001600160a01b038116610573575f604051631e4fbdf760e01b815260040161045f919061075f565b61057c816105b1565b50565b33610588610225565b6001600160a01b03161461017b573360405163118cdaa760e01b815260040161045f919061075f565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8161062b7f000000000000000000000000000000000000000000000000000000000000000083610e03565b101561067a57604051632a54241d60e21b815260048101839052602481018290527f0000000000000000000000000000000000000000000000000000000000000000604482015260640161045f565b818111156106a55760405163b356ade760e01b8152600481018390526024810182905260440161045f565b5050565b828054828255905f5260205f209081019282156106ed579160200282015b828111156106ed57825182906106dd9082610e74565b50916020019190600101906106c7565b506106f99291506106fd565b5090565b808211156106f9575f6107108282610719565b506001016106fd565b50805461072590610b2b565b5f825580601f10610734575050565b601f0160209004905f5260205f209081019061057c91905b808211156106f9575f815560010161074c565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6107b36020830184610773565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156107f6576107f66107ba565b604052919050565b5f6001600160401b03821115610816576108166107ba565b5060051b60200190565b5f6001600160401b03821115610838576108386107ba565b50601f01601f191660200190565b5f61085861085384610820565b6107ce565b905082815283838301111561086b575f80fd5b828260208301375f602084830101529392505050565b5f6020808385031215610892575f80fd5b82356001600160401b03808211156108a8575f80fd5b818501915085601f8301126108bb575f80fd5b81356108c9610853826107fe565b81815260059190911b830184019084810190888311156108e7575f80fd5b8585015b8381101561093057803585811115610901575f80fd5b8601603f81018b13610911575f80fd5b6109228b8983013560408401610846565b8452509186019186016108eb565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561099257603f19888603018452610980858351610773565b94509285019290850190600101610964565b5092979650505050505050565b5f82601f8301126109ae575f80fd5b6107b383833560208501610846565b5f805f606084860312156109cf575f80fd5b83356001600160401b03808211156109e5575f80fd5b6109f18783880161099f565b94506020860135915080821115610a06575f80fd5b9085019060208288031215610a19575f80fd5b604051602081018181108382111715610a3457610a346107ba565b604052823582811115610a45575f80fd5b610a518982860161099f565b82525093506040860135915080821115610a69575f80fd5b50610a768682870161099f565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b83811015610ad557605f19888703018552610ac3868351610773565b95509382019390820190600101610aa7565b50505050508091505060ff831660208301529392505050565b5f60208284031215610afe575f80fd5b81356001600160a01b03811681146107b3575f80fd5b5f60208284031215610b24575f80fd5b5051919050565b600181811c90821680610b3f57607f821691505b602082108103610b5d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f830112610b72575f80fd5b8151610b8061085382610820565b818152846020838601011115610b94575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112610bbf575f80fd5b81516020610bcf610853836107fe565b82815260059290921b84018101918181019086841115610bed575f80fd5b8286015b84811015610c2a5780516001600160401b03811115610c0e575f80fd5b610c1c8986838b0101610b63565b845250918301918301610bf1565b509695505050505050565b5f60208284031215610c45575f80fd5b81516001600160401b0380821115610c5b575f80fd5b9083019060608286031215610c6e575f80fd5b604051606081018181108382111715610c8957610c896107ba565b60405282518152602083015182811115610ca1575f80fd5b610cad87828601610bb0565b602083015250604083015182811115610cc4575f80fd5b610cd087828601610b63565b60408301525095945050505050565b604081525f83516020806040850152610cfb6060850183610773565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b81811015610d6c5760bf19878603018352610d5a858551610773565b94509285019291850191600101610d3e565b50505050606086015191508281036060840152610d898183610773565b9150506080850151610da660808401826001600160a01b03169052565b5095945050505050565b5f8060408385031215610dc1575f80fd5b82516001600160401b03811115610dd6575f80fd5b610de285828601610bb0565b925050602083015160ff81168114610df8575f80fd5b809150509250929050565b80820180821115610e2257634e487b7160e01b5f52601160045260245ffd5b92915050565b601f821115610e6f57805f5260205f20601f840160051c81016020851015610e4d5750805b601f840160051c820191505b81811015610e6c575f8155600101610e59565b50505b505050565b81516001600160401b03811115610e8d57610e8d6107ba565b610ea181610e9b8454610b2b565b84610e28565b602080601f831160018114610ed4575f8415610ebd5750858301515b5f19600386901b1c1916600185901b178555610f2b565b5f85815260208120601f198616915b82811015610f0257888601518255948401946001909101908401610ee3565b5085821015610f1f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea26469706673582212204f8129161385a81c2f886b96cb3be01d4f53927b58f5919f264648cd738f3cc764736f6c63430008190033","sourceMap":"257:1212:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:84:0;;;966:7;160:25:55;;148:2;133:18;896:84:0;;;;;;;;986:89;1062:6;986:89;;;;;;;:::i;2293:101:39:-;;;:::i;:::-;;551:131:16;;;:::i;:::-;;;;;;;:::i;1638:85:39:-;;;:::i;663:129:0:-;;;;;;:::i;:::-;;:::i;798:92::-;;;:::i;:::-;;;;;;;:::i;797:670:16:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2543:215:39:-;;;;;;:::i;:::-;;:::i;2293:101::-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;551:131:16:-;602:12;644:7;-1:-1:-1;;;;;644:28:16;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;633:42;;;;;;160:25:55;;148:2;133:18;;14:177;633:42:16;;;;;;;;;;;;;626:49;;551:131;:::o;1638:85:39:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:39;;1638:85::o;663:129:0:-;1531:13:39;:11;:13::i;:::-;738:12:0;;::::1;::::0;:5:::1;::::0;:12:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;765:20:0::1;::::0;::::1;::::0;;;::::1;663:129:::0;:::o;798:92::-;844:15;878:5;871:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;798:92;:::o;797:670:16:-;945:14;961;987:22;1023:7;1012:30;;;;;;;;;;;;:::i;:::-;987:55;;1052:21;1087:5;1076:33;;;;;;;;;;;;:::i;:::-;1052:57;;1119:45;1132:14;1148:1;:15;;;1119:12;:45::i;:::-;1218:15;;1194:40;;-1:-1:-1;;;1194:40:16;;1174:17;;-1:-1:-1;;;;;1194:7:16;:23;;;;:40;;;;160:25:55;;;148:2;133:18;;14:177;1194:40:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1174:60;-1:-1:-1;1174:60:16;1244:59;;1273:30;;-1:-1:-1;;;1273:30:16;;10251:2:55;1273:30:16;;;10233:21:55;10290:2;10270:18;;;10263:30;-1:-1:-1;;;10309:18:55;;;10302:50;10369:18;;1273:30:16;;;;;;;;1244:59;1392:54;;;;;;;;-1:-1:-1;1392:54:16;;;;;;;;;1420:8;;;1392:54;;;;1430:7;;;;1392:54;;;;-1:-1:-1;;;;;1439:6:16;1392:54;;;;;1332:128;;-1:-1:-1;;;1332:128:16;;:9;;:21;;:128;;1371:3;;1332:128;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1332:128:16;;;;;;;;;;;;:::i;:::-;1313:147;;;;;;;797:670;;;;;;:::o;2543:215:39:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:39;::::1;2623:91;;2700:1;2672:31;;-1:-1:-1::0;;;2672:31:39::1;;;;;;;;:::i;2623:91::-;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;735:10:40;1855:7:39;:5;:7::i;:::-;-1:-1:-1;;;;;1855:23:39;;1851:101;;735:10:40;1901:40:39;;-1:-1:-1;;;1901:40:39;;;;;;;;:::i;2912:187::-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:39;;;-1:-1:-1;;;;;;3020:17:39;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;1081:211:0:-;1176:6;1160:13;1166:7;1160:3;:13;:::i;:::-;:22;1156:69;;;1191:34;;-1:-1:-1;;;1191:34:0;;;;;12926:25:55;;;12967:18;;;12960:34;;;1217:7:0;13010:18:55;;;13003:34;12899:18;;1191:34:0;12724:319:55;1156:69:0;1245:6;1239:3;:12;1235:50;;;1260:25;;-1:-1:-1;;;1260:25:0;;;;;13222::55;;;13263:18;;;13256:34;;;13195:18;;1260:25:0;13048:248:55;1235:50:0;1081:211;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;321:226:55;-1:-1:-1;;;;;508:32:55;;;;490:51;;478:2;463:18;;321:226::o;552:288::-;593:3;631:5;625:12;658:6;653:3;646:19;714:6;707:4;700:5;696:16;689:4;684:3;680:14;674:47;766:1;759:4;750:6;745:3;741:16;737:27;730:38;829:4;822:2;818:7;813:2;805:6;801:15;797:29;792:3;788:39;784:50;777:57;;;552:288;;;;:::o;845:217::-;992:2;981:9;974:21;955:4;1012:44;1052:2;1041:9;1037:18;1029:6;1012:44;:::i;:::-;1004:52;845:217;-1:-1:-1;;;845:217:55:o;1275:127::-;1336:10;1331:3;1327:20;1324:1;1317:31;1367:4;1364:1;1357:15;1391:4;1388:1;1381:15;1407:275;1478:2;1472:9;1543:2;1524:13;;-1:-1:-1;;1520:27:55;1508:40;;-1:-1:-1;;;;;1563:34:55;;1599:22;;;1560:62;1557:88;;;1625:18;;:::i;:::-;1661:2;1654:22;1407:275;;-1:-1:-1;1407:275:55:o;1687:182::-;1746:4;-1:-1:-1;;;;;1768:30:55;;1765:56;;;1801:18;;:::i;:::-;-1:-1:-1;1846:1:55;1842:14;1858:4;1838:25;;1687:182::o;1874:187::-;1923:4;-1:-1:-1;;;;;1945:30:55;;1942:56;;;1978:18;;:::i;:::-;-1:-1:-1;2044:2:55;2023:15;-1:-1:-1;;2019:29:55;2050:4;2015:40;;1874:187::o;2066:338::-;2131:5;2160:53;2176:36;2205:6;2176:36;:::i;:::-;2160:53;:::i;:::-;2151:62;;2236:6;2229:5;2222:21;2276:3;2267:6;2262:3;2258:16;2255:25;2252:45;;;2293:1;2290;2283:12;2252:45;2342:6;2337:3;2330:4;2323:5;2319:16;2306:43;2396:1;2389:4;2380:6;2373:5;2369:18;2365:29;2358:40;2066:338;;;;;:::o;2409:1197::-;2503:6;2534:2;2577;2565:9;2556:7;2552:23;2548:32;2545:52;;;2593:1;2590;2583:12;2545:52;2620:23;;-1:-1:-1;;;;;2692:14:55;;;2689:34;;;2719:1;2716;2709:12;2689:34;2757:6;2746:9;2742:22;2732:32;;2802:7;2795:4;2791:2;2787:13;2783:27;2773:55;;2824:1;2821;2814:12;2773:55;2860:2;2847:16;2883:59;2899:42;2938:2;2899:42;:::i;2883:59::-;2976:15;;;3058:1;3054:10;;;;3046:19;;3042:28;;;3007:12;;;;3082:19;;;3079:39;;;3114:1;3111;3104:12;3079:39;3146:2;3142;3138:11;3158:418;3174:6;3169:3;3166:15;3158:418;;;3260:3;3247:17;3296:2;3283:11;3280:19;3277:39;;;3312:1;3309;3302:12;3277:39;3339:20;;3394:2;3386:11;;3382:25;-1:-1:-1;3372:53:55;;3421:1;3418;3411:12;3372:53;3450:83;3525:7;3519:2;3515;3511:11;3498:25;3493:2;3489;3485:11;3450:83;:::i;:::-;3438:96;;-1:-1:-1;3554:12:55;;;;3191;;3158:418;;;-1:-1:-1;3595:5:55;2409:1197;-1:-1:-1;;;;;;;;2409:1197:55:o;3611:802::-;3773:4;3802:2;3842;3831:9;3827:18;3872:2;3861:9;3854:21;3895:6;3930;3924:13;3961:6;3953;3946:22;3999:2;3988:9;3984:18;3977:25;;4061:2;4051:6;4048:1;4044:14;4033:9;4029:30;4025:39;4011:53;;4099:2;4091:6;4087:15;4120:1;4130:254;4144:6;4141:1;4138:13;4130:254;;;4237:2;4233:7;4221:9;4213:6;4209:22;4205:36;4200:3;4193:49;4265:39;4297:6;4288;4282:13;4265:39;:::i;:::-;4255:49;-1:-1:-1;4362:12:55;;;;4327:15;;;;4166:1;4159:9;4130:254;;;-1:-1:-1;4401:6:55;;3611:802;-1:-1:-1;;;;;;;3611:802:55:o;4418:221::-;4460:5;4513:3;4506:4;4498:6;4494:17;4490:27;4480:55;;4531:1;4528;4521:12;4480:55;4553:80;4629:3;4620:6;4607:20;4600:4;4592:6;4588:17;4553:80;:::i;4644:1153::-;4771:6;4779;4787;4840:2;4828:9;4819:7;4815:23;4811:32;4808:52;;;4856:1;4853;4846:12;4808:52;4883:23;;-1:-1:-1;;;;;4955:14:55;;;4952:34;;;4982:1;4979;4972:12;4952:34;5005:49;5046:7;5037:6;5026:9;5022:22;5005:49;:::i;:::-;4995:59;;5107:2;5096:9;5092:18;5079:32;5063:48;;5136:2;5126:8;5123:16;5120:36;;;5152:1;5149;5142:12;5120:36;5175:24;;;;5233:2;5215:16;;;5211:25;5208:45;;;5249:1;5246;5239:12;5208:45;5282:2;5276:9;5324:2;5316:6;5312:15;5377:6;5365:10;5362:22;5357:2;5345:10;5342:18;5339:46;5336:72;;;5388:18;;:::i;:::-;5424:2;5417:22;5464:16;;5492;;;5489:36;;;5521:1;5518;5511:12;5489:36;5549:44;5585:7;5574:8;5570:2;5566:17;5549:44;:::i;:::-;5534:60;;-1:-1:-1;5541:6:55;-1:-1:-1;5672:2:55;5657:18;;5644:32;;-1:-1:-1;5688:16:55;;;5685:36;;;5717:1;5714;5707:12;5685:36;;5740:51;5783:7;5772:8;5761:9;5757:24;5740:51;:::i;:::-;5730:61;;;4644:1153;;;;;:::o;5802:884::-;5986:4;6034:2;6023:9;6019:18;6064:2;6053:9;6046:21;6087:6;6122;6116:13;6153:6;6145;6138:22;6191:2;6180:9;6176:18;6169:25;;6253:2;6243:6;6240:1;6236:14;6225:9;6221:30;6217:39;6203:53;;6275:4;6314;6306:6;6302:17;6337:1;6347:254;6361:6;6358:1;6355:13;6347:254;;;6454:2;6450:7;6438:9;6430:6;6426:22;6422:36;6417:3;6410:49;6482:39;6514:6;6505;6499:13;6482:39;:::i;:::-;6472:49;-1:-1:-1;6579:12:55;;;;6544:15;;;;6383:1;6376:9;6347:254;;;6351:3;;;;;6618:6;6610:14;;;6674:4;6666:6;6662:17;6655:4;6644:9;6640:20;6633:47;5802:884;;;;;:::o;6691:286::-;6750:6;6803:2;6791:9;6782:7;6778:23;6774:32;6771:52;;;6819:1;6816;6809:12;6771:52;6845:23;;-1:-1:-1;;;;;6897:31:55;;6887:42;;6877:70;;6943:1;6940;6933:12;6982:184;7052:6;7105:2;7093:9;7084:7;7080:23;7076:32;7073:52;;;7121:1;7118;7111:12;7073:52;-1:-1:-1;7144:16:55;;6982:184;-1:-1:-1;6982:184:55:o;7171:380::-;7250:1;7246:12;;;;7293;;;7314:61;;7368:4;7360:6;7356:17;7346:27;;7314:61;7421:2;7413:6;7410:14;7390:18;7387:38;7384:161;;7467:10;7462:3;7458:20;7455:1;7448:31;7502:4;7499:1;7492:15;7530:4;7527:1;7520:15;7384:161;;7171:380;;;:::o;7556:460::-;7609:5;7662:3;7655:4;7647:6;7643:17;7639:27;7629:55;;7680:1;7677;7670:12;7629:55;7709:6;7703:13;7740:49;7756:32;7785:2;7756:32;:::i;7740:49::-;7814:2;7805:7;7798:19;7860:3;7853:4;7848:2;7840:6;7836:15;7832:26;7829:35;7826:55;;;7877:1;7874;7867:12;7826:55;7935:2;7928:4;7920:6;7916:17;7909:4;7900:7;7896:18;7890:48;7983:1;7958:16;;;7976:4;7954:27;7947:38;;;;7962:7;7556:460;-1:-1:-1;;;7556:460:55:o;8021:823::-;8084:5;8137:3;8130:4;8122:6;8118:17;8114:27;8104:55;;8155:1;8152;8145:12;8104:55;8184:6;8178:13;8210:4;8234:59;8250:42;8289:2;8250:42;:::i;8234:59::-;8327:15;;;8413:1;8409:10;;;;8397:23;;8393:32;;;8358:12;;;;8437:15;;;8434:35;;;8465:1;8462;8455:12;8434:35;8501:2;8493:6;8489:15;8513:302;8529:6;8524:3;8521:15;8513:302;;;8602:10;;-1:-1:-1;;;;;8628:35:55;;8625:55;;;8676:1;8673;8666:12;8625:55;8705:67;8768:3;8763:2;8749:11;8741:6;8737:24;8733:33;8705:67;:::i;:::-;8693:80;;-1:-1:-1;8793:12:55;;;;8546;;8513:302;;;-1:-1:-1;8833:5:55;8021:823;-1:-1:-1;;;;;;8021:823:55:o;8849:1006::-;8949:6;9002:2;8990:9;8981:7;8977:23;8973:32;8970:52;;;9018:1;9015;9008:12;8970:52;9045:16;;-1:-1:-1;;;;;9110:14:55;;;9107:34;;;9137:1;9134;9127:12;9107:34;9160:22;;;;9216:4;9198:16;;;9194:27;9191:47;;;9234:1;9231;9224:12;9191:47;9267:2;9261:9;9309:4;9301:6;9297:17;9364:6;9352:10;9349:22;9344:2;9332:10;9329:18;9326:46;9323:72;;;9375:18;;:::i;:::-;9411:2;9404:22;9450:9;;9435:25;;9499:2;9491:11;;9485:18;9515:16;;;9512:36;;;9544:1;9541;9534:12;9512:36;9581:65;9638:7;9627:8;9623:2;9619:17;9581:65;:::i;:::-;9576:2;9568:6;9564:15;9557:90;;9686:2;9682;9678:11;9672:18;9715:2;9705:8;9702:16;9699:36;;;9731:1;9728;9721:12;9699:36;9768:55;9815:7;9804:8;9800:2;9796:17;9768:55;:::i;:::-;9763:2;9751:15;;9744:80;-1:-1:-1;9755:6:55;8849:1006;-1:-1:-1;;;;;8849:1006:55:o;10398:1569::-;10689:2;10678:9;10671:21;10652:4;10727:6;10721:13;10753:4;10793:2;10788;10777:9;10773:18;10766:30;10816:50;10862:2;10851:9;10847:18;10833:12;10816:50;:::i;:::-;10805:61;;10911:9;10906:3;10902:19;10897:2;10886:9;10882:18;10875:47;10954:4;10949:3;10945:14;10986:6;10980:13;10975:3;10968:26;11042:2;11034:6;11030:15;11024:22;11019:2;11014:3;11010:12;11003:44;11096:2;11088:6;11084:15;11078:22;11130:4;11125:2;11120:3;11116:12;11109:26;11155:6;11190:14;11184:21;11229:6;11221;11214:22;11261:3;11256;11252:13;11245:20;;11318:3;11308:6;11305:1;11301:14;11296:3;11292:24;11288:34;11274:48;;11365:2;11349:14;11345:23;11331:37;;11386:1;11396:249;11410:6;11407:1;11404:13;11396:249;;;11497:3;11493:8;11487:3;11479:6;11475:16;11471:31;11466:3;11459:44;11526:39;11558:6;11549;11543:13;11526:39;:::i;:::-;11516:49;-1:-1:-1;11588:15:55;;;;11623:12;;;;11432:1;11425:9;11396:249;;;11400:3;;;;11694:2;11686:6;11682:15;11676:22;11654:44;;11740:3;11732:6;11728:16;11723:2;11718:3;11714:12;11707:38;11768:40;11801:6;11785:14;11768:40;:::i;:::-;11754:54;;;11857:4;11849:6;11845:17;11839:24;11872:66;11932:4;11927:3;11923:14;11907;-1:-1:-1;;;;;278:31:55;266:44;;196:120;11872:66;-1:-1:-1;11955:6:55;10398:1569;-1:-1:-1;;;;;10398:1569:55:o;11972:520::-;12083:6;12091;12144:2;12132:9;12123:7;12119:23;12115:32;12112:52;;;12160:1;12157;12150:12;12112:52;12187:16;;-1:-1:-1;;;;;12215:30:55;;12212:50;;;12258:1;12255;12248:12;12212:50;12281:70;12343:7;12334:6;12323:9;12319:22;12281:70;:::i;:::-;12271:80;;;12394:2;12383:9;12379:18;12373:25;12438:4;12431:5;12427:16;12420:5;12417:27;12407:55;;12458:1;12455;12448:12;12407:55;12481:5;12471:15;;;11972:520;;;;;:::o;12497:222::-;12562:9;;;12583:10;;;12580:133;;;12635:10;12630:3;12626:20;12623:1;12616:31;12670:4;12667:1;12660:15;12698:4;12695:1;12688:15;12580:133;12497:222;;;;:::o;13427:518::-;13529:2;13524:3;13521:11;13518:421;;;13565:5;13562:1;13555:16;13609:4;13606:1;13596:18;13679:2;13667:10;13663:19;13660:1;13656:27;13650:4;13646:38;13715:4;13703:10;13700:20;13697:47;;;-1:-1:-1;13738:4:55;13697:47;13793:2;13788:3;13784:12;13781:1;13777:20;13771:4;13767:31;13757:41;;13848:81;13866:2;13859:5;13856:13;13848:81;;;13925:1;13911:16;;13892:1;13881:13;13848:81;;;13852:3;;13518:421;13427:518;;;:::o;14121:1345::-;14241:10;;-1:-1:-1;;;;;14263:30:55;;14260:56;;;14296:18;;:::i;:::-;14325:97;14415:6;14375:38;14407:4;14401:11;14375:38;:::i;:::-;14369:4;14325:97;:::i;:::-;14477:4;;14534:2;14523:14;;14551:1;14546:663;;;;15253:1;15270:6;15267:89;;;-1:-1:-1;15322:19:55;;;15316:26;15267:89;-1:-1:-1;;14078:1:55;14074:11;;;14070:24;14066:29;14056:40;14102:1;14098:11;;;14053:57;15369:81;;14516:944;;14546:663;13374:1;13367:14;;;13411:4;13398:18;;-1:-1:-1;;14582:20:55;;;14700:236;14714:7;14711:1;14708:14;14700:236;;;14803:19;;;14797:26;14782:42;;14895:27;;;;14863:1;14851:14;;;;14730:19;;14700:236;;;14704:3;14964:6;14955:7;14952:19;14949:201;;;15025:19;;;15019:26;-1:-1:-1;;15108:1:55;15104:14;;;15120:3;15100:24;15096:37;15092:42;15077:58;15062:74;;14949:201;;;15196:1;15187:6;15184:1;15180:14;15176:22;15170:4;15163:36;14516:944;;;;;14121:1345;;:::o","linkReferences":{"contracts/GatewayVM.sol":{"GatewayVM":[{"start":1226,"length":20}]}},"immutableReferences":{"20":[{"start":138,"length":32},{"start":1542,"length":32},{"start":1614,"length":32}],"23":[{"start":186,"length":32},{"start":1175,"length":32}],"6177":[{"start":385,"length":32},{"start":935,"length":32}]}},"methodIdentifiers":{"gatewayURLs()":"b50f2fbc","getHooks()":"5cd2525e","getLatestContext()":"87c484fe","getStorageValues(bytes,(bytes),bytes)":"e3d1666e","getWindow()":"1d80051d","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setGatewayURLs(string[])":"8e5ea8df","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"urls\",\"type\":\"string[]\"},{\"internalType\":\"uint256\",\"name\":\"window\",\"type\":\"uint256\"},{\"internalType\":\"contract IVerifierHooks\",\"name\":\"hooks\",\"type\":\"address\"},{\"internalType\":\"contract ILineaRollup\",\"name\":\"rollup\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"latest\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"CommitTooNew\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"latest\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"window\",\"type\":\"uint256\"}],\"name\":\"CommitTooOld\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"GatewayURLsChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"gatewayURLs\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getHooks\",\"outputs\":[{\"internalType\":\"contract IVerifierHooks\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestContext\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"ops\",\"type\":\"bytes\"}],\"internalType\":\"struct GatewayRequest\",\"name\":\"req\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"getStorageValues\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"},{\"internalType\":\"uint8\",\"name\":\"exitCode\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"urls\",\"type\":\"string[]\"}],\"name\":\"setGatewayURLs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/linea/LineaVerifier.sol\":\"LineaVerifier\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[\":@eth-optimism/=lib/optimism/packages/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":optimism/=lib/optimism/packages/contracts-bedrock/src/\"]},\"sources\":{\"contracts/AbstractVerifier.sol\":{\"keccak256\":\"0x4868ee9c8ade05b23ce93c2fce0507588583597df087f9494a69df005cff2652\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e822d963a8461edcf72a7e500b53b0bfaf0d98412ae5da3287246cc491ef705\",\"dweb:/ipfs/QmU8NJXEg5oFCoahg9F8qtQoWsW1sYfKmDCVD7vtNX9qbZ\"]},\"contracts/GatewayRequest.sol\":{\"keccak256\":\"0x3e6ce7cae72d6d77a9a4b5644495b8621116be44511186d47efbb27ce0fc73f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://301c7ad11dd0e050811a58ab6942040df9bad5e269bb43e4c74ffca3b43622f5\",\"dweb:/ipfs/QmXocie71GDYUPDEcVLsZ9N6LXZaSj8SX49HbGG3CUHLvP\"]},\"contracts/GatewayVM.sol\":{\"keccak256\":\"0x9bff36c483bb29a6fc0525cfa7ba09b523632ed9477dac23aa8d312237e987ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2452b324151e1909f825a83e895a242de7795bdab405121d3baec42128e350da\",\"dweb:/ipfs/QmWdMuMT3wYoe4Sa73PPWuW1RZSqvUT2qFck6WvMdLnSCy\"]},\"contracts/IGatewayVerifier.sol\":{\"keccak256\":\"0xd56c8ace6aba1354dd4c477b566343b641f57a8c4ef88e1d84294d3727552284\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e268659b9c590a5ce3d2eb440a11bcdf3214a4bfcfa7f38523137ccf940fa32\",\"dweb:/ipfs/QmVpLNhcXQbx4MaBPMnnEnt7gTLNWB753BszqakBq5yUA3\"]},\"contracts/IVerifierHooks.sol\":{\"keccak256\":\"0xd85e9b52270a88d0df9b26454d9c80389405c230b7d67060742a4a0ea5917248\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81de43a606284b5b9b146e06dbf6f54db5480058deb5fbe150302a37ffe14e1a\",\"dweb:/ipfs/QmSDH39aPAch4bKhRZbJ5vSDEUUDic76gWxDDDGaYxbPat\"]},\"contracts/linea/ILineaRollup.sol\":{\"keccak256\":\"0x3cf0f162ffc2745e7acfabeeb15ee0574ac0de0e76b080b9378603a43ca19bcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a80775db81060092552e4c2159cc07c3558124063093bf1572ede609f43dd29\",\"dweb:/ipfs/QmWLxpYvbKdEg9VaD68V4ZdUsJXAiK8Acx8erKnjkMn4yJ\"]},\"contracts/linea/LineaVerifier.sol\":{\"keccak256\":\"0xee0a0d17d15114c418a3dd5fa8f34ad8af3700e447c4e8b3ffbd8292cbcd4c9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99cda48f8acec8fb1d008202ad0fc31860f3724de94625c8ef8cc79538efef3f\",\"dweb:/ipfs/QmQARb99UeQLHBqNdhi1JfL7E8hM1AkCkxayx36GbcJtii\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194\",\"dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/optimism/packages/contracts-bedrock/src/libraries/Bytes.sol\":{\"keccak256\":\"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782\",\"dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string[]","name":"urls","type":"string[]"},{"internalType":"uint256","name":"window","type":"uint256"},{"internalType":"contract IVerifierHooks","name":"hooks","type":"address"},{"internalType":"contract ILineaRollup","name":"rollup","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"latest","type":"uint256"},{"internalType":"uint256","name":"got","type":"uint256"}],"type":"error","name":"CommitTooNew"},{"inputs":[{"internalType":"uint256","name":"latest","type":"uint256"},{"internalType":"uint256","name":"got","type":"uint256"},{"internalType":"uint256","name":"window","type":"uint256"}],"type":"error","name":"CommitTooOld"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"event","name":"GatewayURLsChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"gatewayURLs","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getHooks","outputs":[{"internalType":"contract IVerifierHooks","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestContext","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes","name":"context","type":"bytes"},{"internalType":"struct GatewayRequest","name":"req","type":"tuple","components":[{"internalType":"bytes","name":"ops","type":"bytes"}]},{"internalType":"bytes","name":"proof","type":"bytes"}],"stateMutability":"view","type":"function","name":"getStorageValues","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"},{"internalType":"uint8","name":"exitCode","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getWindow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"string[]","name":"urls","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"setGatewayURLs"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnershi